diff options
200 files changed, 30805 insertions, 4123 deletions
diff --git a/bfd/aout-target.h b/bfd/aout-target.h index 1b71104..c6d9d60 100644 --- a/bfd/aout-target.h +++ b/bfd/aout-target.h @@ -214,9 +214,11 @@ static bool MY_bfd_copy_private_section_data (bfd *ibfd, asection *isec ATTRIBUTE_UNUSED, bfd *obfd, - asection *osec ATTRIBUTE_UNUSED) + asection *osec ATTRIBUTE_UNUSED, + struct bfd_link_info *link_info) { - if (bfd_get_flavour (ibfd) == bfd_target_aout_flavour + if (link_info == NULL + && bfd_get_flavour (ibfd) == bfd_target_aout_flavour && bfd_get_flavour (obfd) == bfd_target_aout_flavour) obj_aout_subformat (obfd) = obj_aout_subformat (ibfd); return true; @@ -562,9 +564,6 @@ MY_bfd_final_link (bfd *abfd, struct bfd_link_info *info) #define MY_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data #endif -#define MY_init_private_section_data \ - _bfd_generic_init_private_section_data - #ifndef MY_bfd_copy_private_symbol_data #define MY_bfd_copy_private_symbol_data _bfd_generic_bfd_copy_private_symbol_data #endif diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index d5d1b51..b013ef9 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1034,11 +1034,12 @@ bool bfd_malloc_and_get_section (bfd *abfd, asection *section, bfd_byte **buf); bool bfd_copy_private_section_data - (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); + (bfd *ibfd, asection *isec, bfd *obfd, asection *osec, + struct bfd_link_info *link_info); -#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \ +#define bfd_copy_private_section_data(ibfd, isec, obfd, osec, link_info) \ BFD_SEND (obfd, _bfd_copy_private_section_data, \ - (ibfd, isection, obfd, osection)) + (ibfd, isec, obfd, osec, link_info)) bool bfd_generic_is_group_section (bfd *, const asection *sec); const char *bfd_generic_group_name (bfd *, const asection *sec); @@ -7636,7 +7637,6 @@ typedef struct bfd_target #define BFD_JUMP_TABLE_COPY(NAME) \ NAME##_bfd_copy_private_bfd_data, \ NAME##_bfd_merge_private_bfd_data, \ - NAME##_init_private_section_data, \ NAME##_bfd_copy_private_section_data, \ NAME##_bfd_copy_private_symbol_data, \ NAME##_bfd_copy_private_header_data, \ @@ -7649,16 +7649,10 @@ typedef struct bfd_target /* Called to merge BFD general private data from one object file to a common output file when linking. */ bool (*_bfd_merge_private_bfd_data) (bfd *, struct bfd_link_info *); - /* Called to initialize BFD private section data from one object file - to another. */ -#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \ - BFD_SEND (obfd, _bfd_init_private_section_data, \ - (ibfd, isec, obfd, osec, link_info)) - bool (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr, - struct bfd_link_info *); /* Called to copy BFD private section data from one object file to another. */ - bool (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr); + bool (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr, + struct bfd_link_info *); /* Called to copy BFD private symbol data from one symbol to another. */ bool (*_bfd_copy_private_symbol_data) (bfd *, asymbol *, diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index ae9a0f6..3c18518 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -4456,8 +4456,6 @@ const struct xcoff_dwsect_name xcoff_dwsect_names[] = { #define _bfd_xcoff_get_section_contents _bfd_generic_get_section_contents /* For copy private data entry points. */ -#define _bfd_xcoff_init_private_section_data \ - _bfd_generic_init_private_section_data #define _bfd_xcoff_bfd_copy_private_bfd_data \ _bfd_xcoff_copy_private_bfd_data #define _bfd_xcoff_bfd_merge_private_bfd_data \ diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c index ec7ed08..d335348 100644 --- a/bfd/coff64-rs6000.c +++ b/bfd/coff64-rs6000.c @@ -2621,7 +2621,6 @@ const bfd_target rs6000_xcoff64_vec = /* Copy */ _bfd_xcoff_copy_private_bfd_data, _bfd_generic_bfd_merge_private_bfd_data, - _bfd_generic_init_private_section_data, _bfd_generic_bfd_copy_private_section_data, _bfd_generic_bfd_copy_private_symbol_data, _bfd_generic_bfd_copy_private_header_data, @@ -2892,7 +2891,6 @@ const bfd_target rs6000_xcoff64_aix_vec = /* Copy */ _bfd_xcoff_copy_private_bfd_data, _bfd_generic_bfd_merge_private_bfd_data, - _bfd_generic_init_private_section_data, _bfd_generic_bfd_copy_private_section_data, _bfd_generic_bfd_copy_private_symbol_data, _bfd_generic_bfd_copy_private_header_data, diff --git a/bfd/coffcode.h b/bfd/coffcode.h index bd0374f..b81195d 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -5955,8 +5955,6 @@ static const bfd_coff_backend_data bigobj_swap_table = #define coff_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data #endif -#define coff_init_private_section_data _bfd_generic_init_private_section_data - #ifndef coff_bfd_copy_private_section_data #define coff_bfd_copy_private_section_data _bfd_generic_bfd_copy_private_section_data #endif diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index f625709..2bd855a 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -2393,10 +2393,8 @@ extern bool _bfd_elf_copy_private_header_data (bfd *, bfd *); extern bool _bfd_elf_copy_private_symbol_data (bfd *, asymbol *, bfd *, asymbol *); -extern bool _bfd_elf_init_private_section_data - (bfd *, asection *, bfd *, asection *, struct bfd_link_info *); extern bool _bfd_elf_copy_private_section_data - (bfd *, asection *, bfd *, asection *); + (bfd *, asection *, bfd *, asection *, struct bfd_link_info *); extern bool _bfd_elf_write_object_contents (bfd *); extern bool _bfd_elf_write_corefile_contents diff --git a/bfd/elf-sframe.c b/bfd/elf-sframe.c index 24a3d35..d74235b 100644 --- a/bfd/elf-sframe.c +++ b/bfd/elf-sframe.c @@ -23,6 +23,7 @@ #include "libbfd.h" #include "elf-bfd.h" #include "sframe-api.h" +#include "sframe-internal.h" /* Return TRUE if the function has been marked for deletion during the linking process. */ @@ -373,8 +374,8 @@ _bfd_elf_merge_section_sframe (bfd *abfd, uint8_t tflags = dctx_flags & ~SFRAME_F_FDE_SORTED; /* ld always generates an output section with SFRAME_F_FDE_FUNC_START_PCREL flag set. Later using - SFRAME_F_LD_MUSTHAVE_FLAGS, it is enforced that the provided input - sections also have this flag set. */ + SFRAME_V2_GNU_AS_LD_ENCODING_FLAGS, it is enforced that the provided + input sections also have this flag set. */ tflags |= SFRAME_F_FDE_FUNC_START_PCREL; htab->sfe_info.sfe_ctx = sframe_encode (SFRAME_VERSION_2, tflags, /* SFrame flags. */ @@ -430,8 +431,8 @@ _bfd_elf_merge_section_sframe (bfd *abfd, related flags set. The implementation does not support updating these data encodings on the fly; confirm by checking the ectx_flags. */ ectx_flags = sframe_encoder_get_flags (sfe_ctx); - if ((dctx_flags & ectx_flags & SFRAME_F_LD_MUSTHAVE_FLAGS) - != SFRAME_F_LD_MUSTHAVE_FLAGS) + if ((dctx_flags & ectx_flags & SFRAME_V2_GNU_AS_LD_ENCODING_FLAGS) + != SFRAME_V2_GNU_AS_LD_ENCODING_FLAGS) { _bfd_error_handler (_("SFrame sections with unexpected data encoding prevent" @@ -8375,25 +8375,34 @@ copy_private_bfd_data (bfd *ibfd, bfd *obfd) return rewrite_elf_program_header (ibfd, obfd, maxpagesize); } -/* Initialize private output section information from input section. */ +/* Copy private section information from input to output. This function + is called both by objcopy where LINK_INFO is NULL, and ld where + LINK_INFO is non-NULL in the usual case but NULL for a special case + when dealing with LTO IR or cloning output sections. */ bool -_bfd_elf_init_private_section_data (bfd *ibfd, +_bfd_elf_copy_private_section_data (bfd *ibfd, asection *isec, bfd *obfd, asection *osec, struct bfd_link_info *link_info) - { - Elf_Internal_Shdr *ihdr, *ohdr; - bool final_link = (link_info != NULL - && !bfd_link_relocatable (link_info)); - if (ibfd->xvec->flavour != bfd_target_elf_flavour || obfd->xvec->flavour != bfd_target_elf_flavour) return true; - BFD_ASSERT (elf_section_data (osec) != NULL); + Elf_Internal_Shdr *ihdr = &elf_section_data (isec)->this_hdr; + Elf_Internal_Shdr *ohdr = &elf_section_data (osec)->this_hdr; + if (link_info == NULL) + { + ohdr->sh_entsize = ihdr->sh_entsize; + + if (ihdr->sh_type == SHT_SYMTAB + || ihdr->sh_type == SHT_DYNSYM + || ihdr->sh_type == SHT_GNU_verneed + || ihdr->sh_type == SHT_GNU_verdef) + ohdr->sh_info = ihdr->sh_info; + } /* If this is a known ABI section, ELF section type and flags may have been set up when OSEC was created. For normal sections we @@ -8403,11 +8412,14 @@ _bfd_elf_init_private_section_data (bfd *ibfd, || elf_section_type (osec) == SHT_NOTE || elf_section_type (osec) == SHT_NOBITS) elf_section_type (osec) = SHT_NULL; + /* For objcopy and relocatable link, copy the ELF section type from the input file if the BFD section flags are the same. (If they are different the user may be doing something like "objcopy --set-section-flags .text=alloc,data".) For a final link allow some flags that the linker clears to differ. */ + bool final_link = (link_info != NULL + && !bfd_link_relocatable (link_info)); if (elf_section_type (osec) == SHT_NULL && (osec->flags == isec->flags || (final_link @@ -8445,14 +8457,11 @@ _bfd_elf_init_private_section_data (bfd *ibfd, elf_section_flags (osec) |= (elf_section_flags (isec) & SHF_COMPRESSED); - ihdr = &elf_section_data (isec)->this_hdr; - /* We need to handle elf_linked_to_section for SHF_LINK_ORDER. We don't use the output section of the linked-to section since it may be NULL at this point. */ if ((ihdr->sh_flags & SHF_LINK_ORDER) != 0) { - ohdr = &elf_section_data (osec)->this_hdr; ohdr->sh_flags |= SHF_LINK_ORDER; elf_linked_to_section (osec) = elf_linked_to_section (isec); } @@ -8462,36 +8471,6 @@ _bfd_elf_init_private_section_data (bfd *ibfd, return true; } -/* Copy private section information. This copies over the entsize - field, and sometimes the info field. */ - -bool -_bfd_elf_copy_private_section_data (bfd *ibfd, - asection *isec, - bfd *obfd, - asection *osec) -{ - Elf_Internal_Shdr *ihdr, *ohdr; - - if (ibfd->xvec->flavour != bfd_target_elf_flavour - || obfd->xvec->flavour != bfd_target_elf_flavour) - return true; - - ihdr = &elf_section_data (isec)->this_hdr; - ohdr = &elf_section_data (osec)->this_hdr; - - ohdr->sh_entsize = ihdr->sh_entsize; - - if (ihdr->sh_type == SHT_SYMTAB - || ihdr->sh_type == SHT_DYNSYM - || ihdr->sh_type == SHT_GNU_verneed - || ihdr->sh_type == SHT_GNU_verdef) - ohdr->sh_info = ihdr->sh_info; - - return _bfd_elf_init_private_section_data (ibfd, isec, obfd, osec, - NULL); -} - /* Look at all the SHT_GROUP sections in IBFD, making any adjustments necessary if we are removing either the SHT_GROUP section or any of the group member sections. DISCARDED is the value that a section's diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c index b9b3cf8..c40a0c5 100644 --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -6136,13 +6136,14 @@ elf_x86_64_fake_sections (bfd *abfd ATTRIBUTE_UNUSED, static bool elf_x86_64_copy_private_section_data (bfd *ibfd, asection *isec, - bfd *obfd, asection *osec) + bfd *obfd, asection *osec, + struct bfd_link_info *link_info) { - if (!_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec)) + if (!_bfd_elf_copy_private_section_data (ibfd, isec, obfd, osec, link_info)) return false; /* objcopy --set-section-flags without "large" drops SHF_X86_64_LARGE. */ - if (ibfd != obfd) + if (link_info == NULL && ibfd != obfd) elf_section_flags (osec) &= ~SHF_X86_64_LARGE; return true; diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c index a480a70..c75f520 100644 --- a/bfd/elfnn-loongarch.c +++ b/bfd/elfnn-loongarch.c @@ -173,6 +173,10 @@ loongarch_elf_new_section_hook (bfd *abfd, asection *sec) #define loongarch_elf_hash_table(p) \ ((struct loongarch_elf_link_hash_table *) ((p)->hash)) \ +/* During linker relaxation, indicates whether the section has already + undergone alignment processing and no more byte deletion is permitted. */ +#define loongarch_sec_closed_for_deletion(sec) ((sec)->sec_flg0) + #define MINUS_ONE ((bfd_vma) 0 - 1) #define sec_addr(sec) ((sec)->output_section->vma + (sec)->output_offset) @@ -4789,7 +4793,10 @@ loongarch_calc_relaxed_addr (struct bfd_link_info *info, bfd_vma offset) struct pending_delete_op *op; splay_tree_node node; - BFD_ASSERT (pdops != NULL); + if (!pdops) + /* Currently this means we are past the stages where byte deletion could + possibly happen. */ + return offset; /* Find the op that starts just before the given address. */ node = splay_tree_predecessor (pdops, (splay_tree_key)offset); @@ -4814,9 +4821,9 @@ loongarch_calc_relaxed_addr (struct bfd_link_info *info, bfd_vma offset) static void loongarch_relax_delete_bytes (bfd *abfd, - bfd_vma addr, - size_t count, - struct bfd_link_info *link_info) + bfd_vma addr, + size_t count, + struct bfd_link_info *link_info) { struct loongarch_elf_link_hash_table *htab = loongarch_elf_hash_table (link_info); @@ -4868,6 +4875,34 @@ loongarch_relax_delete_bytes (bfd *abfd, } static void +loongarch_relax_delete_or_nop (bfd *abfd, + asection *sec, + bfd_vma addr, + size_t count, + struct bfd_link_info *link_info) +{ + struct bfd_elf_section_data *data = elf_section_data (sec); + bfd_byte *contents = data->this_hdr.contents; + + BFD_ASSERT (count % 4 == 0); + + if (!loongarch_sec_closed_for_deletion (sec)) + { + /* Deletions are still possible within the section. */ + loongarch_relax_delete_bytes (abfd, addr, count, link_info); + return; + } + + /* We can no longer delete bytes in the section after enforcing alignment. + But as the resulting shrinkage may open up a few more relaxation chances, + allowing unnecessary instructions to be replaced with NOPs instead of + being removed altogether may still benefit performance to a lesser + extent. */ + for (; count; addr += 4, count -= 4) + bfd_put (32, abfd, LARCH_NOP, contents + addr); +} + +static void loongarch_relax_perform_deletes (bfd *abfd, asection *sec, struct bfd_link_info *link_info) { @@ -5135,7 +5170,7 @@ loongarch_tls_perform_trans (bfd *abfd, asection *sec, bfd_put (32, abfd, LARCH_NOP, contents + rel->r_offset); /* link with -relax option will delete NOP. */ if (!info->disable_target_specific_optimizations) - loongarch_relax_delete_bytes (abfd, rel->r_offset, 4, info); + loongarch_relax_delete_or_nop (abfd, sec, rel->r_offset, 4, info); return true; case R_LARCH_TLS_IE_PC_HI20: @@ -5250,7 +5285,7 @@ loongarch_relax_tls_le (bfd *abfd, asection *sec, asection *sym_sec, if (symval < 0x800) { rel->r_info = ELFNN_R_INFO (0, R_LARCH_NONE); - loongarch_relax_delete_bytes (abfd, rel->r_offset, + loongarch_relax_delete_or_nop (abfd, sec, rel->r_offset, 4, link_info); } break; @@ -5275,8 +5310,8 @@ loongarch_relax_tls_le (bfd *abfd, asection *sec, asection *sym_sec, case R_LARCH_TLS_LE64_LO20: case R_LARCH_TLS_LE64_HI12: rel->r_info = ELFNN_R_INFO (0, R_LARCH_NONE); - loongarch_relax_delete_bytes (abfd, rel->r_offset, - 4, link_info); + loongarch_relax_delete_or_nop (abfd, sec, rel->r_offset, + 4, link_info); break; case R_LARCH_TLS_LE_LO12: @@ -5339,17 +5374,22 @@ loongarch_relax_pcala_addi (bfd *abfd, asection *sec, asection *sym_sec, symval = sec_addr (sec) + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec)); - /* If pc and symbol not in the same segment, add/sub segment alignment. */ - if (!loongarch_two_sections_in_same_segment (info->output_bfd, - sec->output_section, - sym_sec->output_section)) - max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize - : max_alignment; - - if (symval > pc) - pc -= (max_alignment > 4 ? max_alignment : 0); - else if (symval < pc) - pc += (max_alignment > 4 ? max_alignment : 0); + /* If pc and symbol not in the same segment, add/sub segment alignment if the + section has not undergone alignment processing because distances may grow + after alignment. */ + if (!loongarch_sec_closed_for_deletion (sec)) + { + if (!loongarch_two_sections_in_same_segment (info->output_bfd, + sec->output_section, + sym_sec->output_section)) + max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize + : max_alignment; + + if (symval > pc) + pc -= (max_alignment > 4 ? max_alignment : 0); + else if (symval < pc) + pc += (max_alignment > 4 ? max_alignment : 0); + } const uint32_t pcaddi = LARCH_OP_PCADDI; @@ -5376,7 +5416,7 @@ loongarch_relax_pcala_addi (bfd *abfd, asection *sec, asection *sym_sec, R_LARCH_PCREL20_S2); rel_lo->r_info = ELFNN_R_INFO (0, R_LARCH_NONE); - loongarch_relax_delete_bytes (abfd, rel_lo->r_offset, 4, info); + loongarch_relax_delete_or_nop (abfd, sec, rel_lo->r_offset, 4, info); return true; } @@ -5404,17 +5444,22 @@ loongarch_relax_call36 (bfd *abfd, asection *sec, asection *sym_sec, symval = sec_addr (sec) + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec)); - /* If pc and symbol not in the same segment, add/sub segment alignment. */ - if (!loongarch_two_sections_in_same_segment (info->output_bfd, - sec->output_section, - sym_sec->output_section)) - max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize - : max_alignment; - - if (symval > pc) - pc -= (max_alignment > 4 ? max_alignment : 0); - else if (symval < pc) - pc += (max_alignment > 4 ? max_alignment : 0); + /* If pc and symbol not in the same segment, add/sub segment alignment if the + section has not undergone alignment processing because distances may grow + after alignment. */ + if (!loongarch_sec_closed_for_deletion (sec)) + { + if (!loongarch_two_sections_in_same_segment (info->output_bfd, + sec->output_section, + sym_sec->output_section)) + max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize + : max_alignment; + + if (symval > pc) + pc -= (max_alignment > 4 ? max_alignment : 0); + else if (symval < pc) + pc += (max_alignment > 4 ? max_alignment : 0); + } /* Is pcalau12i + addi.d insns? */ if (!LARCH_INSN_JIRL (jirl) @@ -5436,7 +5481,7 @@ loongarch_relax_call36 (bfd *abfd, asection *sec, asection *sym_sec, /* Adjust relocations. */ rel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel->r_info), R_LARCH_B26); /* Delete jirl instruction. */ - loongarch_relax_delete_bytes (abfd, rel->r_offset + 4, 4, info); + loongarch_relax_delete_or_nop (abfd, sec, rel->r_offset + 4, 4, info); return true; } @@ -5468,17 +5513,22 @@ loongarch_relax_pcala_ld (bfd *abfd, asection *sec, symval = sec_addr (sec) + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec)); - /* If pc and symbol not in the same segment, add/sub segment alignment. */ - if (!loongarch_two_sections_in_same_segment (info->output_bfd, - sec->output_section, - sym_sec->output_section)) - max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize - : max_alignment; - - if (symval > pc) - pc -= (max_alignment > 4 ? max_alignment : 0); - else if (symval < pc) - pc += (max_alignment > 4 ? max_alignment : 0); + /* If pc and symbol not in the same segment, add/sub segment alignment if the + section has not undergone alignment processing because distances may grow + after alignment. */ + if (!loongarch_sec_closed_for_deletion (sec)) + { + if (!loongarch_two_sections_in_same_segment (info->output_bfd, + sec->output_section, + sym_sec->output_section)) + max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize + : max_alignment; + + if (symval > pc) + pc -= (max_alignment > 4 ? max_alignment : 0); + else if (symval < pc) + pc += (max_alignment > 4 ? max_alignment : 0); + } if ((ELFNN_R_TYPE (rel_lo->r_info) != R_LARCH_GOT_PC_LO12) || (LARCH_GET_RD (ld) != rd) @@ -5511,8 +5561,9 @@ bfd_elfNN_loongarch_set_data_segment_info (struct bfd_link_info *info, loongarch_elf_hash_table (info)->data_segment_phase = data_segment_phase; } -/* Implement R_LARCH_ALIGN by deleting excess alignment NOPs. - Once we've handled an R_LARCH_ALIGN, we can't relax anything else. */ +/* Honor R_LARCH_ALIGN requests by deleting excess alignment NOPs. + Once we've handled an R_LARCH_ALIGN, we can't relax anything else by deleting + bytes, or alignment will be disrupted. */ static bool loongarch_relax_align (bfd *abfd, asection *sec, asection *sym_sec, Elf_Internal_Rela *rel, @@ -5553,9 +5604,9 @@ loongarch_relax_align (bfd *abfd, asection *sec, asection *sym_sec, return false; } - /* Once we've handled an R_LARCH_ALIGN in a section, - we can't relax anything else in this section. */ - sec->sec_flg0 = true; + /* Once we've handled an R_LARCH_ALIGN in a section, we can't relax anything + else by deleting bytes, or alignment will be disrupted. */ + loongarch_sec_closed_for_deletion (sec) = true; rel->r_info = ELFNN_R_INFO (0, R_LARCH_NONE); /* If skipping more bytes than the specified maximum, @@ -5600,17 +5651,22 @@ loongarch_relax_tls_ld_gd_desc (bfd *abfd, asection *sec, asection *sym_sec, symval = sec_addr (sec) + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec)); - /* If pc and symbol not in the same segment, add/sub segment alignment. */ - if (!loongarch_two_sections_in_same_segment (info->output_bfd, - sec->output_section, - sym_sec->output_section)) - max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize - : max_alignment; - - if (symval > pc) - pc -= (max_alignment > 4 ? max_alignment : 0); - else if (symval < pc) - pc += (max_alignment > 4 ? max_alignment : 0); + /* If pc and symbol not in the same segment, add/sub segment alignment if the + section has not undergone alignment processing because distances may grow + after alignment. */ + if (!loongarch_sec_closed_for_deletion (sec)) + { + if (!loongarch_two_sections_in_same_segment (info->output_bfd, + sec->output_section, + sym_sec->output_section)) + max_alignment = info->maxpagesize > max_alignment ? info->maxpagesize + : max_alignment; + + if (symval > pc) + pc -= (max_alignment > 4 ? max_alignment : 0); + else if (symval < pc) + pc += (max_alignment > 4 ? max_alignment : 0); + } const uint32_t pcaddi = LARCH_OP_PCADDI; @@ -5653,7 +5709,7 @@ loongarch_relax_tls_ld_gd_desc (bfd *abfd, asection *sec, asection *sym_sec, } rel_lo->r_info = ELFNN_R_INFO (0, R_LARCH_NONE); - loongarch_relax_delete_bytes (abfd, rel_lo->r_offset, 4, info); + loongarch_relax_delete_or_nop (abfd, sec, rel_lo->r_offset, 4, info); return true; } @@ -5697,15 +5753,25 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec, if (htab->layout_mutating_for_relr) return true; + /* Definition of LoongArch linker relaxation passes: + + - Pass 0: relaxes everything except R_LARCH_ALIGN, byte deletions are + performed; skipped if disable_target_specific_optimizations. + - Pass 1: handles alignment, byte deletions are performed. Sections with + R_LARCH_ALIGN relocations are marked closed for further byte + deletion in order to not disturb alignment. This pass is NOT + skipped even if disable_target_specific_optimizations is true. + - Pass 2: identical to Pass 0, but replacing relaxed insns with NOP in case + the containing section is closed for deletion; skip condition + also same as Pass 0. */ + bool is_alignment_pass = info->relax_pass == 1; if (bfd_link_relocatable (info) - || sec->sec_flg0 || sec->reloc_count == 0 || (sec->flags & SEC_RELOC) == 0 || (sec->flags & SEC_HAS_CONTENTS) == 0 /* The exp_seg_relro_adjust is enum phase_enum (0x4). */ || *(htab->data_segment_phase) == 4 - || (info->disable_target_specific_optimizations - && info->relax_pass == 0)) + || (info->disable_target_specific_optimizations && !is_alignment_pass)) return true; struct bfd_elf_section_data *data = elf_section_data (sec); @@ -5741,7 +5807,10 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec, htab->max_alignment = max_alignment; } - splay_tree pdops = pending_delete_ops_new (abfd); + splay_tree pdops = NULL; + if (!loongarch_sec_closed_for_deletion (sec)) + pdops = pending_delete_ops_new (abfd); + htab->pending_delete_ops = pdops; for (unsigned int i = 0; i < sec->reloc_count; i++) @@ -5783,7 +5852,13 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec, } relax_func_t relax_func = NULL; - if (info->relax_pass == 0) + if (is_alignment_pass) + { + if (r_type != R_LARCH_ALIGN) + continue; + relax_func = loongarch_relax_align; + } + else { switch (r_type) { @@ -5837,10 +5912,6 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec, continue; } } - else if (info->relax_pass == 1 && r_type == R_LARCH_ALIGN) - relax_func = loongarch_relax_align; - else - continue; /* Four kind of relocations: Normal: symval is the symbol address. @@ -5979,9 +6050,12 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec, info, again, max_alignment); } - loongarch_relax_perform_deletes (abfd, sec, info); - htab->pending_delete_ops = NULL; - splay_tree_delete (pdops); + if (pdops) + { + loongarch_relax_perform_deletes (abfd, sec, info); + htab->pending_delete_ops = NULL; + splay_tree_delete (pdops); + } return true; } diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c index 790f0397..2fd0129 100644 --- a/bfd/elfnn-riscv.c +++ b/bfd/elfnn-riscv.c @@ -99,7 +99,7 @@ ((H) != NULL \ && (H)->dynindx != -1 \ && (!bfd_link_pic (INFO) \ - || !SYMBOLIC_BIND ((INFO), (H)) \ + || !(bfd_link_pie ((INFO)) || SYMBOLIC_BIND ((INFO), (H))) \ || !(H)->def_regular)) /* True if this is actually a static link, or it is a -Bsymbolic link diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h index 625243c..4cf02bb 100644 --- a/bfd/elfxx-target.h +++ b/bfd/elfxx-target.h @@ -225,8 +225,6 @@ _bfd_elf_copy_private_symbol_data #endif -#define bfd_elfNN_init_private_section_data \ - _bfd_elf_init_private_section_data #ifndef bfd_elfNN_bfd_copy_private_section_data #define bfd_elfNN_bfd_copy_private_section_data \ _bfd_elf_copy_private_section_data diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h index ae6d303..213cc7d 100644 --- a/bfd/libbfd-in.h +++ b/bfd/libbfd-in.h @@ -270,17 +270,14 @@ extern bool _bfd_generic_get_section_contents #define _bfd_generic_bfd_merge_private_bfd_data \ _bfd_bool_bfd_link_true #define _bfd_generic_bfd_set_private_flags _bfd_bool_bfd_uint_true -#define _bfd_generic_bfd_copy_private_section_data \ - _bfd_bool_bfd_asection_bfd_asection_true +extern bool _bfd_generic_bfd_copy_private_section_data + (bfd *, asection *, bfd *, asection *, struct bfd_link_info *) + ATTRIBUTE_HIDDEN; #define _bfd_generic_bfd_copy_private_symbol_data \ _bfd_bool_bfd_asymbol_bfd_asymbol_true #define _bfd_generic_bfd_copy_private_header_data _bfd_bool_bfd_bfd_true #define _bfd_generic_bfd_print_private_bfd_data _bfd_bool_bfd_ptr_true -extern bool _bfd_generic_init_private_section_data - (bfd *, asection *, bfd *, asection *, struct bfd_link_info *) - ATTRIBUTE_HIDDEN; - /* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */ diff --git a/bfd/libbfd.c b/bfd/libbfd.c index f2daf79..6587fc1 100644 --- a/bfd/libbfd.c +++ b/bfd/libbfd.c @@ -1514,11 +1514,11 @@ _bfd_write_unsigned_leb128 (bfd_byte *p, bfd_byte *end, bfd_vma val) } bool -_bfd_generic_init_private_section_data (bfd *ibfd ATTRIBUTE_UNUSED, - asection *isec ATTRIBUTE_UNUSED, - bfd *obfd ATTRIBUTE_UNUSED, - asection *osec ATTRIBUTE_UNUSED, - struct bfd_link_info *link_info ATTRIBUTE_UNUSED) +_bfd_generic_bfd_copy_private_section_data (bfd *ibfd ATTRIBUTE_UNUSED, + asection *isec ATTRIBUTE_UNUSED, + bfd *obfd ATTRIBUTE_UNUSED, + asection *osec ATTRIBUTE_UNUSED, + struct bfd_link_info *link_info ATTRIBUTE_UNUSED) { return true; } diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 3cb3c14..bab1f71 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -276,17 +276,14 @@ extern bool _bfd_generic_get_section_contents #define _bfd_generic_bfd_merge_private_bfd_data \ _bfd_bool_bfd_link_true #define _bfd_generic_bfd_set_private_flags _bfd_bool_bfd_uint_true -#define _bfd_generic_bfd_copy_private_section_data \ - _bfd_bool_bfd_asection_bfd_asection_true +extern bool _bfd_generic_bfd_copy_private_section_data + (bfd *, asection *, bfd *, asection *, struct bfd_link_info *) + ATTRIBUTE_HIDDEN; #define _bfd_generic_bfd_copy_private_symbol_data \ _bfd_bool_bfd_asymbol_bfd_asymbol_true #define _bfd_generic_bfd_copy_private_header_data _bfd_bool_bfd_bfd_true #define _bfd_generic_bfd_print_private_bfd_data _bfd_bool_bfd_ptr_true -extern bool _bfd_generic_init_private_section_data - (bfd *, asection *, bfd *, asection *, struct bfd_link_info *) - ATTRIBUTE_HIDDEN; - /* Routines to use for BFD_JUMP_TABLE_CORE when there is no core file support. Use BFD_JUMP_TABLE_CORE (_bfd_nocore). */ diff --git a/bfd/libecoff.h b/bfd/libecoff.h index 51a00e0..08b601d 100644 --- a/bfd/libecoff.h +++ b/bfd/libecoff.h @@ -250,9 +250,6 @@ extern bool _bfd_ecoff_get_section_contents #define _bfd_ecoff_bfd_link_split_section _bfd_generic_link_split_section #define _bfd_ecoff_bfd_link_check_relocs _bfd_generic_link_check_relocs -#define _bfd_ecoff_init_private_section_data \ - _bfd_generic_init_private_section_data - extern bool _bfd_ecoff_bfd_copy_private_bfd_data (bfd *, bfd *); #define _bfd_ecoff_bfd_copy_private_section_data \ diff --git a/bfd/libpei.h b/bfd/libpei.h index 4932fb1..fc1ada2 100644 --- a/bfd/libpei.h +++ b/bfd/libpei.h @@ -473,7 +473,7 @@ CODEVIEW_INFO *_bfd_XXi_slurp_codeview_record unsigned _bfd_XX_only_swap_filehdr_out (bfd *, void *, void *); unsigned _bfd_XXi_only_swap_filehdr_out (bfd *, void *, void *); bool _bfd_XX_bfd_copy_private_section_data - (bfd *, asection *, bfd *, asection *); + (bfd *, asection *, bfd *, asection *, struct bfd_link_info *); bool _bfd_pe_print_ce_compressed_pdata (bfd *, void *); bool _bfd_pe64_print_ce_compressed_pdata (bfd *, void *); diff --git a/bfd/mach-o-target.c b/bfd/mach-o-target.c index fa1953f..e402d3a 100644 --- a/bfd/mach-o-target.c +++ b/bfd/mach-o-target.c @@ -74,7 +74,6 @@ #define bfd_mach_o_write_armap _bfd_noarchive_write_armap #define bfd_mach_o_get_elt_at_index _bfd_noarchive_get_elt_at_index #define bfd_mach_o_update_armap_timestamp _bfd_noarchive_update_armap_timestamp -#define bfd_mach_o_init_private_section_data _bfd_generic_init_private_section_data #define TARGET_NAME_BACKEND XCONCAT2(TARGET_NAME,_backend) diff --git a/bfd/mach-o.c b/bfd/mach-o.c index fb5bde1..cc191b9 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -583,15 +583,17 @@ bfd_mach_o_bfd_copy_private_symbol_data (bfd *ibfd ATTRIBUTE_UNUSED, bool bfd_mach_o_bfd_copy_private_section_data (bfd *ibfd, asection *isection, - bfd *obfd, asection *osection) + bfd *obfd, asection *osection, + struct bfd_link_info *link_info) { - bfd_mach_o_section *os = bfd_mach_o_get_mach_o_section (osection); - bfd_mach_o_section *is = bfd_mach_o_get_mach_o_section (isection); - - if (ibfd->xvec->flavour != bfd_target_mach_o_flavour + if (link_info != NULL + || ibfd->xvec->flavour != bfd_target_mach_o_flavour || obfd->xvec->flavour != bfd_target_mach_o_flavour) return true; + bfd_mach_o_section *os = bfd_mach_o_get_mach_o_section (osection); + bfd_mach_o_section *is = bfd_mach_o_get_mach_o_section (isection); + BFD_ASSERT (is != NULL && os != NULL); os->flags = is->flags; diff --git a/bfd/mach-o.h b/bfd/mach-o.h index 3aaae38..1cda072 100644 --- a/bfd/mach-o.h +++ b/bfd/mach-o.h @@ -691,7 +691,8 @@ bool bfd_mach_o_write_contents (bfd *); bool bfd_mach_o_bfd_copy_private_symbol_data (bfd *, asymbol *, bfd *, asymbol *); bool bfd_mach_o_bfd_copy_private_section_data (bfd *, asection *, - bfd *, asection *); + bfd *, asection *, + struct bfd_link_info *); bool bfd_mach_o_bfd_copy_private_header_data (bfd *, bfd *); bool bfd_mach_o_bfd_set_private_flags (bfd *, flagword); bool bfd_mach_o_bfd_print_private_bfd_data (bfd *, void *); @@ -3350,7 +3350,6 @@ mmo_write_object_contents (bfd *abfd) #define mmo_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data #define mmo_bfd_set_private_flags _bfd_generic_bfd_set_private_flags #define mmo_bfd_print_private_bfd_data _bfd_generic_bfd_print_private_bfd_data -#define mmo_init_private_section_data _bfd_generic_init_private_section_data const bfd_target mmix_mmo_vec = { diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c index 19f38a4..c337fc5 100644 --- a/bfd/peXXigen.c +++ b/bfd/peXXigen.c @@ -3115,9 +3115,11 @@ bool _bfd_XX_bfd_copy_private_section_data (bfd *ibfd, asection *isec, bfd *obfd, - asection *osec) + asection *osec, + struct bfd_link_info *link_info) { - if (bfd_get_flavour (ibfd) != bfd_target_coff_flavour + if (link_info != NULL + || bfd_get_flavour (ibfd) != bfd_target_coff_flavour || bfd_get_flavour (obfd) != bfd_target_coff_flavour) return true; diff --git a/bfd/plugin.c b/bfd/plugin.c index d57ae59..1c72b74 100644 --- a/bfd/plugin.c +++ b/bfd/plugin.c @@ -73,8 +73,6 @@ dlerror (void) #define bfd_plugin_bfd_free_cached_info _bfd_generic_bfd_free_cached_info #define bfd_plugin_new_section_hook _bfd_generic_new_section_hook #define bfd_plugin_get_section_contents _bfd_generic_get_section_contents -#define bfd_plugin_init_private_section_data _bfd_generic_init_private_section_data -#define bfd_plugin_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data #define bfd_plugin_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data #define bfd_plugin_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data #define bfd_plugin_bfd_set_private_flags _bfd_generic_bfd_set_private_flags @@ -782,7 +780,8 @@ static bool bfd_plugin_bfd_copy_private_section_data (bfd *ibfd ATTRIBUTE_UNUSED, asection *isection ATTRIBUTE_UNUSED, bfd *obfd ATTRIBUTE_UNUSED, - asection *osection ATTRIBUTE_UNUSED) + asection *osection ATTRIBUTE_UNUSED, + struct bfd_link_info *link_info ATTRIBUTE_UNUSED) { BFD_ASSERT (0); return true; diff --git a/bfd/po/ms.po b/bfd/po/ms.po index 92b41d0..89e2760 100644 --- a/bfd/po/ms.po +++ b/bfd/po/ms.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: bfd 2.43.90\n" "Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n" "POT-Creation-Date: 2025-01-19 12:19+0000\n" -"PO-Revision-Date: 2025-05-26 00:22+0800\n" +"PO-Revision-Date: 2025-07-04 21:09+0800\n" "Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n" "Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n" "Language: ms\n" @@ -212,7 +212,9 @@ msgstr "Format Fail" #: bfd.c:791 #, fuzzy msgid "section has no contents" -msgstr "Kand_ungan" +msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #: bfd.c:792 #, fuzzy @@ -607,9 +609,11 @@ msgid "warning: type of symbol `%s' changed from %d to %d in %pB" msgstr "" #: cofflink.c:2340 -#, c-format +#, fuzzy, c-format msgid "%pB: relocs in section `%pA', but it has no contents" msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #: cofflink.c:2403 elflink.c:11809 #, c-format @@ -659,7 +663,9 @@ msgstr "%s: tidak dapat mencari seksyen .text dalam %s\n" #: dwarf2.c:710 #, fuzzy, c-format msgid "DWARF error: section %s has no contents" -msgstr "Ralat menyenaraikan kandungan folder '%s': %s" +msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #. PR 26946 #: dwarf2.c:719 @@ -786,7 +792,7 @@ msgstr "" #: ecoff.c:1313 #, fuzzy, c-format msgid "unknown basic type %d" -msgstr "Jenis anak panah %d tak diketahui\n" +msgstr "Jenis bus %d tidak diketahui" #: ecoff.c:1571 #, fuzzy, c-format @@ -1141,7 +1147,7 @@ msgstr "" #: elf.c:614 #, fuzzy, c-format msgid "%pB: could not read contents of group [%u]" -msgstr "Tidak dapat membaca kandungan %s" +msgstr "Tidak dapat membaca kandungan folder" #: elf.c:645 #, c-format @@ -2252,7 +2258,7 @@ msgstr "" #: elf32-avr.c:3335 elfnn-aarch64.c:3219 #, fuzzy, c-format msgid "cannot create stub entry %s" -msgstr "%s: Tak dapat mencipta symlink ke %s" +msgstr "Tidak dapat cipta folder '%s'" #: elf32-bfin.c:107 elf32-bfin.c:364 #, fuzzy @@ -3197,7 +3203,7 @@ msgstr "Tidak boleh mengendalikan lokasi \"%s:\"." #: elf32-ppc.c:1627 #, fuzzy, c-format msgid "corrupt %s section in %pB" -msgstr "%pB: gagal membaca bahagian data nyahpepijat" +msgstr "%s Pb" #: elf32-ppc.c:1646 #, fuzzy, c-format @@ -4521,7 +4527,9 @@ msgstr "" #: elf64-mmix.c:2208 #, fuzzy msgid "register section has contents\n" -msgstr "Bahagian" +msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #: elf64-mmix.c:2398 #, c-format @@ -6628,7 +6636,7 @@ msgstr "(Kod mekanisma GSSAPI tidak diketahui: %x)" #: pei-x86_64.c:403 pei-x86_64.c:413 pei-x86_64.c:422 #, fuzzy, c-format msgid "warning: xdata section corrupt\n" -msgstr "AMARAN" +msgstr "Bahagian .rsrc yang rosak dikesan!\n" #: pei-x86_64.c:477 #, fuzzy, c-format @@ -6653,11 +6661,13 @@ msgid "Warning: %s section size (%ld) is smaller than virtual size (%ld)\n" msgstr "" #: pei-x86_64.c:594 -#, c-format +#, fuzzy, c-format msgid "" "\n" "The Function Table (interpreted %s section contents)\n" msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #: pei-x86_64.c:597 #, c-format @@ -6915,7 +6925,7 @@ msgstr "" #: vms-alpha.c:1441 #, fuzzy, c-format msgid "unknown EGSD subtype %d" -msgstr "Subjenis polyline tak diketahui: %d\n" +msgstr "Subjenis spline tak diketahui: %d\n" #: vms-alpha.c:1474 #, c-format @@ -6951,7 +6961,7 @@ msgstr "Fail rosak?" #: vms-alpha.c:1989 #, fuzzy, c-format msgid "bad section index in %s" -msgstr "Tiada seksyen sebegitu: %s" +msgstr "Nilai magik buruk dalam profile_section_t" #: vms-alpha.c:2003 #, fuzzy, c-format @@ -9063,7 +9073,7 @@ msgstr "Tidak boleh muatkan lokasi" #: xtensa-dynconfig.c:86 #, fuzzy, c-format msgid "%s is defined but could not be loaded: %s" -msgstr "Fail '%s' tidak dapat dimuatkan." +msgstr "Profil tidak dapat dimuatkan: %s" #: xtensa-dynconfig.c:102 #, fuzzy, c-format @@ -9485,7 +9495,9 @@ msgstr "_Pangkalan Direktori:" #: peXXigen.c:1233 #, fuzzy msgid "Debug Directory" -msgstr "gagal mengemaskini offset fail dalam direktori nyahpijat" +msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #: peXXigen.c:1234 #, fuzzy @@ -9543,7 +9555,9 @@ msgstr "" msgid "" "\n" "There is an import table in %s, but that section has no contents\n" -msgstr "Jadual %s telah dipindahkan ke %s." +msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #: peXXigen.c:1320 #, fuzzy, c-format @@ -9553,11 +9567,13 @@ msgid "" msgstr "[find_call] %s: 0x%lx ke 0x%lx\n" #: peXXigen.c:1326 -#, c-format +#, fuzzy, c-format msgid "" "\n" "The Import Tables (interpreted %s section contents)\n" msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #: peXXigen.c:1329 #, c-format @@ -9619,12 +9635,14 @@ msgid "" msgstr "[find_call] %s: 0x%lx ke 0x%lx\n" #: peXXigen.c:1666 -#, c-format +#, fuzzy, c-format msgid "" "\n" "The Export Tables (interpreted %s section contents)\n" "\n" msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #: peXXigen.c:1670 #, fuzzy, c-format @@ -9789,7 +9807,7 @@ msgstr "" #: peXXigen.c:2276 #, fuzzy, c-format msgid "%03x %*.s Entry: " -msgstr "Masukan EXIF '%s' " +msgstr " Sumber bermula pada offset: %#03x\n" #: peXXigen.c:2300 #, fuzzy, c-format @@ -9822,9 +9840,9 @@ msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n" msgstr "" #: peXXigen.c:2402 -#, fuzzy, c-format +#, c-format msgid "<unknown directory type: %d>\n" -msgstr "Jenis objek tak diketahui %d\n" +msgstr "<jenis direktori tidak diketahui: %d>\n" #: peXXigen.c:2410 #, c-format @@ -9832,9 +9850,9 @@ msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n" msgstr "" #: peXXigen.c:2498 -#, fuzzy, c-format +#, c-format msgid "Corrupt .rsrc section detected!\n" -msgstr "Fail rosak?" +msgstr "Bahagian .rsrc yang rosak dikesan!\n" #: peXXigen.c:2522 #, c-format @@ -9844,28 +9862,32 @@ msgid "" msgstr "" #: peXXigen.c:2528 -#, c-format +#, fuzzy, c-format msgid " String table starts at offset: %#03x\n" -msgstr "" +msgstr " Sumber bermula pada offset: %#03x\n" #: peXXigen.c:2531 -#, fuzzy, c-format +#, c-format msgid " Resources start at offset: %#03x\n" -msgstr "Mulakan Offset" +msgstr " Sumber bermula pada offset: %#03x\n" #: peXXigen.c:2588 -#, c-format +#, fuzzy, c-format msgid "" "\n" "There is a debug directory, but the section containing it could not be found\n" msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #: peXXigen.c:2594 -#, fuzzy, c-format +#, c-format msgid "" "\n" "There is a debug directory in %s, but that section has no contents\n" -msgstr "Gagal memproses laporan nyahpijat, meninggalkan fail dalam direktori \"%s\"." +msgstr "" +"\n" +"Terdapat direktori nyahpijat dalam %s, tetapi bahagian itu tidak mempunyai kandungan\n" #: peXXigen.c:2601 #, c-format @@ -9963,9 +9985,9 @@ msgstr "" #. Corrupted .rsrc section - cannot merge. #: peXXigen.c:4286 -#, c-format +#, fuzzy, c-format msgid "%pB: .rsrc merge failure: corrupt .rsrc section" -msgstr "" +msgstr "Bahagian .rsrc yang rosak dikesan!\n" #: peXXigen.c:4294 #, c-format diff --git a/bfd/ppcboot.c b/bfd/ppcboot.c index b4b59c9..dd70267 100644 --- a/bfd/ppcboot.c +++ b/bfd/ppcboot.c @@ -474,7 +474,6 @@ ppcboot_bfd_print_private_bfd_data (bfd *abfd, void * farg) #define ppcboot_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data #define ppcboot_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data -#define ppcboot_init_private_section_data _bfd_generic_init_private_section_data #define ppcboot_bfd_copy_private_section_data _bfd_generic_bfd_copy_private_section_data #define ppcboot_bfd_copy_private_symbol_data _bfd_generic_bfd_copy_private_symbol_data #define ppcboot_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data diff --git a/bfd/section.c b/bfd/section.c index 9460ff9..5f0cf6e 100644 --- a/bfd/section.c +++ b/bfd/section.c @@ -1667,7 +1667,8 @@ FUNCTION SYNOPSIS bool bfd_copy_private_section_data - (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); + (bfd *ibfd, asection *isec, bfd *obfd, asection *osec, + struct bfd_link_info *link_info); DESCRIPTION Copy private section information from @var{isec} in the BFD @@ -1678,9 +1679,9 @@ DESCRIPTION o <<bfd_error_no_memory>> - Not enough memory exists to create private data for @var{osec}. -.#define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \ +.#define bfd_copy_private_section_data(ibfd, isec, obfd, osec, link_info) \ . BFD_SEND (obfd, _bfd_copy_private_section_data, \ -. (ibfd, isection, obfd, osection)) +. (ibfd, isec, obfd, osec, link_info)) */ /* @@ -5372,17 +5372,17 @@ static bool som_bfd_copy_private_section_data (bfd *ibfd, asection *isection, bfd *obfd, - asection *osection) + asection *osection, + struct bfd_link_info *link_info) { - size_t amt; - /* One day we may try to grok other private data. */ - if (ibfd->xvec->flavour != bfd_target_som_flavour + if (link_info != NULL + || ibfd->xvec->flavour != bfd_target_som_flavour || obfd->xvec->flavour != bfd_target_som_flavour || (!som_is_space (isection) && !som_is_subspace (isection))) return true; - amt = sizeof (struct som_copyable_section_data_struct); + size_t amt = sizeof (struct som_copyable_section_data_struct); som_section_data (osection)->copy_data = bfd_zalloc (obfd, amt); if (som_section_data (osection)->copy_data == NULL) return false; @@ -5401,7 +5401,8 @@ som_bfd_copy_private_section_data (bfd *ibfd, { /* User has specified a subspace without its containing space. */ _bfd_error_handler (_("%pB[%pA]: no output section for space %pA"), - obfd, osection, som_section_data (osection)->copy_data->container); + obfd, osection, + som_section_data (osection)->copy_data->container); return false; } } @@ -6779,7 +6780,6 @@ som_bfd_link_split_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec) #define som_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define som_bfd_define_start_stop bfd_generic_define_start_stop #define som_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data -#define som_init_private_section_data _bfd_generic_init_private_section_data #define som_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data #define som_bfd_set_private_flags _bfd_generic_bfd_set_private_flags #define som_find_inliner_info _bfd_nosymbols_find_inliner_info diff --git a/bfd/targets.c b/bfd/targets.c index 18f5782..2333370 100644 --- a/bfd/targets.c +++ b/bfd/targets.c @@ -282,7 +282,6 @@ BFD_JUMP_TABLE macros. .#define BFD_JUMP_TABLE_COPY(NAME) \ . NAME##_bfd_copy_private_bfd_data, \ . NAME##_bfd_merge_private_bfd_data, \ -. NAME##_init_private_section_data, \ . NAME##_bfd_copy_private_section_data, \ . NAME##_bfd_copy_private_symbol_data, \ . NAME##_bfd_copy_private_header_data, \ @@ -295,16 +294,10 @@ BFD_JUMP_TABLE macros. . {* Called to merge BFD general private data from one object file . to a common output file when linking. *} . bool (*_bfd_merge_private_bfd_data) (bfd *, struct bfd_link_info *); -. {* Called to initialize BFD private section data from one object file -. to another. *} -.#define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \ -. BFD_SEND (obfd, _bfd_init_private_section_data, \ -. (ibfd, isec, obfd, osec, link_info)) -. bool (*_bfd_init_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr, -. struct bfd_link_info *); . {* Called to copy BFD private section data from one object file . to another. *} -. bool (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr); +. bool (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr, +. struct bfd_link_info *); . {* Called to copy BFD private symbol data from one symbol . to another. *} . bool (*_bfd_copy_private_symbol_data) (bfd *, asymbol *, diff --git a/bfd/version.h b/bfd/version.h index 388439d..4371993 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 20250706 +#define BFD_VERSION_DATE 20250709 #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/bfd/vms-alpha.c b/bfd/vms-alpha.c index 548a979..c4b2484 100644 --- a/bfd/vms-alpha.c +++ b/bfd/vms-alpha.c @@ -10156,7 +10156,6 @@ bfd_vms_get_data (bfd *abfd) #define vms_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data #define vms_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data -#define vms_init_private_section_data _bfd_generic_init_private_section_data #define vms_bfd_copy_private_section_data _bfd_generic_bfd_copy_private_section_data #define vms_bfd_copy_private_symbol_data _bfd_generic_bfd_copy_private_symbol_data #define vms_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data diff --git a/binutils/objcopy.c b/binutils/objcopy.c index 2e98ba4..8c90773 100644 --- a/binutils/objcopy.c +++ b/binutils/objcopy.c @@ -4398,7 +4398,7 @@ setup_section (bfd *ibfd, sec_ptr isection, bfd *obfd) /* Allow the BFD backend to copy any private data it understands from the input section to the output section. */ - if (!bfd_copy_private_section_data (ibfd, isection, obfd, osection)) + if (!bfd_copy_private_section_data (ibfd, isection, obfd, osection, NULL)) err = _("failed to copy private data"); if (make_nobits) @@ -577,7 +577,7 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen, if (check_multibyte) (void) scan_for_multibyte_characters ((const unsigned char *) from, - (const unsigned char* ) fromend, + (const unsigned char *) fromend, true /* Generate warnings. */); } @@ -1218,7 +1218,7 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen, else ch = process_escape (ch); } - sprintf (out_buf, "%d", (int) (unsigned char) ch); + sprintf (out_buf, "%d", ch & 0xff); /* None of these 'x constants for us. We want 'x'. */ if ((ch = GET ()) != '\'') @@ -791,7 +791,7 @@ This program has absolutely no warranty.\n")); if (*s == '\0') as_fatal (_("bad defsym; format is --defsym name=value")); *s++ = '\0'; - i = bfd_scan_vma (s, (const char **) NULL, 0); + i = bfd_scan_vma (s, NULL, 0); n = XNEW (struct defsym_list); n->next = defsyms; n->name = optarg; diff --git a/gas/atof-generic.c b/gas/atof-generic.c index 5bf0867..59d1110 100644 --- a/gas/atof-generic.c +++ b/gas/atof-generic.c @@ -303,7 +303,7 @@ atof_generic (/* return pointer to just AFTER number we read. */ { if (decimal_exponent > LONG_MAX / 10 || (decimal_exponent == LONG_MAX / 10 - && c > '0' + (char) (LONG_MAX - LONG_MAX / 10 * 10))) + && c > '0' + (LONG_MAX - LONG_MAX / 10 * 10))) return_value = ERROR_EXPONENT_OVERFLOW; decimal_exponent = decimal_exponent * 10 + c - '0'; } @@ -351,7 +351,6 @@ atof_generic (/* return pointer to just AFTER number we read. */ unsigned int more_than_enough_bits_for_digits; unsigned int more_than_enough_littlenums_for_digits; unsigned int size_of_digits_in_littlenums; - unsigned int size_of_digits_in_chars; FLONUM_TYPE power_of_10_flonum; FLONUM_TYPE digits_flonum; @@ -375,11 +374,8 @@ atof_generic (/* return pointer to just AFTER number we read. */ number_of_digits_to_use = number_of_digits_available; } - /* Cast these to SIGNED LONG first, otherwise, on systems with - LONG wider than INT (such as Alpha OSF/1), unsignedness may - cause unexpected results. */ - decimal_exponent += ((long) number_of_digits_before_decimal - - (long) number_of_digits_to_use); + decimal_exponent += number_of_digits_before_decimal; + decimal_exponent -= number_of_digits_to_use; more_than_enough_bits_for_digits = (number_of_digits_to_use * 3321928 / 1000000 + 1); @@ -398,13 +394,9 @@ atof_generic (/* return pointer to just AFTER number we read. */ object). */ size_of_digits_in_littlenums = more_than_enough_littlenums_for_digits; - size_of_digits_in_chars = size_of_digits_in_littlenums - * sizeof (LITTLENUM_TYPE); - digits_binary_low = (LITTLENUM_TYPE *) - xmalloc (size_of_digits_in_chars); - - memset ((char *) digits_binary_low, '\0', size_of_digits_in_chars); + digits_binary_low = xcalloc (size_of_digits_in_littlenums, + sizeof (LITTLENUM_TYPE)); /* Digits_binary_low[] is allocated and zeroed. */ @@ -514,13 +506,13 @@ atof_generic (/* return pointer to just AFTER number we read. */ /* From now on: the decimal exponent is > 0. Its sign is separate. */ - size_of_power_in_chars = size_of_power_in_littlenums - * sizeof (LITTLENUM_TYPE) + 2; + size_of_power_in_chars = (size_of_power_in_littlenums + * sizeof (LITTLENUM_TYPE)) + 2; - power_binary_low = (LITTLENUM_TYPE *) xmalloc (size_of_power_in_chars); - temporary_binary_low = (LITTLENUM_TYPE *) xmalloc (size_of_power_in_chars); + power_binary_low = xmalloc (size_of_power_in_chars); + temporary_binary_low = xmalloc (size_of_power_in_chars); - memset ((char *) power_binary_low, '\0', size_of_power_in_chars); + memset (power_binary_low, '\0', size_of_power_in_chars); *power_binary_low = 1; power_of_10_flonum.exponent = 0; power_of_10_flonum.low = power_binary_low; @@ -632,8 +624,7 @@ atof_generic (/* return pointer to just AFTER number we read. */ #ifdef TRACE static void -flonum_print (f) - const FLONUM_TYPE *f; +flonum_print (const FLONUM_TYPE *f) { LITTLENUM_TYPE *lp; char littlenum_format[10]; @@ -248,9 +248,7 @@ gas_cgen_record_fixup (fragS *frag, int where, const CGEN_INSN *insn, but it is the operand that has a pc relative relocation. */ fixP = fix_new (frag, where, length / 8, symbol, offset, CGEN_OPERAND_ATTR_VALUE (operand, CGEN_OPERAND_PCREL_ADDR), - (bfd_reloc_code_real_type) - ((int) BFD_RELOC_UNUSED - + (int) operand->type)); + BFD_RELOC_UNUSED + operand->type); fixP->fx_cgen.insn = insn; fixP->fx_cgen.opinfo = opinfo; fixP->fx_cgen.field = NULL; @@ -283,9 +281,7 @@ gas_cgen_record_fixup_exp (fragS *frag, int where, const CGEN_INSN *insn, but it is the operand that has a pc relative relocation. */ fixP = fix_new_exp (frag, where, length / 8, exp, CGEN_OPERAND_ATTR_VALUE (operand, CGEN_OPERAND_PCREL_ADDR), - (bfd_reloc_code_real_type) - ((int) BFD_RELOC_UNUSED - + (int) operand->type)); + BFD_RELOC_UNUSED + operand->type); fixP->fx_cgen.insn = insn; fixP->fx_cgen.opinfo = opinfo; fixP->fx_cgen.field = NULL; @@ -479,13 +475,13 @@ gas_cgen_parse_operand (CGEN_CPU_DESC cd ATTRIBUTE_UNUSED, /* Re-init rightshift quantity, just in case. */ rightshift = operand->length; queue_fixup_recursively (opindex, opinfo_1, & exp, - (reloc_type == BFD_RELOC_RELC) ? - & (operand->index_fields) : 0, + (reloc_type == BFD_RELOC_RELC + ? &operand->index_fields : 0), signed_p, -1); } - * resultP = errmsg - ? CGEN_PARSE_OPERAND_RESULT_ERROR - : CGEN_PARSE_OPERAND_RESULT_QUEUED; + *resultP = (errmsg + ? CGEN_PARSE_OPERAND_RESULT_ERROR + : CGEN_PARSE_OPERAND_RESULT_QUEUED); *valueP = 0; #else queue_fixup (opindex, opinfo_1, &exp); @@ -852,16 +848,16 @@ gas_cgen_md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) /* Canonical name, since used a lot. */ CGEN_CPU_DESC cd = gas_cgen_cpu_desc; - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; /* We don't actually support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_where (fixP->fx_file, fixP->fx_line, _("expression too complex")); - if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + if (fixP->fx_r_type >= BFD_RELOC_UNUSED) { - int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + int opindex = fixP->fx_r_type - BFD_RELOC_UNUSED; const CGEN_OPERAND *operand = cgen_operand_lookup_by_num (cd, opindex); const char *errmsg; bfd_reloc_code_real_type reloc_type; @@ -914,7 +910,7 @@ gas_cgen_md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) /* ??? 0 is passed for `pc'. */ errmsg = CGEN_CPU_INSERT_OPERAND (cd) (cd, opindex, fields, - &insn_value, (bfd_vma) 0); + &insn_value, 0); cgen_put_insn_value (cd, (unsigned char *) where, CGEN_INSN_BITSIZE (insn), insn_value, cd->insn_endian); @@ -922,8 +918,7 @@ gas_cgen_md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) #else /* ??? 0 is passed for `pc'. */ errmsg = CGEN_CPU_INSERT_OPERAND (cd) (cd, opindex, fields, - (unsigned char *) where, - (bfd_vma) 0); + (unsigned char *) where, 0); #endif if (errmsg) as_bad_where (fixP->fx_file, fixP->fx_line, "%s", errmsg); @@ -110,8 +110,7 @@ s_ifdef (int test_defined) cframe.ignoring = ! (test_defined ^ is_defined); } - current_cframe = - (struct conditional_frame *) obstack_alloc (&cond_obstack, sizeof cframe); + current_cframe = obstack_alloc (&cond_obstack, sizeof cframe); memcpy (current_cframe, &cframe, sizeof cframe); if (LISTING_SKIP_COND () @@ -168,8 +167,7 @@ s_if (int arg) using an undefined result. No big deal. */ initialize_cframe (&cframe); cframe.ignoring = cframe.dead_tree || ! t; - current_cframe = - (struct conditional_frame *) obstack_alloc (&cond_obstack, sizeof cframe); + current_cframe = obstack_alloc (&cond_obstack, sizeof cframe); memcpy (current_cframe, & cframe, sizeof cframe); if (LISTING_SKIP_COND () @@ -205,8 +203,7 @@ s_ifb (int test_blank) cframe.ignoring = (test_blank == !is_eol); } - current_cframe = - (struct conditional_frame *) obstack_alloc (&cond_obstack, sizeof cframe); + current_cframe = obstack_alloc (&cond_obstack, sizeof cframe); memcpy (current_cframe, &cframe, sizeof cframe); if (LISTING_SKIP_COND () @@ -286,8 +283,7 @@ s_ifc (int arg) initialize_cframe (&cframe); cframe.ignoring = cframe.dead_tree || ! (res ^ arg); - current_cframe = - (struct conditional_frame *) obstack_alloc (&cond_obstack, sizeof cframe); + current_cframe = obstack_alloc (&cond_obstack, sizeof cframe); memcpy (current_cframe, &cframe, sizeof cframe); if (LISTING_SKIP_COND () @@ -348,7 +344,7 @@ s_elseif (int arg) if (operand.X_op != O_constant) as_bad (_("non-constant expression in \".elseif\" statement")); - switch ((operatorT) arg) + switch (arg) { case O_eq: t = operand.X_add_number == 0; break; case O_ne: t = operand.X_add_number != 0; break; @@ -481,8 +477,7 @@ s_ifeqs (int arg) initialize_cframe (&cframe); cframe.ignoring = cframe.dead_tree || ! (res ^ arg); - current_cframe = - (struct conditional_frame *) obstack_alloc (&cond_obstack, sizeof cframe); + current_cframe = obstack_alloc (&cond_obstack, sizeof cframe); memcpy (current_cframe, &cframe, sizeof cframe); if (LISTING_SKIP_COND () @@ -509,7 +504,7 @@ ignore_input (void) else { if (s[-1] != '.') - return (current_cframe != NULL) && (current_cframe->ignoring); + return current_cframe != NULL && current_cframe->ignoring; } /* We cannot ignore certain pseudo ops. */ @@ -531,15 +526,14 @@ ignore_input (void) break; } - return (current_cframe != NULL) && (current_cframe->ignoring); + return current_cframe != NULL && current_cframe->ignoring; } static void initialize_cframe (struct conditional_frame *cframe) { memset (cframe, 0, sizeof (*cframe)); - cframe->if_file_line.file - = as_where (&cframe->if_file_line.line); + cframe->if_file_line.file = as_where (&cframe->if_file_line.line); cframe->previous_cframe = current_cframe; cframe->dead_tree = current_cframe != NULL && current_cframe->ignoring; cframe->macro_nest = macro_nest; diff --git a/gas/config/atof-ieee.c b/gas/config/atof-ieee.c index b03919e..a1c3ca2 100644 --- a/gas/config/atof-ieee.c +++ b/gas/config/atof-ieee.c @@ -147,12 +147,12 @@ make_invalid_floating_point_number (LITTLENUM_TYPE *words) { as_bad (_("cannot create floating-point number")); /* Zero the leftmost bit. */ - words[0] = (LITTLENUM_TYPE) ((unsigned) -1) >> 1; - words[1] = (LITTLENUM_TYPE) -1; - words[2] = (LITTLENUM_TYPE) -1; - words[3] = (LITTLENUM_TYPE) -1; - words[4] = (LITTLENUM_TYPE) -1; - words[5] = (LITTLENUM_TYPE) -1; + words[0] = (LITTLENUM_TYPE) -1 >> 1; + words[1] = -1; + words[2] = -1; + words[3] = -1; + words[4] = -1; + words[5] = -1; } /* Build a floating point constant at str into a IEEE floating @@ -283,7 +283,7 @@ atof_ieee (char *str, /* Text to convert to binary. */ default: make_invalid_floating_point_number (words); - return (NULL); + return NULL; } return atof_ieee_detail (str, precision, exponent_bits, words, NULL); @@ -553,7 +553,7 @@ gen_to_words (LITTLENUM_TYPE *words, int precision, long exponent_bits) tmp_bits = prec_bits; while (tmp_bits > LITTLENUM_NUMBER_OF_BITS) { - if (lp[n] != (LITTLENUM_TYPE) - 1) + if (lp[n] != (LITTLENUM_TYPE) -1) break; --n; tmp_bits -= LITTLENUM_NUMBER_OF_BITS; @@ -835,17 +835,17 @@ ieee_md_atof (int type, if (big_wordian) { - for (wordP = words; prec --;) + for (wordP = words; prec--;) { - md_number_to_chars (litP, (valueT) (* wordP ++), sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, *wordP++, sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } } else { - for (wordP = words + prec; prec --;) + for (wordP = words + prec; prec--;) { - md_number_to_chars (litP, (valueT) (* -- wordP), sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, *--wordP, sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } } diff --git a/gas/config/kvx-parse.c b/gas/config/kvx-parse.c index 5995d62..ea96f3d 100644 --- a/gas/config/kvx-parse.c +++ b/gas/config/kvx-parse.c @@ -68,7 +68,7 @@ has_relocation_of_size (const struct kvx_reloc **relocs) if (!relocs) return 0; - struct kvx_reloc **relocs_it = (struct kvx_reloc **) relocs; + const struct kvx_reloc **relocs_it = relocs; int has_only_one_p = relocs[0] && !relocs[1]; while (*relocs_it) @@ -101,15 +101,13 @@ has_relocation_of_size (const struct kvx_reloc **relocs) return 0; } -struct pseudo_func * -kvx_get_pseudo_func2 (symbolS * sym, struct kvx_reloc **relocs); -struct pseudo_func * -kvx_get_pseudo_func2 (symbolS *sym, struct kvx_reloc **relocs) +static struct pseudo_func * +kvx_get_pseudo_func2 (symbolS *sym, const struct kvx_reloc **relocs) { if (!relocs) return NULL; - struct kvx_reloc **relocs_it = (struct kvx_reloc **) relocs; + const struct kvx_reloc **relocs_it = relocs; for (int i = 0; i < 26; i++) { @@ -460,7 +458,7 @@ get_token_class (struct token_s *token, struct token_classes *classes, int insn_ { int cur = 0; int found = 0; - int tok_sz = token->end - token->begin; + size_t tok_sz = token->end - token->begin; char *tok = token->insn + token->begin; expressionS exp; @@ -559,7 +557,7 @@ get_token_class (struct token_s *token, struct token_classes *classes, int insn_ for (int i = 0; !found && i < class[cur].sz; ++i) { const char *ref = class[cur].class_values[i]; - found = ((long) strlen (ref) == tok_sz) && !strncmp (tok, ref, tok_sz); + found = (strlen (ref) == tok_sz) && !strncmp (tok, ref, tok_sz); token->val = i; } @@ -671,7 +669,7 @@ static struct token_list * create_token (struct token_s tok, int len, int loc) { struct token_list *tl = calloc (1, sizeof *tl); - int tok_sz = tok.end - tok.begin; + size_t tok_sz = tok.end - tok.begin; tl->tok = calloc (tok_sz + 1, sizeof (char)); memcpy (tl->tok, tok.insn + tok.begin, tok_sz * sizeof (char)); tl->val = tok.val; diff --git a/gas/config/obj-aout.c b/gas/config/obj-aout.c index f481ad4..20167e9 100644 --- a/gas/config/obj-aout.c +++ b/gas/config/obj-aout.c @@ -155,7 +155,7 @@ obj_aout_line (int ignore ATTRIBUTE_UNUSED) /* Assume delimiter is part of expression. BSD4.2 as fails with delightful bug, so we are not being incompatible here. */ - new_logical_line ((char *) NULL, (int) (get_absolute_expression ())); + new_logical_line (NULL, get_absolute_expression ()); demand_empty_rest_of_line (); } diff --git a/gas/config/obj-coff-seh.c b/gas/config/obj-coff-seh.c index becf7a9..1607a43 100644 --- a/gas/config/obj-coff-seh.c +++ b/gas/config/obj-coff-seh.c @@ -64,7 +64,7 @@ get_pxdata_name (segT seg, const char *base_name) else name = dollar; - sname = notes_concat (base_name, name, NULL); + sname = notes_concat (base_name, name, (const char *) NULL); return sname; } diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c index 1f9eaa3..be6a965 100644 --- a/gas/config/obj-coff.c +++ b/gas/config/obj-coff.c @@ -90,7 +90,7 @@ stack_init (unsigned long chunk_size, } static char * -stack_push (stack *st, char *element) +stack_push (stack *st, void *element) { if (st->pointer + st->element_size >= st->size) { @@ -369,10 +369,10 @@ void coff_obj_symbol_new_hook (symbolS *symbolP) { size_t sz = (OBJ_COFF_MAX_AUXENTRIES + 1) * sizeof (combined_entry_type); - char *s = notes_alloc (sz); + combined_entry_type *s = notes_alloc (sz); memset (s, 0, sz); - coffsymbol (symbol_get_bfdsym (symbolP))->native = (combined_entry_type *) s; + coffsymbol (symbol_get_bfdsym (symbolP))->native = s; coffsymbol (symbol_get_bfdsym (symbolP))->native->is_sym = true; S_SET_DATA_TYPE (symbolP, T_NULL); @@ -462,7 +462,7 @@ obj_coff_ln (int ignore ATTRIBUTE_UNUSED) /* If there is no lineno symbol, treat a .ln directive as if it were a (no longer existing) .appline one. */ if (current_lineno_sym == NULL) - new_logical_line ((char *) NULL, l - 1); + new_logical_line (NULL, l - 1); else add_lineno (frag_now, frag_now_fix (), l); @@ -903,7 +903,7 @@ obj_coff_line (int ignore ATTRIBUTE_UNUSED) extern int listing; if (listing) - listing_source_line ((unsigned int) this_base); + listing_source_line (this_base); } #endif } @@ -982,8 +982,8 @@ obj_coff_type (int ignore ATTRIBUTE_UNUSED) S_SET_DATA_TYPE (def_symbol_in_progress, get_absolute_expression ()); - if (ISFCN (S_GET_DATA_TYPE (def_symbol_in_progress)) && - S_GET_STORAGE_CLASS (def_symbol_in_progress) != C_TPDEF) + if (ISFCN (S_GET_DATA_TYPE (def_symbol_in_progress)) + && S_GET_STORAGE_CLASS (def_symbol_in_progress) != C_TPDEF) SF_SET_FUNCTION (def_symbol_in_progress); demand_empty_rest_of_line (); @@ -1011,7 +1011,7 @@ obj_coff_val (int ignore ATTRIBUTE_UNUSED) { /* If the .val is != from the .def (e.g. statics). */ symbol_set_frag (def_symbol_in_progress, frag_now); - S_SET_VALUE (def_symbol_in_progress, (valueT) frag_now_fix ()); + S_SET_VALUE (def_symbol_in_progress, frag_now_fix ()); } else if (! streq (S_GET_NAME (def_symbol_in_progress), symbol_name)) { @@ -1325,7 +1325,7 @@ coff_frob_symbol (symbolS *symp, int *punt) if (S_GET_STORAGE_CLASS (symp) == C_BLOCK) { if (streq (S_GET_NAME (symp), ".bb")) - stack_push (block_stack, (char *) &symp); + stack_push (block_stack, &symp); else { symbolS *begin; @@ -1356,8 +1356,8 @@ coff_frob_symbol (symbolS *symp, int *punt) as_fatal (_("C_EFCN symbol for %s out of scope"), S_GET_NAME (symp)); SA_SET_SYM_FSIZE (last_functionP, - (long) (S_GET_VALUE (symp) - - S_GET_VALUE (last_functionP))); + (S_GET_VALUE (symp) + - S_GET_VALUE (last_functionP))); } } @@ -1392,7 +1392,7 @@ coff_frob_symbol (symbolS *symp, int *punt) *punt = 1; #endif - if (set_end != (symbolS *) NULL + if (set_end != NULL && ! *punt && ((symbol_get_bfdsym (symp)->flags & BSF_NOT_AT_END) != 0 || (S_IS_DEFINED (symp) @@ -1669,7 +1669,7 @@ obj_coff_section (int ignore ATTRIBUTE_UNUSED) } } - sec = subseg_new (name, (subsegT) exp); + sec = subseg_new (name, exp); if (is_bss) seg_info (sec)->bss = 1; @@ -1812,8 +1812,8 @@ coff_frob_section (segT sec) /* Store the values. */ p = fragp->fr_literal; - bfd_h_put_16 (stdoutput, n_entries, (bfd_byte *) p + 6); - bfd_h_put_32 (stdoutput, size, (bfd_byte *) p + 8); + bfd_h_put_16 (stdoutput, n_entries, p + 6); + bfd_h_put_32 (stdoutput, size, p + 8); } void @@ -1827,7 +1827,7 @@ obj_coff_init_stab_section (segT stab ATTRIBUTE_UNUSED, segT stabstr) p = frag_more (12); /* Zero it out. */ memset (p, 0, 12); - file = as_where ((unsigned int *) NULL); + file = as_where (NULL); stroff = get_stab_string_offset (file, stabstr); know (stroff == 1); md_number_to_chars (p, stroff, 4); @@ -1839,7 +1839,7 @@ const char * s_get_name (symbolS *); const char * s_get_name (symbolS *s) { - return ((s == NULL) ? "(NULL)" : S_GET_NAME (s)); + return s == NULL ? "(NULL)" : S_GET_NAME (s); } void symbol_dump (void); diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index 368594d..03b6c24 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -205,7 +205,7 @@ elf_file_symbol (const char *s) if (name_length > strlen (S_GET_NAME (sym))) { obstack_grow (¬es, s, name_length + 1); - S_SET_NAME (sym, (const char *) obstack_finish (¬es)); + S_SET_NAME (sym, obstack_finish (¬es)); } else strcpy ((char *) S_GET_NAME (sym), s); @@ -481,7 +481,7 @@ match_section (const asection *sec, const struct elf_section_match *match) static bool get_section_by_match (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf) { - struct elf_section_match *match = (struct elf_section_match *) inf; + struct elf_section_match *match = inf; const char *gname = match->group_name; const char *group_name = elf_group_name (sec); @@ -614,7 +614,7 @@ change_section (const char *name, old_sec = group_section_find (match_p, name, &group_idx); else old_sec = bfd_get_section_by_name_if (stdoutput, name, get_section_by_match, - (void *) match_p); + match_p); if (old_sec) { sec = old_sec; @@ -942,13 +942,12 @@ obj_elf_parse_section_letters (char *str, size_t len, if (ISDIGIT (*str)) { char * end; - struct elf_backend_data *bed; + const struct elf_backend_data *bed; bfd_vma numeric_flags = strtoul (str, &end, 0); attr |= numeric_flags; - bed = (struct elf_backend_data *) - get_elf_backend_data (stdoutput); + bed = get_elf_backend_data (stdoutput); if (bed->elf_osabi == ELFOSABI_NONE || bed->elf_osabi == ELFOSABI_STANDALONE @@ -1229,7 +1228,7 @@ obj_elf_section (int push) if (push && ISDIGIT (*input_line_pointer)) { /* .pushsection has an optional subsection. */ - new_subsection = (subsegT) get_absolute_expression (); + new_subsection = get_absolute_expression (); SKIP_WHITESPACE (); @@ -1460,7 +1459,7 @@ obj_elf_section (int push) char *t = input_line_pointer; match.sh_info = strtoul (input_line_pointer, &input_line_pointer, 0); - if (match.sh_info == (unsigned int) -1) + if (match.sh_info == -1u) { as_warn (_("unsupported mbind section info: %s"), t); match.sh_info = 0; @@ -1497,8 +1496,7 @@ obj_elf_section (int push) errno = 0; id = strtoul (input_line_pointer, &input_line_pointer, 0); - overflow = (id == (unsigned long) -1 - && errno == ERANGE); + overflow = id == -1ul && errno == ERANGE; } else { @@ -1507,7 +1505,7 @@ obj_elf_section (int push) (const char **) &input_line_pointer, 0); overflow = id == ~(bfd_vma) 0; } - if (overflow || id > (unsigned int) -1) + if (overflow || id > -1u) { char *linefeed, saved_char = 0; if ((linefeed = strchr (t, '\n')) != NULL) @@ -1614,7 +1612,7 @@ obj_elf_bss (int i ATTRIBUTE_UNUSED) obj_elf_section_change_hook (); temp = get_absolute_expression (); - subseg_set (bss_section, (subsegT) temp); + subseg_set (bss_section, temp); demand_empty_rest_of_line (); #ifdef md_elf_section_change_hook @@ -1688,7 +1686,7 @@ obj_elf_subsection (int ignore ATTRIBUTE_UNUSED) obj_elf_section_change_hook (); temp = get_absolute_expression (); - subseg_set (now_seg, (subsegT) temp); + subseg_set (now_seg, temp); demand_empty_rest_of_line (); #ifdef md_elf_section_change_hook @@ -2691,7 +2689,7 @@ set_additional_section_info (bfd *abfd, if (!strcmp ("str", sec->name + strlen (sec->name) - 3)) return; - name = concat (sec->name, "str", NULL); + name = concat (sec->name, "str", (const char *) NULL); strsec = bfd_get_section_by_name (abfd, name); if (strsec) strsz = bfd_section_size (strsec); diff --git a/gas/config/obj-evax.c b/gas/config/obj-evax.c index c5317e8..9fbde27 100644 --- a/gas/config/obj-evax.c +++ b/gas/config/obj-evax.c @@ -107,8 +107,7 @@ evax_frob_symbol (symbolS *sym, int *punt) else if ((symbol->flags & BSF_GLOBAL) && (symbol->flags & BSF_FUNCTION)) { - struct evax_private_udata_struct *udata - = (struct evax_private_udata_struct *)symbol->udata.p; + struct evax_private_udata_struct *udata = symbol->udata.p; /* Fix up equates of function definitions. */ while (udata->enbsym == NULL) diff --git a/gas/config/obj-macho.c b/gas/config/obj-macho.c index d0cd3af..01e76c5 100644 --- a/gas/config/obj-macho.c +++ b/gas/config/obj-macho.c @@ -531,8 +531,8 @@ obj_mach_o_zerofill (int ignore ATTRIBUTE_UNUSED) SKIP_WHITESPACE (); if (*input_line_pointer == ',') { - align = (unsigned int) parse_align (0); - if (align == (unsigned int) -1) + align = parse_align (0); + if (align == -1u) { as_warn (_("align value not recognized, using size")); align = size; @@ -552,7 +552,7 @@ obj_mach_o_zerofill (int ignore ATTRIBUTE_UNUSED) new_seg = obj_mach_o_make_or_get_sect (segname, sectname, specified_mask, BFD_MACH_O_S_ZEROFILL, BFD_MACH_O_S_ATTR_NONE, - align, (offsetT) 0 /*stub size*/); + align, 0 /*stub size*/); if (new_seg == NULL) return; @@ -960,7 +960,7 @@ obj_mach_o_fileprop (int prop) if (prop < 0 || prop >= OBJ_MACH_O_FILE_PROP_MAX) as_fatal (_("internal error: bad file property ID %d"), prop); - switch ((obj_mach_o_file_properties) prop) + switch (prop) { case OBJ_MACH_O_FILE_PROP_SUBSECTS_VIA_SYMS: obj_mach_o_subsections_by_symbols = 1; @@ -1023,7 +1023,7 @@ obj_mach_o_set_symbol_qualifier (symbolS *sym, int type) if (sec != NULL) sectype = sec->flags & BFD_MACH_O_SECTION_TYPE_MASK; - switch ((obj_mach_o_symbol_type) type) + switch (type) { case OBJ_MACH_O_SYM_LOCAL: /* This is an extension over the system tools. */ @@ -1613,7 +1613,7 @@ obj_mach_o_check_before_writing (bfd *abfd ATTRIBUTE_UNUSED, void obj_mach_o_pre_output_hook (void) { - bfd_map_over_sections (stdoutput, obj_mach_o_check_before_writing, (char *) 0); + bfd_map_over_sections (stdoutput, obj_mach_o_check_before_writing, NULL); } /* Here we count up frags in each subsection (where a sub-section is defined @@ -1662,7 +1662,7 @@ obj_mach_o_set_subsections (bfd *abfd ATTRIBUTE_UNUSED, void obj_mach_o_pre_relax_hook (void) { - bfd_map_over_sections (stdoutput, obj_mach_o_set_subsections, (char *) 0); + bfd_map_over_sections (stdoutput, obj_mach_o_set_subsections, NULL); } /* Zerofill and GB Zerofill sections must be sorted to follow all other @@ -1698,7 +1698,7 @@ obj_mach_o_set_section_vma (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *v_p { bfd_mach_o_section *ms = bfd_mach_o_get_mach_o_section (sec); unsigned bfd_align = bfd_section_alignment (sec); - obj_mach_o_set_vma_data *p = (struct obj_mach_o_set_vma_data *)v_p; + obj_mach_o_set_vma_data *p = v_p; unsigned sectype = (ms->flags & BFD_MACH_O_SECTION_TYPE_MASK); unsigned zf; @@ -1741,11 +1741,11 @@ void obj_mach_o_post_relax_hook (void) memset (&d, 0, sizeof (d)); - bfd_map_over_sections (stdoutput, obj_mach_o_set_section_vma, (char *) &d); + bfd_map_over_sections (stdoutput, obj_mach_o_set_section_vma, &d); if ((d.vma_pass = d.zerofill_seen) != 0) - bfd_map_over_sections (stdoutput, obj_mach_o_set_section_vma, (char *) &d); + bfd_map_over_sections (stdoutput, obj_mach_o_set_section_vma, &d); if ((d.vma_pass = d.gb_zerofill_seen) != 0) - bfd_map_over_sections (stdoutput, obj_mach_o_set_section_vma, (char *) &d); + bfd_map_over_sections (stdoutput, obj_mach_o_set_section_vma, &d); } static void @@ -1777,8 +1777,7 @@ obj_mach_o_set_indirect_symbols (bfd *abfd, asection *sec, obj_mach_o_indirect_sym *isym; obj_mach_o_indirect_sym *list = NULL; obj_mach_o_indirect_sym *list_tail = NULL; - unsigned long eltsiz = - bfd_mach_o_section_get_entry_size (abfd, ms); + unsigned long eltsiz = bfd_mach_o_section_get_entry_size (abfd, ms); for (isym = indirect_syms; isym != NULL; isym = isym->next) { @@ -1801,7 +1800,7 @@ obj_mach_o_set_indirect_symbols (bfd *abfd, asection *sec, entry size, we're dead ... */ gas_assert (eltsiz != 0); - ncalc = (unsigned int) (sect_size / eltsiz); + ncalc = sect_size / eltsiz; if (nactual != ncalc) as_bad (_("the number of .indirect_symbols defined in section %s" " does not match the number expected (%d defined, %d" @@ -1875,7 +1874,7 @@ obj_mach_o_set_indirect_symbols (bfd *abfd, asection *sec, void obj_mach_o_frob_file_after_relocs (void) { - bfd_map_over_sections (stdoutput, obj_mach_o_set_indirect_symbols, (char *) 0); + bfd_map_over_sections (stdoutput, obj_mach_o_set_indirect_symbols, NULL); } /* Reverse relocations order to make ld happy. */ diff --git a/gas/config/obj-som.c b/gas/config/obj-som.c index 0d8108f..7cfc9cb 100644 --- a/gas/config/obj-som.c +++ b/gas/config/obj-som.c @@ -246,7 +246,7 @@ obj_som_init_stab_section (segT stab, segT stabstr) the call to get_stab_string_offset. */ p = frag_more (12); memset (p, 0, 12); - file = as_where ((unsigned int *) NULL); + file = as_where (NULL); stroff = get_stab_string_offset (file, stabstr); know (stroff == 1); md_number_to_chars (p, stroff, 4); @@ -284,8 +284,8 @@ adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED) p = seg_info (sec)->stabu.p; gas_assert (p != 0); - bfd_h_put_16 (abfd, (bfd_vma) nsyms, (bfd_byte *) p + 6); - bfd_h_put_32 (abfd, (bfd_vma) strsz, (bfd_byte *) p + 8); + bfd_h_put_16 (abfd, nsyms, p + 6); + bfd_h_put_32 (abfd, strsz, p + 8); } /* Called late in the assembly phase to adjust the special @@ -294,7 +294,7 @@ adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED) void som_frob_file (void) { - bfd_map_over_sections (stdoutput, adjust_stab_sections, (void *) 0); + bfd_map_over_sections (stdoutput, adjust_stab_sections, NULL); } static void diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 13649e8..3dfb077 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -5622,7 +5622,7 @@ static const char *aarch64_apply_style { int res; char *ptr; - struct obstack *stack = (struct obstack *) styler->state; + struct obstack *stack = styler->state; va_list ap; /* Calculate the required space. */ @@ -5632,7 +5632,7 @@ static const char *aarch64_apply_style gas_assert (res >= 0); /* Allocate space on the obstack and format the result. */ - ptr = (char *) obstack_alloc (stack, res + 1); + ptr = obstack_alloc (stack, res + 1); res = vsnprintf (ptr, (res + 1), fmt, args); gas_assert (res >= 0); @@ -5651,7 +5651,7 @@ print_operands (char *buf, const aarch64_opcode *opcode, obstack_init (&content); styler.apply_style = aarch64_apply_style; - styler.state = (void *) &content; + styler.state = &content; for (i = 0; i < AARCH64_MAX_OPND_NUM; ++i) { @@ -8662,7 +8662,7 @@ md_assemble (char *str) if (last_label_seen != NULL) { symbol_set_frag (last_label_seen, frag_now); - S_SET_VALUE (last_label_seen, (valueT) frag_now_fix ()); + S_SET_VALUE (last_label_seen, frag_now_fix ()); S_SET_SEGMENT (last_label_seen, now_seg); } @@ -10123,7 +10123,7 @@ cons_fix_new_aarch64 (fragS * frag, int where, int size, expressionS * exp) } #endif - fix_new_exp (frag, where, (int) size, exp, pcrel, type); + fix_new_exp (frag, where, size, exp, pcrel, type); } /* Implement md_after_parse_args. This is the earliest time we need to decide @@ -10269,7 +10269,7 @@ aarch64_adjust_symtab (void) { #ifdef OBJ_ELF /* Remove any overlapping mapping symbols generated by alignment frags. */ - bfd_map_over_sections (stdoutput, check_mapping_symbols, (char *) 0); + bfd_map_over_sections (stdoutput, check_mapping_symbols, NULL); /* Now do generic ELF adjustments. */ elf_adjust_symtab (); #endif @@ -10797,6 +10797,8 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = { {"sme-b16b16", AARCH64_FEATURE (SME_B16B16), AARCH64_FEATURES (2, SVE_B16B16, SME2)}, {"pops", AARCH64_FEATURE (PoPS), AARCH64_NO_FEATURES}, + {"sve2p2", AARCH64_FEATURE (SVE2p2), AARCH64_FEATURE (SVE2)}, + {"sme2p2", AARCH64_FEATURE (SME2p2), AARCH64_FEATURE (SME2)}, {NULL, AARCH64_NO_FEATURES, AARCH64_NO_FEATURES}, }; @@ -10817,13 +10819,15 @@ static const struct aarch64_virtual_dependency_table aarch64_dependencies[] = { {AARCH64_FEATURE (SSVE_FP8DOT2), AARCH64_FEATURE (FP8DOT2_SVE)}, {AARCH64_FEATURE (SME_F16F16), AARCH64_FEATURE (SME_F16F16_F8F16)}, {AARCH64_FEATURE (SME_F8F16), AARCH64_FEATURE (SME_F16F16_F8F16)}, - {AARCH64_FEATURE (SVE2p1), AARCH64_FEATURES (3, SVE2p1_SME, SVE2p1_SME2, - SVE2p1_SME2p1)}, + {AARCH64_FEATURE (SVE), AARCH64_FEATURE (SVE_SME2p2)}, {AARCH64_FEATURE (SME), AARCH64_FEATURE (SVE2p1_SME)}, - {AARCH64_FEATURE (SME2), AARCH64_FEATURE (SVE2p1_SME2)}, {AARCH64_FEATURE (SVE2), AARCH64_FEATURE (SVE2_SME2)}, - {AARCH64_FEATURE (SME2), AARCH64_FEATURE (SVE2_SME2)}, + {AARCH64_FEATURE (SME2), AARCH64_FEATURES (2, SVE2_SME2, SVE2p1_SME2)}, + {AARCH64_FEATURE (SVE2p1), AARCH64_FEATURES (3, SVE2p1_SME, SVE2p1_SME2, + SVE2p1_SME2p1)}, {AARCH64_FEATURE (SME2p1), AARCH64_FEATURE (SVE2p1_SME2p1)}, + {AARCH64_FEATURE (SVE2p2), AARCH64_FEATURE (SVE2p2_SME2p2)}, + {AARCH64_FEATURE (SME2p2), AARCH64_FEATURES (2, SVE_SME2p2, SVE2p2_SME2p2)}, }; static aarch64_feature_set diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c index f9ca351..7c4cffb 100644 --- a/gas/config/tc-alpha.c +++ b/gas/config/tc-alpha.c @@ -170,33 +170,13 @@ struct alpha_macro #define note_fpreg(R) (alpha_fprmask |= (1 << (R))) /* Predicates for 16- and 32-bit ranges */ -/* XXX: The non-shift version appears to trigger a compiler bug when - cross-assembling from x86 w/ gcc 2.7.2. */ - -#if 1 -#define range_signed_16(x) \ - (((offsetT) (x) >> 15) == 0 || ((offsetT) (x) >> 15) == -1) -#define range_signed_32(x) \ - (((offsetT) (x) >> 31) == 0 || ((offsetT) (x) >> 31) == -1) -#else -#define range_signed_16(x) ((offsetT) (x) >= -(offsetT) 0x8000 && \ - (offsetT) (x) <= (offsetT) 0x7FFF) -#define range_signed_32(x) ((offsetT) (x) >= -(offsetT) 0x80000000 && \ - (offsetT) (x) <= (offsetT) 0x7FFFFFFF) -#endif +#define range_signed_16(x) ((valueT) (x) + 0x8000 <= 0xFFFF) +#define range_signed_32(x) ((valueT) (x) + 0x80000000 <= 0xFFFFFFFF) /* Macros for sign extending from 16- and 32-bits. */ -/* XXX: The cast macros will work on all the systems that I care about, - but really a predicate should be found to use the non-cast forms. */ - -#if 1 -#define sign_extend_16(x) ((short) (x)) -#define sign_extend_32(x) ((int) (x)) -#else -#define sign_extend_16(x) ((offsetT) (((x) & 0xFFFF) ^ 0x8000) - 0x8000) -#define sign_extend_32(x) ((offsetT) (((x) & 0xFFFFFFFF) \ - ^ 0x80000000) - 0x80000000) -#endif +#define sign_extend_16(x) ((((valueT) (x) & 0xFFFF) ^ 0x8000) - 0x8000) +#define sign_extend_32(x) ((((valueT) (x) & 0xFFFFFFFF) ^ 0x80000000) \ + - 0x80000000) /* Macros to build tokens. */ @@ -442,7 +422,7 @@ static int alpha_flag_show_after_trunc = 0; /* -H */ #define ALPHA_RELOC_TABLE(op) \ (&alpha_reloc_op[ ((!USER_RELOC_P (op)) \ ? (abort (), 0) \ - : (int) (op) - (int) O_literal) ]) + : (op) - O_literal) ]) #define DEF(NAME, RELOC, REQ, ALLOW) \ { #NAME, sizeof(#NAME)-1, O_##NAME, RELOC, REQ, ALLOW} @@ -638,7 +618,7 @@ alpha_adjust_relocs (bfd *abfd ATTRIBUTE_UNUSED, for (fixp = seginfo->fix_root; fixp; fixp = next) { next = fixp->fx_next; - fixp->fx_next = (fixS *) 0; + fixp->fx_next = NULL; switch (fixp->fx_r_type) { @@ -736,7 +716,7 @@ alpha_adjust_relocs (bfd *abfd ATTRIBUTE_UNUSED, && ! fixp->tc_fix_data.info->multi_section_p) { for (slave = fixp->tc_fix_data.info->slaves; - slave != (fixS *) 0; + slave != NULL; slave = slave->tc_fix_data.next_reloc) { slave->fx_next = fixp->fx_next; @@ -1719,7 +1699,7 @@ alpha_align (int n, if (label != NULL && S_GET_SEGMENT (label) == now_seg) { symbol_set_frag (label, frag_now); - S_SET_VALUE (label, (valueT) frag_now_fix ()); + S_SET_VALUE (label, frag_now_fix ()); } record_alignment (now_seg, n); @@ -1738,7 +1718,7 @@ emit_insn (struct alpha_insn *insn) /* Take care of alignment duties. */ if (alpha_auto_align_on && alpha_current_align < 2) - alpha_align (2, (char *) NULL, alpha_insn_label, 0); + alpha_align (2, NULL, alpha_insn_label, 0); if (alpha_current_align > 2) alpha_current_align = 2; alpha_insn_label = NULL; @@ -1754,7 +1734,7 @@ emit_insn (struct alpha_insn *insn) /* Apply the fixups in order. */ for (i = 0; i < insn->nfixups; ++i) { - const struct alpha_operand *operand = (const struct alpha_operand *) 0; + const struct alpha_operand *operand = NULL; struct alpha_fixup *fixup = &insn->fixups[i]; struct alpha_reloc_tag *info = NULL; int size, pcrel; @@ -1777,8 +1757,7 @@ emit_insn (struct alpha_insn *insn) else { reloc_howto_type *reloc_howto = - bfd_reloc_type_lookup (stdoutput, - (bfd_reloc_code_real_type) fixup->reloc); + bfd_reloc_type_lookup (stdoutput, fixup->reloc); gas_assert (reloc_howto); size = bfd_get_reloc_size (reloc_howto); @@ -1800,7 +1779,7 @@ emit_insn (struct alpha_insn *insn) } fixP = fix_new_exp (frag_now, f - frag_now->fr_literal, size, - &fixup->exp, pcrel, (bfd_reloc_code_real_type) fixup->reloc); + &fixup->exp, pcrel, fixup->reloc); /* Turn off complaints that the addend is too large for some fixups, and copy in the sequence number for the explicit relocations. */ @@ -2029,7 +2008,7 @@ assemble_insn (const struct alpha_opcode *opcode, for (argidx = opcode->operands; *argidx; ++argidx) { const struct alpha_operand *operand = &alpha_operands[*argidx]; - const expressionS *t = (const expressionS *) 0; + const expressionS *t = NULL; if (operand->flags & AXP_OPERAND_FAKE) { @@ -2138,8 +2117,7 @@ assemble_insn (const struct alpha_opcode *opcode, else if (reloc < BFD_RELOC_UNUSED && reloc > 0) { reloc_howto_type *reloc_howto - = bfd_reloc_type_lookup (stdoutput, - (bfd_reloc_code_real_type) reloc); + = bfd_reloc_type_lookup (stdoutput, reloc); if (reloc_operand == NULL || reloc_howto->bitsize != reloc_operand->bits) { @@ -2182,7 +2160,7 @@ emit_ir_load (const expressionS *tok, basereg = tok[2].X_add_number; lituse = load_expression (tok[0].X_add_number, &tok[1], - &basereg, &newtok[1], (const char *) opname); + &basereg, &newtok[1], opname); if (basereg == alpha_gp_register && (symlen > 4 && strcmp (&symname [symlen - 4], "..lk") == 0)) @@ -2191,7 +2169,7 @@ emit_ir_load (const expressionS *tok, newtok[0] = tok[0]; set_tok_preg (newtok[2], basereg); - assemble_tokens_to_insn ((const char *) opname, newtok, 3, &insn); + assemble_tokens_to_insn (opname, newtok, 3, &insn); if (lituse) { @@ -2229,7 +2207,7 @@ emit_loadstore (const expressionS *tok, as_bad (_("macro requires $at register while noat in effect")); lituse = load_expression (AXP_REG_AT, &tok[1], - &basereg, &newtok[1], (const char *) opname); + &basereg, &newtok[1], opname); } else { @@ -2240,7 +2218,7 @@ emit_loadstore (const expressionS *tok, newtok[0] = tok[0]; set_tok_preg (newtok[2], basereg); - assemble_tokens_to_insn ((const char *) opname, newtok, 3, &insn); + assemble_tokens_to_insn (opname, newtok, 3, &insn); if (lituse) { @@ -2262,7 +2240,7 @@ emit_ldXu (const expressionS *tok, const void * vlgsize) { if (alpha_target & AXP_OPCODE_BWX) - emit_ir_load (tok, ntok, ldXu_op[(long) vlgsize]); + emit_ir_load (tok, ntok, ldXu_op[(intptr_t) vlgsize]); else { expressionS newtok[3]; @@ -2302,7 +2280,7 @@ emit_ldXu (const expressionS *tok, /* Emit "extXl targ, $at, targ". */ set_tok_reg (newtok[1], basereg); newtok[2] = newtok[0]; - assemble_tokens_to_insn (extXl_op[(long) vlgsize], newtok, 3, &insn); + assemble_tokens_to_insn (extXl_op[(intptr_t) vlgsize], newtok, 3, &insn); if (lituse) { @@ -2325,7 +2303,7 @@ emit_ldX (const expressionS *tok, const void * vlgsize) { emit_ldXu (tok, ntok, vlgsize); - assemble_tokens (sextX_op[(long) vlgsize], tok, 1, 1); + assemble_tokens (sextX_op[(intptr_t) vlgsize], tok, 1, 1); } /* Load an integral value from an unaligned address as an unsigned @@ -2336,7 +2314,7 @@ emit_uldXu (const expressionS *tok, int ntok, const void * vlgsize) { - long lgsize = (long) vlgsize; + int lgsize = (intptr_t) vlgsize; expressionS newtok[3]; if (alpha_noat_on) @@ -2386,7 +2364,7 @@ emit_uldX (const expressionS *tok, const void * vlgsize) { emit_uldXu (tok, ntok, vlgsize); - assemble_tokens (sextX_op[(long) vlgsize], tok, 1, 1); + assemble_tokens (sextX_op[(intptr_t) vlgsize], tok, 1, 1); } /* Implement the ldil macro. */ @@ -2411,7 +2389,7 @@ emit_stX (const expressionS *tok, int ntok, const void * vlgsize) { - int lgsize = (int) (long) vlgsize; + int lgsize = (intptr_t) vlgsize; if (alpha_target & AXP_OPCODE_BWX) emit_loadstore (tok, ntok, stX_op[lgsize]); @@ -2513,7 +2491,7 @@ emit_ustX (const expressionS *tok, int ntok, const void * vlgsize) { - int lgsize = (int) (long) vlgsize; + int lgsize = (intptr_t) vlgsize; expressionS newtok[3]; /* Emit "lda $at, exp". */ @@ -2584,7 +2562,7 @@ emit_sextX (const expressionS *tok, int ntok, const void * vlgsize) { - long lgsize = (long) vlgsize; + int lgsize = (intptr_t) vlgsize; if (alpha_target & AXP_OPCODE_BWX) assemble_tokens (sextX_op[lgsize], tok, ntok, 0); @@ -2686,7 +2664,7 @@ emit_division (const expressionS *tok, } } - sym = symbol_find_or_make ((const char *) symname); + sym = symbol_find_or_make (symname); set_tok_reg (newtok[0], AXP_REG_AT); set_tok_sym (newtok[1], sym, 0); @@ -2739,7 +2717,7 @@ emit_division (const expressionS *tok, else rr = regno (tok[2].X_add_number); - sym = symbol_find_or_make ((const char *) symname); + sym = symbol_find_or_make (symname); /* Move the operands into the right place. */ if (yr == AXP_REG_T10 && xr == AXP_REG_T11) @@ -2820,7 +2798,7 @@ emit_jsrjmp (const expressionS *tok, int ntok, const void * vopname) { - const char *opname = (const char *) vopname; + const char *opname = vopname; struct alpha_insn insn; expressionS newtok[3]; int r, tokidx = 0; @@ -2916,7 +2894,7 @@ emit_retjcr (const expressionS *tok, int ntok, const void * vopname) { - const char *opname = (const char *) vopname; + const char *opname = vopname; expressionS newtok[3]; int r, tokidx = 0; @@ -3389,11 +3367,11 @@ add_to_link_pool (symbolS *sym, offsetT addend) if (seginfo->frchainP) for (fixp = seginfo->frchainP->fix_root; - fixp != (fixS *) NULL; + fixp != NULL; fixp = fixp->fx_next) { if (fixp->fx_addsy == sym - && fixp->fx_offset == (valueT)addend + && fixp->fx_offset == (valueT) addend && fixp->tc_fix_data.info && fixp->tc_fix_data.info->sym && symbol_symbolS (fixp->tc_fix_data.info->sym) @@ -3416,8 +3394,8 @@ add_to_link_pool (symbolS *sym, offsetT addend) expsym = make_expr_symbol (&e); /* Create a fixup for the entry. */ - fixp = fix_new - (frag_now, p - frag_now->fr_literal, 8, sym, addend, 0, BFD_RELOC_64); + fixp = fix_new (frag_now, p - frag_now->fr_literal, 8, + sym, addend, 0, BFD_RELOC_64); fixp->tc_fix_data.info = get_alpha_reloc_tag (next_sequence_num--); fixp->tc_fix_data.info->sym = expsym; @@ -3552,7 +3530,7 @@ s_alpha_comm (int ignore ATTRIBUTE_UNUSED) symbolS *sec_symbol; segT current_seg = now_seg; subsegT current_subseg = now_subseg; - int cur_size; + offsetT cur_size; input_line_pointer++; SKIP_WHITESPACE (); @@ -3567,13 +3545,12 @@ s_alpha_comm (int ignore ATTRIBUTE_UNUSED) /* Reuse stab_string_size to store the size of the section. */ cur_size = seg_info (sec)->stabu.stab_string_size; - if ((int) size > cur_size) + if (size > cur_size) { - char *pfrag - = frag_var (rs_fill, 1, 1, (relax_substateT)0, NULL, - (valueT)size - (valueT)cur_size, NULL); + char *pfrag = frag_var (rs_fill, 1, 1, 0, NULL, + size - cur_size, NULL); *pfrag = 0; - seg_info (sec)->stabu.stab_string_size = (int)size; + seg_info (sec)->stabu.stab_string_size = size; } S_SET_SEGMENT (symbolP, sec); @@ -3598,8 +3575,7 @@ s_alpha_comm (int ignore ATTRIBUTE_UNUSED) record_alignment (bss_section, log_align); symbol_set_frag (symbolP, frag_now); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT)0, symbolP, - size, NULL); + pfrag = frag_var (rs_org, 1, 1, 0, symbolP, size, NULL); *pfrag = 0; S_SET_SEGMENT (symbolP, bss_section); @@ -4590,7 +4566,7 @@ s_alpha_pdesc (int ignore ATTRIBUTE_UNUSED) *(p + 3) = alpha_evax_proc->ra_save; break; case PDSC_S_K_KIND_FP_STACK: - md_number_to_chars (p + 2, (valueT) alpha_evax_proc->rsa_offset, 2); + md_number_to_chars (p + 2, alpha_evax_proc->rsa_offset, 2); break; default: /* impossible */ break; @@ -4600,7 +4576,7 @@ s_alpha_pdesc (int ignore ATTRIBUTE_UNUSED) *(p + 5) = alpha_evax_proc->type & 0x0f; /* Signature offset. */ - md_number_to_chars (p + 6, (valueT) 0, 2); + md_number_to_chars (p + 6, 0, 2); fix_new_exp (frag_now, p - frag_now->fr_literal + 8, 8, &exp, 0, BFD_RELOC_64); @@ -4610,8 +4586,8 @@ s_alpha_pdesc (int ignore ATTRIBUTE_UNUSED) /* pdesc+16: Size. */ p = frag_more (6); - md_number_to_chars (p, (valueT) alpha_evax_proc->framesize, 4); - md_number_to_chars (p + 4, (valueT) 0, 2); + md_number_to_chars (p, alpha_evax_proc->framesize, 4); + md_number_to_chars (p + 4, 0, 2); /* Entry length. */ exp.X_op = O_subtract; @@ -4868,7 +4844,7 @@ s_alpha_gprel32 (int ignore ATTRIBUTE_UNUSED) #endif if (alpha_auto_align_on && alpha_current_align < 2) - alpha_align (2, (char *) NULL, alpha_insn_label, 0); + alpha_align (2, NULL, alpha_insn_label, 0); if (alpha_current_align > 2) alpha_current_align = 2; alpha_insn_label = NULL; @@ -4911,7 +4887,7 @@ s_alpha_float_cons (int type) } if (alpha_auto_align_on && alpha_current_align < log_size) - alpha_align (log_size, (char *) NULL, alpha_insn_label, 0); + alpha_align (log_size, NULL, alpha_insn_label, 0); if (alpha_current_align > log_size) alpha_current_align = log_size; alpha_insn_label = NULL; @@ -5096,7 +5072,7 @@ alpha_cons_align (int size) ++log_size; if (alpha_auto_align_on && alpha_current_align < log_size) - alpha_align (log_size, (char *) NULL, alpha_insn_label, 0); + alpha_align (log_size, NULL, alpha_insn_label, 0); if (alpha_current_align > log_size) alpha_current_align = log_size; alpha_insn_label = NULL; @@ -5509,7 +5485,7 @@ md_begin (void) #ifdef OBJ_ELF if (ECOFF_DEBUGGING) { - segT sec = subseg_new (".mdebug", (subsegT) 0); + segT sec = subseg_new (".mdebug", 0); bfd_set_section_flags (sec, SEC_HAS_CONTENTS | SEC_READONLY); bfd_set_section_alignment (sec, 3); } diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c index 30d6cb9..4c27c60 100644 --- a/gas/config/tc-arc.c +++ b/gas/config/tc-arc.c @@ -522,7 +522,7 @@ static unsigned cl_features = 0; #define ARC_RELOC_TABLE(op) \ (&arc_reloc_op[ ((!USER_RELOC_P (op)) \ ? (abort (), 0) \ - : (int) (op) - (int) O_gotoff) ]) + : (op) - O_gotoff) ]) #define DEF(NAME, RELOC, REQ) \ { #NAME, sizeof (#NAME)-1, O_##NAME, RELOC, REQ} @@ -778,7 +778,7 @@ arc_insert_opcode (const struct arc_opcode *opcode) static void arc_opcode_free (void *elt) { - string_tuple_t *tuple = (string_tuple_t *) elt; + string_tuple_t *tuple = elt; struct arc_opcode_hash_entry *entry = (void *) tuple->value; free (entry->opcode); free (entry); @@ -1444,7 +1444,7 @@ apply_fixups (struct arc_insn *insn, fragS *fragP, int fix) offset = insn->len; /* Some fixups are only used internally, thus no howto. */ - if ((int) fixup->reloc == 0) + if (fixup->reloc == 0) as_fatal (_("Unhandled reloc type")); if ((int) fixup->reloc < 0) @@ -1457,8 +1457,7 @@ apply_fixups (struct arc_insn *insn, fragS *fragP, int fix) else { reloc_howto_type *reloc_howto = - bfd_reloc_type_lookup (stdoutput, - (bfd_reloc_code_real_type) fixup->reloc); + bfd_reloc_type_lookup (stdoutput, fixup->reloc); gas_assert (reloc_howto); /* FIXME! the reloc size is wrong in the BFD file. @@ -2768,7 +2767,7 @@ md_pcrel_from_section (fixS *fixP, pr_debug ("pcrel_from_section, fx_offset = %d\n", (int) fixP->fx_offset); - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (!S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) { @@ -3660,7 +3659,7 @@ find_reloc (const char *name, if (!nflg) continue; found_flag = false; - unsigned * psflg = (unsigned *)r->flags; + const unsigned *psflg = r->flags; do { tmp = false; @@ -3918,7 +3917,7 @@ assemble_insn (const struct arc_opcode *opcode, for (argidx = opcode->operands; *argidx; ++argidx) { const struct arc_operand *operand = &arc_operands[*argidx]; - const expressionS *t = (const expressionS *) 0; + const expressionS *t = NULL; if (ARC_OPERAND_IS_FAKE (operand)) continue; @@ -4058,8 +4057,7 @@ assemble_insn (const struct arc_opcode *opcode, { /* sanity checks. */ reloc_howto_type *reloc_howto - = bfd_reloc_type_lookup (stdoutput, - (bfd_reloc_code_real_type) reloc); + = bfd_reloc_type_lookup (stdoutput, reloc); unsigned reloc_bitsize = reloc_howto->bitsize; if (reloc_howto->rightshift) reloc_bitsize -= reloc_howto->rightshift; @@ -4083,8 +4081,7 @@ assemble_insn (const struct arc_opcode *opcode, else { reloc_howto_type *reloc_howto = - bfd_reloc_type_lookup (stdoutput, - (bfd_reloc_code_real_type) fixup->reloc); + bfd_reloc_type_lookup (stdoutput, fixup->reloc); pcrel = reloc_howto->pc_relative; } fixup->pcrel = pcrel; @@ -4676,7 +4673,7 @@ arc_extinsn (int ignore ATTRIBUTE_UNUSED) as_warn ("%s", errmsg); /* Insert the extension instruction. */ - arc_insert_opcode ((const struct arc_opcode *) arc_ext_opcodes); + arc_insert_opcode (arc_ext_opcodes); create_extinst_section (&einsn); } @@ -4974,7 +4971,7 @@ arc_stralloc (char * s1, const char * s2) gas_assert (s2); len += strlen (s2) + 1; - p = (char *) xmalloc (len); + p = xmalloc (len); if (s1) { diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 13afe8d..5fabf71 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -3098,7 +3098,7 @@ find_real_start (symbolS * symbolP) if (S_IS_LOCAL (symbolP) || name[0] == '.') return symbolP; - real_start = concat (STUB_NAME, name, NULL); + real_start = concat (STUB_NAME, name, (const char *) NULL); new_target = symbol_find (real_start); free (real_start); @@ -3701,7 +3701,7 @@ symbol_locate (symbolS * symbolP, name_length = strlen (name) + 1; /* +1 for \0. */ obstack_grow (¬es, name, name_length); - preserved_copy_of_name = (char *) obstack_finish (¬es); + preserved_copy_of_name = obstack_finish (¬es); #ifdef tc_canonicalize_symbol_name preserved_copy_of_name = @@ -3844,9 +3844,8 @@ s_arm_elf_cons (int nbytes) emit_expr (&exp, (unsigned int) nbytes); else { - reloc_howto_type *howto = (reloc_howto_type *) - bfd_reloc_type_lookup (stdoutput, - (bfd_reloc_code_real_type) reloc); + reloc_howto_type *howto = bfd_reloc_type_lookup (stdoutput, + reloc); int size = bfd_get_reloc_size (howto); if (reloc == BFD_RELOC_ARM_PLT32) @@ -22218,8 +22217,8 @@ fix_new_arm (fragS * frag, break; default: - new_fix = (fixS *) fix_new (frag, where, size, make_expr_symbol (exp), 0, - pc_rel, (enum bfd_reloc_code_real) reloc); + new_fix = fix_new (frag, where, size, make_expr_symbol (exp), 0, + pc_rel, reloc); break; } @@ -26039,14 +26038,13 @@ static valueT md_chars_to_number (char * buf, int n) { valueT result = 0; - unsigned char * where = (unsigned char *) buf; if (target_big_endian) { while (n--) { result <<= 8; - result |= (*where++ & 255); + result |= (*buf++ & 255); } } else @@ -26054,7 +26052,7 @@ md_chars_to_number (char * buf, int n) while (n--) { result <<= 8; - result |= (where[n] & 255); + result |= (buf[n] & 255); } } @@ -29997,7 +29995,7 @@ arm_adjust_symtab (void) } /* Remove any overlapping mapping symbols generated by alignment frags. */ - bfd_map_over_sections (stdoutput, check_mapping_symbols, (char *) 0); + bfd_map_over_sections (stdoutput, check_mapping_symbols, NULL); /* Now do generic ELF adjustments. */ elf_adjust_symtab (); #endif diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c index 650b736..671df82 100644 --- a/gas/config/tc-avr.c +++ b/gas/config/tc-avr.c @@ -1423,10 +1423,10 @@ avr_operands (struct avr_opcodes_s *opcode, char **line) && AVR_SKIP_P (frag_now->tc_frag_data.prev_opcode)) as_warn (_("skipping two-word instruction")); - bfd_putl32 ((bfd_vma) bin, frag); + bfd_putl32 (bin, frag); } else - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); frag_now->tc_frag_data.prev_opcode = bin; *line = str; @@ -1440,7 +1440,7 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & (-1UL << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* If you define this macro, it should return the offset between the @@ -1452,7 +1452,7 @@ md_section_align (asection *seg, valueT addr) long md_pcrel_from_section (fixS *fixp, segT sec) { - if (fixp->fx_addsy != (symbolS *) NULL + if (fixp->fx_addsy != NULL && (!S_IS_DEFINED (fixp->fx_addsy) || (S_GET_SEGMENT (fixp->fx_addsy) != sec))) return 0; @@ -1519,7 +1519,7 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg) unsigned long insn; long value = *valP; - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; else if (fixP->fx_pcrel) @@ -1567,7 +1567,7 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg) fixP->fx_subsy = NULL; } /* We don't actually support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); /* For the DIFF relocs, write the value into the object file while still @@ -1588,10 +1588,10 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg) *where = value; break; case BFD_RELOC_AVR_DIFF16: - bfd_putl16 ((bfd_vma) value, where); + bfd_putl16 (value, where); break; case BFD_RELOC_AVR_DIFF32: - bfd_putl32 ((bfd_vma) value, where); + bfd_putl32 (value, where); break; case BFD_RELOC_AVR_CALL: break; @@ -1619,7 +1619,7 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg) as_bad_where (fixP->fx_file, fixP->fx_line, _("operand out of range: %ld"), value); value = (value << 3) & 0x3f8; - bfd_putl16 ((bfd_vma) (value | insn), where); + bfd_putl16 (value | insn, where); break; case BFD_RELOC_AVR_13_PCREL: @@ -1640,15 +1640,15 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg) } value &= 0xfff; - bfd_putl16 ((bfd_vma) (value | insn), where); + bfd_putl16 (value | insn, where); break; case BFD_RELOC_32: - bfd_putl32 ((bfd_vma) value, where); + bfd_putl32 (value, where); break; case BFD_RELOC_16: - bfd_putl16 ((bfd_vma) value, where); + bfd_putl16 (value, where); break; case BFD_RELOC_8: @@ -1659,14 +1659,14 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg) break; case BFD_RELOC_AVR_16_PM: - bfd_putl16 ((bfd_vma) (value >> 1), where); + bfd_putl16 (value >> 1, where); break; case BFD_RELOC_AVR_LDI: if (value > 255) as_bad_where (fixP->fx_file, fixP->fx_line, _("operand out of range: %ld"), value); - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value), where); + bfd_putl16 (insn | LDI_IMMEDIATE (value), where); break; case BFD_RELOC_AVR_LDS_STS_16: @@ -1675,78 +1675,78 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg) _("operand out of range: 0x%lx"), (unsigned long)value); insn |= ((value & 0xF) | ((value & 0x30) << 5) | ((value & 0x40) << 2)); - bfd_putl16 ((bfd_vma) insn, where); + bfd_putl16 (insn, where); break; case BFD_RELOC_AVR_6: if ((value > 63) || (value < 0)) as_bad_where (fixP->fx_file, fixP->fx_line, _("operand out of range: %ld"), value); - bfd_putl16 ((bfd_vma) insn | ((value & 7) | ((value & (3 << 3)) << 7) - | ((value & (1 << 5)) << 8)), where); + bfd_putl16 (insn | ((value & 7) | ((value & (3 << 3)) << 7) + | ((value & (1 << 5)) << 8)), where); break; case BFD_RELOC_AVR_6_ADIW: if ((value > 63) || (value < 0)) as_bad_where (fixP->fx_file, fixP->fx_line, _("operand out of range: %ld"), value); - bfd_putl16 ((bfd_vma) insn | (value & 0xf) | ((value & 0x30) << 2), where); + bfd_putl16 (insn | (value & 0xf) | ((value & 0x30) << 2), where); break; case BFD_RELOC_AVR_LO8_LDI: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value), where); + bfd_putl16 (insn | LDI_IMMEDIATE (value), where); break; case BFD_RELOC_AVR_HI8_LDI: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 8), where); + bfd_putl16 (insn | LDI_IMMEDIATE (value >> 8), where); break; case BFD_RELOC_AVR_MS8_LDI: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 24), where); + bfd_putl16 (insn | LDI_IMMEDIATE (value >> 24), where); break; case BFD_RELOC_AVR_HH8_LDI: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 16), where); + bfd_putl16 (insn | LDI_IMMEDIATE (value >> 16), where); break; case BFD_RELOC_AVR_LO8_LDI_NEG: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value), where); + bfd_putl16 (insn | LDI_IMMEDIATE (-value), where); break; case BFD_RELOC_AVR_HI8_LDI_NEG: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 8), where); + bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 8), where); break; case BFD_RELOC_AVR_MS8_LDI_NEG: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 24), where); + bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 24), where); break; case BFD_RELOC_AVR_HH8_LDI_NEG: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 16), where); + bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 16), where); break; case BFD_RELOC_AVR_LO8_LDI_PM: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 1), where); + bfd_putl16 (insn | LDI_IMMEDIATE (value >> 1), where); break; case BFD_RELOC_AVR_HI8_LDI_PM: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 9), where); + bfd_putl16 (insn | LDI_IMMEDIATE (value >> 9), where); break; case BFD_RELOC_AVR_HH8_LDI_PM: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (value >> 17), where); + bfd_putl16 (insn | LDI_IMMEDIATE (value >> 17), where); break; case BFD_RELOC_AVR_LO8_LDI_PM_NEG: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 1), where); + bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 1), where); break; case BFD_RELOC_AVR_HI8_LDI_PM_NEG: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 9), where); + bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 9), where); break; case BFD_RELOC_AVR_HH8_LDI_PM_NEG: - bfd_putl16 ((bfd_vma) insn | LDI_IMMEDIATE (-value >> 17), where); + bfd_putl16 (insn | LDI_IMMEDIATE (-value >> 17), where); break; case BFD_RELOC_AVR_CALL: @@ -1759,8 +1759,8 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg) _("odd address operand: %ld"), value); value >>= 1; x |= ((value & 0x10000) | ((value << 3) & 0x1f00000)) >> 16; - bfd_putl16 ((bfd_vma) x, where); - bfd_putl16 ((bfd_vma) (value & 0xffff), where + 2); + bfd_putl16 (x, where); + bfd_putl16 (value & 0xffff, where + 2); } break; @@ -1785,14 +1785,14 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg) if (value > 63) as_bad_where (fixP->fx_file, fixP->fx_line, _("operand out of range: %ld"), value); - bfd_putl16 ((bfd_vma) insn | ((value & 0x30) << 5) | (value & 0x0f), where); + bfd_putl16 (insn | ((value & 0x30) << 5) | (value & 0x0f), where); break; case BFD_RELOC_AVR_PORT5: if (value > 31) as_bad_where (fixP->fx_file, fixP->fx_line, _("operand out of range: %ld"), value); - bfd_putl16 ((bfd_vma) insn | ((value & 0x1f) << 3), where); + bfd_putl16 (insn | ((value & 0x1f) << 3), where); break; } } @@ -1856,7 +1856,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, reloc->howto = bfd_reloc_type_lookup (stdoutput, code); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixp->fx_file, fixp->fx_line, _("reloc %d not supported by object file format"), @@ -2190,8 +2190,7 @@ avr_output_property_record (char * const frag_base, char *frag_ptr, fix->fx_line = 0; frag_ptr += 4; - md_number_to_chars (frag_ptr, (bfd_byte) record->type, 1); - frag_ptr += 1; + *frag_ptr++ = record->type & 0xff; /* Write out the rest of the data. */ switch (record->type) @@ -2546,7 +2545,7 @@ avr_emit_insn (const char *insn, int reg, char **pwhere) || 0 == strcmp ("mov", op->name) || 0 == strcmp ("ldi", op->name)); - bfd_putl16 ((bfd_vma) bin, *pwhere); + bfd_putl16 (bin, *pwhere); (*pwhere) += 2 * op->insn_size; } diff --git a/gas/config/tc-bfin.c b/gas/config/tc-bfin.c index 5b1db29..0a635f4 100644 --- a/gas/config/tc-bfin.c +++ b/gas/config/tc-bfin.c @@ -52,7 +52,7 @@ FILE *errorf; #endif static flagword bfin_flags = DEFAULT_FLAGS | DEFAULT_FDPIC; -static const char *bfin_pic_flag = DEFAULT_FDPIC ? "-mfdpic" : (const char *)0; +static const char *bfin_pic_flag = DEFAULT_FDPIC ? "-mfdpic" : NULL; /* Blackfin specific function to handle FD-PIC pointer initializations. */ @@ -614,7 +614,7 @@ md_operand (expressionS * expressionP) symbolS * md_undefined_symbol (char *name ATTRIBUTE_UNUSED) { - return (symbolS *) 0; + return NULL; } int @@ -806,7 +806,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) reloc->addend = fixp->fx_offset; reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixp->fx_file, fixp->fx_line, /* xgettext:c-format. */ @@ -824,7 +824,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) long md_pcrel_from_section (fixS *fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (!S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) { @@ -937,7 +937,7 @@ Expr_Node_Create (Expr_Node_Type type, { - Expr_Node *node = (Expr_Node *) allocate (sizeof (Expr_Node)); + Expr_Node *node = allocate (sizeof (Expr_Node)); node->type = type; node->value = value; node->Left_Child = Left_Child; @@ -1857,8 +1857,8 @@ bfin_gen_loop (Expr_Node *exp, REG_T reg, int rop, REG_T preg) symbolS *sym; loopsym = exp->value.s_value; - lbeginsym = (char *) xmalloc (strlen (loopsym) + strlen ("__BEGIN") + 5); - lendsym = (char *) xmalloc (strlen (loopsym) + strlen ("__END") + 5); + lbeginsym = xmalloc (strlen (loopsym) + strlen ("__BEGIN") + 5); + lendsym = xmalloc (strlen (loopsym) + strlen ("__END") + 5); lbeginsym[0] = 0; lendsym[0] = 0; @@ -1902,7 +1902,7 @@ bfin_loop_beginend (Expr_Node *exp, int begin) const char *suffix = begin ? "__BEGIN" : "__END"; loopsym = exp->value.s_value; - label_name = (char *) xmalloc (strlen (loopsym) + strlen (suffix) + 5); + label_name = xmalloc (strlen (loopsym) + strlen (suffix) + 5); label_name[0] = 0; diff --git a/gas/config/tc-bpf.c b/gas/config/tc-bpf.c index 84eab3f..fd77c6f 100644 --- a/gas/config/tc-bpf.c +++ b/gas/config/tc-bpf.c @@ -315,7 +315,7 @@ immediate_overflow (int64_t value, unsigned bits) long md_pcrel_from_section (fixS *fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (! S_IS_DEFINED (fixP->fx_addsy) || (S_GET_SEGMENT (fixP->fx_addsy) != sec) || S_IS_EXTERNAL (fixP->fx_addsy) @@ -362,7 +362,7 @@ tc_gen_reloc (asection *sec ATTRIBUTE_UNUSED, fixS *fixP) reloc->howto = bfd_reloc_type_lookup (stdoutput, r_type); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixP->fx_file, fixP->fx_line, _("relocation is not supported")); @@ -516,17 +516,6 @@ encode_int32 (int32_t value, char *buffer) } } -/* Write a BPF instruction to BUF. */ - -static void -write_insn_bytes (bfd_byte *buf, char *bytes) -{ - int i; - - for (i = 0; i < 8; ++i) - md_number_to_chars ((char *) buf + i, (valueT) bytes[i], 1); -} - /* *FRAGP has been relaxed to its final size, and now needs to have the bytes inside it modified to conform to the new size. @@ -625,13 +614,14 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, { /* 16-bit disp is known and not in range. Turn the JA into a JAL with a 32-bit displacement. */ - char bytes[8] = {0}; - - bytes[0] = ((BPF_CLASS_JMP32|BPF_CODE_JA|BPF_SRC_K) >> 56) & 0xff; - bytes[1] = (word >> 48) & 0xff; - bytes[2] = 0; /* disp16 high */ - bytes[3] = 0; /* disp16 lo */ - write_insn_bytes (buf, bytes); + buf[0] = ((BPF_CLASS_JMP32|BPF_CODE_JA|BPF_SRC_K) >> 56) & 0xff; + buf[1] = (word >> 48) & 0xff; + buf[2] = 0; /* disp16 high */ + buf[3] = 0; /* disp16 lo */ + buf[4] = 0; + buf[5] = 0; + buf[6] = 0; + buf[7] = 0; /* Install fixup for the JAL. */ reloc_howto_type *reloc_howto @@ -713,8 +703,6 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, /* 16-bit disp is known and not in range. Turn the JXX into a sequence JXX +1; JA +1; JAL d32. */ - char bytes[8]; - /* First, set the 16-bit offset in the current instruction to 1. */ @@ -726,24 +714,25 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, /* Then, write the JA + 1 */ - bytes[0] = 0x05; /* JA */ - bytes[1] = 0x0; - encode_int16 (1, bytes + 2); - bytes[4] = 0x0; - bytes[5] = 0x0; - bytes[6] = 0x0; - bytes[7] = 0x0; - write_insn_bytes (buf, bytes); + buf[0] = 0x05; /* JA */ + buf[1] = 0x0; + encode_int16 (1, (char *) buf + 2); + buf[4] = 0x0; + buf[5] = 0x0; + buf[6] = 0x0; + buf[7] = 0x0; buf += 8; /* Finally, write the JAL to the target. */ - bytes[0] = ((BPF_CLASS_JMP32|BPF_CODE_JA|BPF_SRC_K) >> 56) & 0xff; - bytes[1] = 0; - bytes[2] = 0; - bytes[3] = 0; - encode_int32 ((int32_t) 0, bytes + 4); - write_insn_bytes (buf, bytes); + buf[0] = ((BPF_CLASS_JMP32|BPF_CODE_JA|BPF_SRC_K) >> 56) & 0xff; + buf[1] = 0; + buf[2] = 0; + buf[3] = 0; + buf[4] = 0; + buf[5] = 0; + buf[6] = 0; + buf[7] = 0; /* Install fixup for the JAL. */ reloc_howto_type *reloc_howto @@ -848,7 +837,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) break; } - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; if (fixP->fx_done) @@ -870,14 +859,14 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) md_number_to_chars (where, *valP, 8); break; case BFD_RELOC_BPF_DISP16: - md_number_to_chars (where + 2, (uint16_t) *valP, 2); + md_number_to_chars (where + 2, *valP, 2); break; case BFD_RELOC_BPF_DISP32: case BFD_RELOC_BPF_DISPCALL32: - md_number_to_chars (where + 4, (uint32_t) *valP, 4); + md_number_to_chars (where + 4, *valP, 4); break; case BFD_RELOC_16_PCREL: - md_number_to_chars (where + 2, (uint32_t) *valP, 2); + md_number_to_chars (where + 2, *valP, 2); break; default: as_bad_where (fixP->fx_file, fixP->fx_line, @@ -1195,13 +1184,11 @@ add_fixed_insn (struct bpf_insn *insn) { char *this_frag = frag_more (insn->size); char bytes[16]; - int i; /* First encode the known parts of the instruction, including opcodes and constant immediates, and write them to the frag. */ encode_insn (insn, bytes, 0 /* relax */); - for (i = 0; i < insn->size; ++i) - md_number_to_chars (this_frag + i, (valueT) bytes[i], 1); + memcpy (this_frag, bytes, insn->size); /* Now install the instruction fixups. */ install_insn_fixups (insn, frag_now, @@ -1214,7 +1201,6 @@ static void add_relaxed_insn (struct bpf_insn *insn, expressionS *exp) { char bytes[16]; - int i; char *this_frag; unsigned worst_case = relaxed_branch_length (NULL, NULL, 0); unsigned best_case = insn->size; @@ -1231,8 +1217,7 @@ add_relaxed_insn (struct bpf_insn *insn, expressionS *exp) /* First encode the known parts of the instruction, including opcodes and constant immediates, and write them to the frag. */ encode_insn (insn, bytes, 1 /* relax */); - for (i = 0; i < insn->size; ++i) - md_number_to_chars (this_frag + i, (valueT) bytes[i], 1); + memcpy (this_frag, bytes, insn->size); /* Note that instruction fixups will be applied once the frag is relaxed, in md_convert_frag. */ diff --git a/gas/config/tc-cr16.c b/gas/config/tc-cr16.c index 62a7deb..5bf088d 100644 --- a/gas/config/tc-cr16.c +++ b/gas/config/tc-cr16.c @@ -235,7 +235,7 @@ l_cons (int nbytes) if ((*(input_line_pointer) == '@') && (*(input_line_pointer +1) == 'c')) code_label = 1; - emit_expr (&exp, (unsigned int) nbytes); + emit_expr (&exp, nbytes); ++c; if ((*(input_line_pointer) == '@') && (*(input_line_pointer +1) == 'c')) { @@ -760,7 +760,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) switch (fixP->fx_r_type) { case BFD_RELOC_CR16_NUM8: - bfd_put_8 (stdoutput, (unsigned char) val, buf); + bfd_put_8 (stdoutput, val, buf); break; case BFD_RELOC_CR16_NUM16: bfd_put_16 (stdoutput, val, buf); @@ -2456,7 +2456,7 @@ print_insn (ins *insn) /* Write the instruction encoding to frag. */ for (i = 0; i < insn_size; i++) { - md_number_to_chars (this_frag, (valueT) words[i], 2); + md_number_to_chars (this_frag, words[i], 2); this_frag += 2; } } @@ -2514,7 +2514,7 @@ md_assemble (char *op) strcpy (param1, get_b_cc (op)); strcat (param1,","); strcat (param1, param); - param = (char *) ¶m1; + param = param1; cr16_assemble ("b", param); return; } diff --git a/gas/config/tc-cris.c b/gas/config/tc-cris.c index 5780386..ed91d06 100644 --- a/gas/config/tc-cris.c +++ b/gas/config/tc-cris.c @@ -877,7 +877,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec ATTRIBUTE_UNUSED, case ENCODE_RELAX (STATE_COND_BRANCH, STATE_DWORD): gen_cond_branch_32 (fragP->fr_opcode, var_partp, fragP, - fragP->fr_symbol, (symbolS *) NULL, + fragP->fr_symbol, NULL, fragP->fr_offset); /* Ten bytes added: a branch, nop and a jump. */ var_part_size = 2 + 2 + 4 + 2; @@ -885,7 +885,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec ATTRIBUTE_UNUSED, case ENCODE_RELAX (STATE_COND_BRANCH_PIC, STATE_DWORD): gen_cond_branch_32 (fragP->fr_opcode, var_partp, fragP, - fragP->fr_symbol, (symbolS *) NULL, + fragP->fr_symbol, NULL, fragP->fr_offset); /* Twelve bytes added: a branch, nop and a pic-branch-32. */ var_part_size = 2 + 2 + 4 + 2 + 2; @@ -893,7 +893,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec ATTRIBUTE_UNUSED, case ENCODE_RELAX (STATE_COND_BRANCH_V32, STATE_DWORD): gen_cond_branch_32 (fragP->fr_opcode, var_partp, fragP, - fragP->fr_symbol, (symbolS *) NULL, + fragP->fr_symbol, NULL, fragP->fr_offset); /* Twelve bytes added: a branch, nop and another branch and nop. */ var_part_size = 2 + 2 + 2 + 4 + 2; @@ -1274,7 +1274,7 @@ md_assemble (char *str) opcodep = cris_insn_first_word_frag (); /* Output the prefix opcode. */ - md_number_to_chars (opcodep, (long) prefix.opcode, 2); + md_number_to_chars (opcodep, prefix.opcode, 2); /* Having a specified reloc only happens for DIP and for BDAP with PIC or TLS operands, but it is ok to drop through here for the other @@ -1324,7 +1324,7 @@ md_assemble (char *str) opcodep = frag_more (2); /* Output the instruction opcode. */ - md_number_to_chars (opcodep, (long) (output_instruction.opcode), 2); + md_number_to_chars (opcodep, output_instruction.opcode, 2); /* Output the symbol-dependent instruction stuff. */ if (output_instruction.insn_type == CRIS_INSN_BRANCH) @@ -1392,8 +1392,7 @@ md_assemble (char *str) ? 12 : 10); gen_cond_branch_32 (opcodep, cond_jump, frag_now, - output_instruction.expr.X_add_symbol, - (symbolS *) NULL, + output_instruction.expr.X_add_symbol, NULL, output_instruction.expr.X_add_number); } } @@ -4047,7 +4046,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) fixP->fx_done = 1; /* We can't actually support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); /* This operand-type is scaled. */ diff --git a/gas/config/tc-crx.c b/gas/config/tc-crx.c index fffd3f1..d5eb9db 100644 --- a/gas/config/tc-crx.c +++ b/gas/config/tc-crx.c @@ -325,7 +325,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS * fixP) gas_assert ((int) fixP->fx_r_type > 0); reloc->howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixP->fx_file, fixP->fx_line, _("internal error: reloc %d (`%s') not supported by object file format"), @@ -456,7 +456,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) switch (fixP->fx_r_type) { case BFD_RELOC_CRX_NUM8: - bfd_put_8 (stdoutput, (unsigned char) val, buf); + bfd_put_8 (stdoutput, val, buf); break; case BFD_RELOC_CRX_NUM16: bfd_put_16 (stdoutput, val, buf); @@ -569,8 +569,8 @@ process_label_constant (char *str, ins * crx_ins) str); crx_ins->exp.X_op = O_constant; crx_ins->exp.X_add_number = 0; - crx_ins->exp.X_add_symbol = (symbolS *) 0; - crx_ins->exp.X_op_symbol = (symbolS *) 0; + crx_ins->exp.X_add_symbol = NULL; + crx_ins->exp.X_op_symbol = NULL; /* Fall through. */ case O_constant: @@ -1907,7 +1907,7 @@ print_insn (ins *insn) /* Write the instruction encoding to frag. */ for (i = 0; i < insn_size; i++) { - md_number_to_chars (this_frag, (valueT) words[i], 2); + md_number_to_chars (this_frag, words[i], 2); this_frag += 2; } } diff --git a/gas/config/tc-csky.c b/gas/config/tc-csky.c index beb46fa..dc8ee74 100644 --- a/gas/config/tc-csky.c +++ b/gas/config/tc-csky.c @@ -1950,11 +1950,11 @@ mapping_state (map_state state) { struct frag * const frag_first = seg_info (now_seg)->frchainP->frch_root; if (frag_now != frag_first || frag_now_fix () > 0) - make_mapping_symbol (MAP_DATA, (valueT) 0, frag_first); + make_mapping_symbol (MAP_DATA, 0, frag_first); } seg_info (now_seg)->tc_segment_info_data.current_state = state; - make_mapping_symbol (state, (valueT) frag_now_fix (), frag_now); + make_mapping_symbol (state, frag_now_fix (), frag_now); } /* Dump the literal pool. */ @@ -5269,7 +5269,7 @@ md_pcrel_from_section (fixS * fixP, segT seg) { /* If the symbol is undefined or defined in another section we leave the add number alone for the linker to fix it later. */ - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (! S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != seg)) return fixP->fx_size; @@ -5320,7 +5320,7 @@ csky_cons_fix_new (fragS *frag, reloc = BFD_RELOC_32; break; } - fixP = fix_new_exp (frag, off, (int) len, exp, 0, reloc); + fixP = fix_new_exp (frag, off, len, exp, 0, reloc); if (BFD_RELOC_CKCORE_TLS_IE32 == insn_reloc || BFD_RELOC_CKCORE_TLS_GD32 == insn_reloc || BFD_RELOC_CKCORE_TLS_LDM32 == insn_reloc) @@ -5596,25 +5596,25 @@ md_apply_fix (fixS *fixP, case BFD_RELOC_CKCORE_PCREL_IMM8BY4: case BFD_RELOC_CKCORE_PCREL_IMM10BY4: case BFD_RELOC_CKCORE_PCREL_IMM16BY4: - max = (offsetT) howto->dst_mask; + max = howto->dst_mask; min = 0; break; /* lrw16. */ case BFD_RELOC_CKCORE_PCREL_IMM7BY4: if (do_extend_lrw) - max = (offsetT)((1 << (howto->bitsize + 1)) - 2); + max = ((valueT) 1 << (howto->bitsize + 1)) - 2; else - max = (offsetT)((1 << howto->bitsize) - 1); + max = ((valueT) 1 << howto->bitsize) - 1; min = 0; break; /* flrws, flrwd: the offset bits are divided in two parts. */ case BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4: - max = (offsetT)((1 << howto->bitsize) - 1); + max = ((valueT) 1 << howto->bitsize) - 1; min = 0; break; /* Offset is signed. */ default: - max = (offsetT)(howto->dst_mask >> 1); + max = howto->dst_mask >> 1; min = - max - 1; issigned = 1; } @@ -5630,7 +5630,7 @@ md_apply_fix (fixS *fixP, if (do_extend_lrw && (opcode & 0xfc00) == CSKYV2_INST_LRW16) val &= 0xff; else - val &= issigned ? (offsetT)(howto->dst_mask) : max; + val &= issigned ? (offsetT) howto->dst_mask : max; if (fixP->fx_r_type == BFD_RELOC_CKCORE_PCREL_BLOOP_IMM4BY4) val = (val & 0xf) << 12; @@ -7689,7 +7689,7 @@ csky_cons (int nbytes) howto->name, nbytes); else { - register char *p = frag_more ((int) nbytes); + register char *p = frag_more (nbytes); int offset = nbytes - size; fix_new_exp (frag_now, @@ -7698,7 +7698,7 @@ csky_cons (int nbytes) } } else - emit_expr (&exp, (unsigned int) nbytes); + emit_expr (&exp, nbytes); if (now_seg == text_section) poolspan += nbytes; } @@ -7861,8 +7861,7 @@ static void csky_stack_size (int arg ATTRIBUTE_UNUSED) { expressionS exp; - stack_size_entry *sse - = (stack_size_entry *) xcalloc (1, sizeof (stack_size_entry)); + stack_size_entry *sse = xcalloc (1, sizeof (stack_size_entry)); expression (&exp); if (exp.X_op == O_symbol) diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c index b10cdff..98d5e8b 100644 --- a/gas/config/tc-d10v.c +++ b/gas/config/tc-d10v.c @@ -275,7 +275,7 @@ void md_begin (void) { const char *prev_name = ""; - struct d10v_opcode *opcode; + const struct d10v_opcode *opcode; d10v_hash = str_htab_create (); /* Insert unique names into hash table. The D10v instruction set @@ -283,11 +283,11 @@ md_begin (void) on the operands. This hash table then provides a quick index to the first opcode with a particular name in the opcode table. */ - for (opcode = (struct d10v_opcode *) d10v_opcodes; opcode->name; opcode++) + for (opcode = d10v_opcodes; opcode->name; opcode++) { if (strcmp (prev_name, opcode->name)) { - prev_name = (char *) opcode->name; + prev_name = opcode->name; str_hash_insert (d10v_hash, opcode->name, opcode, 0); } } @@ -325,7 +325,7 @@ postfix (char *p) } static bfd_reloc_code_real_type -get_reloc (struct d10v_operand *op) +get_reloc (const struct d10v_operand *op) { int bits = op->bits; @@ -564,7 +564,7 @@ build_insn (struct d10v_opcode *opcode, else { fixups->fix[fixups->fc].reloc = - get_reloc ((struct d10v_operand *) &d10v_operands[opcode->operands[i]]); + get_reloc (&d10v_operands[opcode->operands[i]]); /* Check that an immediate was passed to ops that expect one. */ if ((flags & OPERAND_NUM) @@ -1454,7 +1454,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixp->fx_file, fixp->fx_line, _("reloc %d not supported by object file format"), @@ -1481,7 +1481,7 @@ md_estimate_size_before_relax (fragS *fragp ATTRIBUTE_UNUSED, long md_pcrel_from_section (fixS *fixp, segT sec) { - if (fixp->fx_addsy != (symbolS *) NULL + if (fixp->fx_addsy != NULL && (!S_IS_DEFINED (fixp->fx_addsy) || (S_GET_SEGMENT (fixp->fx_addsy) != sec))) return 0; @@ -1497,11 +1497,11 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) int op_type; int left = 0; - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; /* We don't actually support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); op_type = fixP->fx_r_type; @@ -1521,13 +1521,13 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) } else fixP->fx_r_type = - get_reloc ((struct d10v_operand *) &d10v_operands[op_type]); + get_reloc (&d10v_operands[op_type]); } /* Fetch the instruction, insert the fully resolved operand value, and stuff the instruction back again. */ where = fixP->fx_frag->fr_literal + fixP->fx_where; - insn = bfd_getb32 ((unsigned char *) where); + insn = bfd_getb32 (where); switch (fixP->fx_r_type) { @@ -1551,7 +1551,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) /* Instruction addresses are always right-shifted by 2. */ value >>= AT_WORD_RIGHT_SHIFT; if (fixP->fx_size == 2) - bfd_putb16 ((bfd_vma) value, (unsigned char *) where); + bfd_putb16 (value, where); else { struct d10v_opcode *rep, *repi; @@ -1569,14 +1569,14 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) fixP->fx_line); insn = d10v_insert_operand (insn, op_type, (offsetT) value, left, fixP); - bfd_putb32 ((bfd_vma) insn, (unsigned char *) where); + bfd_putb32 (insn, where); } break; case BFD_RELOC_32: - bfd_putb32 ((bfd_vma) value, (unsigned char *) where); + bfd_putb32 (value, where); break; case BFD_RELOC_16: - bfd_putb16 ((bfd_vma) value, (unsigned char *) where); + bfd_putb16 (value, where); break; case BFD_RELOC_8: *where = value; diff --git a/gas/config/tc-d30v.c b/gas/config/tc-d30v.c index 76827d5..bfa4adf 100644 --- a/gas/config/tc-d30v.c +++ b/gas/config/tc-d30v.c @@ -306,11 +306,11 @@ md_section_align (asection *seg, valueT addr) void md_begin (void) { - struct d30v_opcode *opcode; + const struct d30v_opcode *opcode; d30v_hash = str_htab_create (); /* Insert opcode names into a hash table. */ - for (opcode = (struct d30v_opcode *) d30v_opcode_table; opcode->name; opcode++) + for (opcode = d30v_opcode_table; opcode->name; opcode++) str_hash_insert (d30v_hash, opcode->name, opcode, 0); fixups = &FixUps[0]; @@ -484,8 +484,8 @@ build_insn (struct d30v_insn *opcode, expressionS *opers) int i, bits, shift, flags; unsigned long number, id = 0; long long insn; - struct d30v_opcode *op = opcode->op; - struct d30v_format *form = opcode->form; + const struct d30v_opcode *op = opcode->op; + const struct d30v_format *form = opcode->form; insn = opcode->ecc << 28 | op->op1 << 25 | op->op2 << 20 | form->modifier << 18; @@ -682,8 +682,8 @@ parallel_ok (struct d30v_insn *op1, int i, j, shift, regno, bits, ecc; unsigned long flags, mask, flags_set1, flags_set2, flags_used1, flags_used2; unsigned long ins, mod_reg[2][3], used_reg[2][3], flag_reg[2]; - struct d30v_format *f; - struct d30v_opcode *op; + const struct d30v_format *f; + const struct d30v_opcode *op; /* Section 4.3: Both instructions must not be IU or MU only. */ if ((op1->op->unit == IU && op2->op->unit == IU) @@ -1122,14 +1122,14 @@ write_2_short (struct d30v_insn *opcode1, It must look at all formats for an opcode and use the operands to choose the correct one. Return NULL on error. */ -static struct d30v_format * -find_format (struct d30v_opcode *opcode, +static const struct d30v_format * +find_format (const struct d30v_opcode *opcode, expressionS myops[], int fsize, int cmp_hack) { int match, opcode_index, i = 0, j, k; - struct d30v_format *fm; + const struct d30v_format *fm; if (opcode == NULL) return NULL; @@ -1145,7 +1145,7 @@ find_format (struct d30v_opcode *opcode, if (fsize == FORCE_LONG && opcode_index < LONG) continue; - fm = (struct d30v_format *) &d30v_format_table[opcode_index]; + fm = &d30v_format_table[opcode_index]; k = opcode_index; while (fm->form == opcode_index) { @@ -1266,7 +1266,7 @@ find_format (struct d30v_opcode *opcode, return fm; } - fm = (struct d30v_format *) &d30v_format_table[++k]; + fm = &d30v_format_table[++k]; } } return NULL; @@ -1339,7 +1339,7 @@ do_assemble (char *str, if (startswith (name, "cmp")) { int p, i; - char **d30v_str = (char **) d30v_cc_names; + const char **d30v_str = d30v_cc_names; if (name[3] == 'u') p = 4; @@ -1785,7 +1785,7 @@ md_estimate_size_before_relax (fragS *fragp ATTRIBUTE_UNUSED, long md_pcrel_from_section (fixS *fixp, segT sec) { - if (fixp->fx_addsy != (symbolS *) NULL + if (fixp->fx_addsy != NULL && (!S_IS_DEFINED (fixp->fx_addsy) || (S_GET_SEGMENT (fixp->fx_addsy) != sec))) return 0; @@ -1888,7 +1888,7 @@ d30v_cons_align (int size) ++log_size; if (d30v_current_align < log_size) - d30v_align (log_size, (char *) NULL, NULL); + d30v_align (log_size, NULL, NULL); else if (d30v_current_align > log_size) d30v_current_align = log_size; d30v_last_label = NULL; @@ -1901,37 +1901,37 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) unsigned long insn, insn2; long value = *valP; - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; /* We don't support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); /* Fetch the instruction, insert the fully resolved operand value, and stuff the instruction back again. */ where = fixP->fx_frag->fr_literal + fixP->fx_where; - insn = bfd_getb32 ((unsigned char *) where); + insn = bfd_getb32 (where); switch (fixP->fx_r_type) { case BFD_RELOC_8: - *(unsigned char *) where = value; + *where = value; break; case BFD_RELOC_16: - bfd_putb16 ((bfd_vma) value, (unsigned char *) where); + bfd_putb16 (value, where); break; case BFD_RELOC_64: - bfd_putb32 ((bfd_vma) value, (unsigned char *) where); - bfd_putb32 (0, ((unsigned char *) where) + 4); + bfd_putb32 (value, where); + bfd_putb32 (0, where + 4); break; case BFD_RELOC_D30V_6: check_size (value, 6, fixP->fx_file, fixP->fx_line); insn |= value & 0x3F; - bfd_putb32 ((bfd_vma) insn, (unsigned char *) where); + bfd_putb32 (insn, where); break; case BFD_RELOC_D30V_9_PCREL: @@ -1944,13 +1944,13 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) } check_size (value, 9, fixP->fx_file, fixP->fx_line); insn |= ((value >> 3) & 0x3F) << 12; - bfd_putb32 ((bfd_vma) insn, (unsigned char *) where); + bfd_putb32 (insn, where); break; case BFD_RELOC_D30V_15: check_size (value, 15, fixP->fx_file, fixP->fx_line); insn |= (value >> 3) & 0xFFF; - bfd_putb32 ((bfd_vma) insn, (unsigned char *) where); + bfd_putb32 (insn, where); break; case BFD_RELOC_D30V_15_PCREL: @@ -1963,13 +1963,13 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) } check_size (value, 15, fixP->fx_file, fixP->fx_line); insn |= (value >> 3) & 0xFFF; - bfd_putb32 ((bfd_vma) insn, (unsigned char *) where); + bfd_putb32 (insn, where); break; case BFD_RELOC_D30V_21: check_size (value, 21, fixP->fx_file, fixP->fx_line); insn |= (value >> 3) & 0x3FFFF; - bfd_putb32 ((bfd_vma) insn, (unsigned char *) where); + bfd_putb32 (insn, where); break; case BFD_RELOC_D30V_21_PCREL: @@ -1982,29 +1982,29 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) } check_size (value, 21, fixP->fx_file, fixP->fx_line); insn |= (value >> 3) & 0x3FFFF; - bfd_putb32 ((bfd_vma) insn, (unsigned char *) where); + bfd_putb32 (insn, where); break; case BFD_RELOC_D30V_32: - insn2 = bfd_getb32 ((unsigned char *) where + 4); + insn2 = bfd_getb32 (where + 4); insn |= (value >> 26) & 0x3F; /* Top 6 bits. */ insn2 |= ((value & 0x03FC0000) << 2); /* Next 8 bits. */ insn2 |= value & 0x0003FFFF; /* Bottom 18 bits. */ - bfd_putb32 ((bfd_vma) insn, (unsigned char *) where); - bfd_putb32 ((bfd_vma) insn2, (unsigned char *) where + 4); + bfd_putb32 (insn, where); + bfd_putb32 (insn2, where + 4); break; case BFD_RELOC_D30V_32_PCREL: - insn2 = bfd_getb32 ((unsigned char *) where + 4); + insn2 = bfd_getb32 (where + 4); insn |= (value >> 26) & 0x3F; /* Top 6 bits. */ insn2 |= ((value & 0x03FC0000) << 2); /* Next 8 bits. */ insn2 |= value & 0x0003FFFF; /* Bottom 18 bits. */ - bfd_putb32 ((bfd_vma) insn, (unsigned char *) where); - bfd_putb32 ((bfd_vma) insn2, (unsigned char *) where + 4); + bfd_putb32 (insn, where); + bfd_putb32 (insn2, where + 4); break; case BFD_RELOC_32: - bfd_putb32 ((bfd_vma) value, (unsigned char *) where); + bfd_putb32 (value, where); break; default: diff --git a/gas/config/tc-dlx.c b/gas/config/tc-dlx.c index abb283d..69c8f49 100644 --- a/gas/config/tc-dlx.c +++ b/gas/config/tc-dlx.c @@ -187,7 +187,7 @@ is_ldst_registers (char *name) /* The first character of the register name got to be either %, $, r of R. */ if ((ptr[0] == '%' || ptr[0] == '$' || ptr[0] == 'r' || ptr[0] == 'R') - && ISDIGIT ((unsigned char) ptr[1])) + && ISDIGIT (ptr[1])) return 1; /* Now check the software register representation. */ @@ -539,7 +539,7 @@ static char * fix_ld_st_operand (unsigned long opcode, char* str) { /* Check the opcode. */ - switch ((int) opcode) + switch (opcode) { case LBOP: case LBUOP: @@ -616,7 +616,7 @@ parse_operand (char *s, expressionS *operandp) /* Check for the % and $ register representation */ if ((s[0] == '%' || s[0] == '$' || s[0] == 'r' || s[0] == 'R') - && ISDIGIT ((unsigned char) s[1])) + && ISDIGIT (s[1])) { /* We have a numeric register expression. No biggy. */ s += 1; @@ -1124,7 +1124,7 @@ md_operand (expressionS* expressionP) { /* Check for the #number representation */ if (input_line_pointer[0] == '#' && - ISDIGIT ((unsigned char) input_line_pointer[1])) + ISDIGIT (input_line_pointer[1])) { /* We have a numeric number expression. No biggy. */ input_line_pointer += 1; /* Skip # */ diff --git a/gas/config/tc-epiphany.c b/gas/config/tc-epiphany.c index 4a027e9..be23d15 100644 --- a/gas/config/tc-epiphany.c +++ b/gas/config/tc-epiphany.c @@ -154,7 +154,7 @@ md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } @@ -248,10 +248,10 @@ epiphany_PIC_related_p (symbolS *sym) void epiphany_apply_fix (fixS *fixP, valueT *valP, segT seg) { - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; - if (((int) fixP->fx_r_type < (int) BFD_RELOC_UNUSED) + if ((fixP->fx_r_type < BFD_RELOC_UNUSED) && fixP->fx_done) { /* Install EPIPHANY-dependent relocations HERE because nobody else @@ -942,7 +942,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, fixP->fx_r_type = fixP->fx_cgen.opinfo; } - md_number_to_chars (displacement, (valueT) addend, extension + 1); + md_number_to_chars (displacement, addend, extension + 1); fragP->fr_fix += (extension & -2); /* 0,2 or 4 bytes added. */ } @@ -956,7 +956,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, long md_pcrel_from_section (fixS *fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (!S_IS_DEFINED (fixP->fx_addsy) || (S_GET_SEGMENT (fixP->fx_addsy) != sec) || S_IS_EXTERNAL (fixP->fx_addsy) @@ -1025,10 +1025,10 @@ epiphany_fix_adjustable (fixS *fixP) { bfd_reloc_code_real_type reloc_type; - if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + if (fixP->fx_r_type >= BFD_RELOC_UNUSED) { const CGEN_INSN *insn = fixP->fx_cgen.insn; - int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + int opindex = fixP->fx_r_type - BFD_RELOC_UNUSED; const CGEN_OPERAND *operand = cgen_operand_lookup_by_num (gas_cgen_cpu_desc, opindex); diff --git a/gas/config/tc-fr30.c b/gas/config/tc-fr30.c index 2b135f4..e120ca5 100644 --- a/gas/config/tc-fr30.c +++ b/gas/config/tc-fr30.c @@ -156,7 +156,7 @@ md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * @@ -272,7 +272,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, long md_pcrel_from_section (fixS * fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (! S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) /* The symbol is undefined (or is defined but not in this section). diff --git a/gas/config/tc-frv.c b/gas/config/tc-frv.c index 2c33c90..900fb4a 100644 --- a/gas/config/tc-frv.c +++ b/gas/config/tc-frv.c @@ -175,7 +175,7 @@ static flagword frv_flags = DEFAULT_FLAGS | DEFAULT_FDPIC; static int frv_user_set_flags_p = 0; static int frv_pic_p = 0; -static const char *frv_pic_flag = DEFAULT_FDPIC ? "-mfdpic" : (const char *)0; +static const char *frv_pic_flag = DEFAULT_FDPIC ? "-mfdpic" : NULL; /* Print tomcat-specific debugging info. */ static int tomcat_debug = 0; @@ -1226,7 +1226,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * @@ -1311,7 +1311,7 @@ long md_pcrel_from_section (fixS *fixP, segT sec) { if (TC_FORCE_RELOCATION (fixP) - || (fixP->fx_addsy != (symbolS *) NULL + || (fixP->fx_addsy != NULL && S_GET_SEGMENT (fixP->fx_addsy) != sec)) { /* If we can't adjust this relocation, or if it references a @@ -1523,10 +1523,10 @@ frv_fix_adjustable (fixS *fixP) { bfd_reloc_code_real_type reloc_type; - if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + if (fixP->fx_r_type >= BFD_RELOC_UNUSED) { const CGEN_INSN *insn = NULL; - int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + int opindex = fixP->fx_r_type - BFD_RELOC_UNUSED; const CGEN_OPERAND *operand = cgen_operand_lookup_by_num(gas_cgen_cpu_desc, opindex); reloc_type = md_cgen_lookup_reloc (insn, operand, fixP); } @@ -1705,7 +1705,7 @@ frv_frob_file_section (bfd *abfd, asection *sec, void *ptr ATTRIBUTE_UNUSED) } else { - opindex = (int) fixp->fx_r_type - (int) BFD_RELOC_UNUSED; + opindex = fixp->fx_r_type - BFD_RELOC_UNUSED; operand = cgen_operand_lookup_by_num (cd, opindex); reloc = md_cgen_lookup_reloc (insn, operand, fixp); } @@ -1790,7 +1790,7 @@ frv_frob_file_section (bfd *abfd, asection *sec, void *ptr ATTRIBUTE_UNUSED) void frv_frob_file (void) { - bfd_map_over_sections (stdoutput, frv_frob_file_section, (void *) 0); + bfd_map_over_sections (stdoutput, frv_frob_file_section, NULL); } void diff --git a/gas/config/tc-ft32.c b/gas/config/tc-ft32.c index 83d3e1f..7e68e83 100644 --- a/gas/config/tc-ft32.c +++ b/gas/config/tc-ft32.c @@ -530,12 +530,11 @@ static valueT md_chars_to_number (char * buf, int n) { valueT result = 0; - unsigned char * where = (unsigned char *) buf; while (n--) { result <<= 8; - result |= (where[n] & 255); + result |= (buf[n] & 255); } return result; @@ -581,7 +580,7 @@ md_apply_fix (fixS *fixP ATTRIBUTE_UNUSED, } /* We don't actually support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); switch (fixP->fx_r_type) diff --git a/gas/config/tc-h8300.c b/gas/config/tc-h8300.c index 12456b2..d7bb329 100644 --- a/gas/config/tc-h8300.c +++ b/gas/config/tc-h8300.c @@ -2223,7 +2223,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & (-1U << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } void diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c index 5018dfc..744613f 100644 --- a/gas/config/tc-hppa.c +++ b/gas/config/tc-hppa.c @@ -1200,7 +1200,7 @@ fix_new_hppa (fragS *frag, new_fix = fix_new_exp (frag, where, size, exp, pcrel, r_type); else new_fix = fix_new (frag, where, size, add_symbol, offset, pcrel, r_type); - new_fix->tc_fix_data = (void *) hppa_fix; + new_fix->tc_fix_data = hppa_fix; hppa_fix->fx_r_type = r_type; hppa_fix->fx_r_field = r_field; hppa_fix->fx_r_format = r_format; @@ -1265,8 +1265,7 @@ cons_fix_new_hppa (fragS *frag, int where, int size, expressionS *exp, hppa_field_selector = e_fsel; } - fix_new_hppa (frag, where, size, - (symbolS *) NULL, (offsetT) 0, exp, 0, rel_type, + fix_new_hppa (frag, where, size, NULL, 0, exp, 0, rel_type, hppa_field_selector, size * 8, 0, 0); } @@ -1351,7 +1350,7 @@ tc_gen_reloc (asection *section, fixS *fixp) if (fixp->fx_addsy == 0) return &no_relocs; - hppa_fixp = (struct hppa_fix_struct *) fixp->tc_fix_data; + hppa_fixp = fixp->tc_fix_data; gas_assert (hppa_fixp != 0); gas_assert (section != 0); @@ -1447,7 +1446,7 @@ tc_gen_reloc (asection *section, fixS *fixp) (bfd_reloc_code_real_type) code); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; - gas_assert (reloc->howto && (unsigned int) code == reloc->howto->type); + gas_assert (reloc->howto && code == reloc->howto->type); break; } #else /* OBJ_SOM */ @@ -1563,7 +1562,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, if (fragP->fr_type == rs_machine_dependent) { - switch ((int) fragP->fr_subtype) + switch (fragP->fr_subtype) { case 0: fragP->fr_type = rs_fill; @@ -1590,7 +1589,7 @@ valueT md_section_align (asection *segment, valueT size) { int align = bfd_section_alignment (segment); - int align2 = (1 << align) - 1; + valueT align2 = ((valueT) 1 << align) - 1; return (size + align2) & ~align2; } @@ -1726,7 +1725,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) fixP->fx_done = 1; /* There should be a HPPA specific fixup associated with the GAS fixup. */ - hppa_fixP = (struct hppa_fix_struct *) fixP->tc_fix_data; + hppa_fixP = fixP->tc_fix_data; if (hppa_fixP == NULL) { as_bad_where (fixP->fx_file, fixP->fx_line, @@ -5762,7 +5761,7 @@ md_assemble (char *str) where = frag_more (0); u = UNWIND_LOW32 (&last_call_info->ci_unwind.descriptor); fix_new_hppa (frag_now, where - frag_now->fr_literal, 0, - NULL, (offsetT) 0, NULL, + NULL, 0, NULL, 0, R_HPPA_ENTRY, e_fsel, 0, 0, u); } #endif @@ -5786,7 +5785,7 @@ md_assemble (char *str) /* If necessary output more stuff. */ if (the_insn.reloc != R_HPPA_NONE) fix_new_hppa (frag_now, (to - frag_now->fr_literal), 4, NULL, - (offsetT) 0, &the_insn.exp, the_insn.pcrel, + 0, &the_insn.exp, the_insn.pcrel, (int) the_insn.reloc, the_insn.field_selector, the_insn.format, the_insn.arg_reloc, 0); @@ -5856,7 +5855,7 @@ pa_brtab (int begin ATTRIBUTE_UNUSED) char *where = frag_more (0); fix_new_hppa (frag_now, where - frag_now->fr_literal, 0, - NULL, (offsetT) 0, NULL, + NULL, 0, NULL, 0, begin ? R_HPPA_BEGIN_BRTAB : R_HPPA_END_BRTAB, e_fsel, 0, 0, 0); #endif @@ -5880,7 +5879,7 @@ pa_try (int begin ATTRIBUTE_UNUSED) the beginning and end of exception handling regions). */ fix_new_hppa (frag_now, where - frag_now->fr_literal, 0, - NULL, (offsetT) 0, begin ? NULL : &exp, + NULL, 0, begin ? NULL : &exp, 0, begin ? R_HPPA_BEGIN_TRY : R_HPPA_END_TRY, e_fsel, 0, 0, 0); #endif @@ -6019,10 +6018,8 @@ pa_build_unwind_subspace (struct call_info *call_info) /* Relocation info. for start offset of the function. */ md_number_to_chars (p, 0, 4); - fix_new_hppa (frag_now, p - frag_now->fr_literal, 4, - symbolP, (offsetT) 0, - (expressionS *) NULL, 0, reloc, - e_fsel, 32, 0, 0); + fix_new_hppa (frag_now, p - frag_now->fr_literal, 4, symbolP, 0, + NULL, 0, reloc, e_fsel, 32, 0, 0); /* Relocation info. for end offset of the function. @@ -6033,9 +6030,8 @@ pa_build_unwind_subspace (struct call_info *call_info) finished with its work. */ md_number_to_chars (p + 4, 0, 4); fix_new_hppa (frag_now, p + 4 - frag_now->fr_literal, 4, - call_info->end_symbol, (offsetT) 0, - (expressionS *) NULL, 0, reloc, - e_fsel, 32, 0, 0); + call_info->end_symbol, 0, + NULL, 0, reloc, e_fsel, 32, 0, 0); /* Dump the descriptor. */ unwind = UNWIND_LOW32 (&call_info->ci_unwind.descriptor); @@ -6335,8 +6331,7 @@ pa_entry (int unused ATTRIBUTE_UNUSED) where = frag_more (0); u = UNWIND_LOW32 (&last_call_info->ci_unwind.descriptor); fix_new_hppa (frag_now, where - frag_now->fr_literal, 0, - NULL, (offsetT) 0, NULL, - 0, R_HPPA_ENTRY, e_fsel, 0, 0, u); + NULL, 0, NULL, 0, R_HPPA_ENTRY, e_fsel, 0, 0, u); } #endif } @@ -6494,8 +6489,7 @@ process_exit (void) if we split the unwind bits up between the relocations which denote the entry and exit points. */ fix_new_hppa (frag_now, where - frag_now->fr_literal, 0, - NULL, (offsetT) 0, - NULL, 0, R_HPPA_EXIT, e_fsel, 0, 0, + NULL, 0, NULL, 0, R_HPPA_EXIT, e_fsel, 0, 0, UNWIND_HIGH32 (&last_call_info->ci_unwind.descriptor)); #endif } @@ -6621,7 +6615,7 @@ pa_type_args (symbolS *symbolP, int is_export) than BFD understands. This is how we get this information to the SOM BFD backend. */ #ifdef obj_set_symbol_type - obj_set_symbol_type (bfdsym, (int) type); + obj_set_symbol_type (bfdsym, type); #else (void) type; #endif @@ -7011,8 +7005,8 @@ pa_procend (int unused ATTRIBUTE_UNUSED) where = frag_more (0); u = UNWIND_LOW32 (&last_call_info->ci_unwind.descriptor); fix_new_hppa (frag_now, where - frag_now->fr_literal, 0, - NULL, (offsetT) 0, NULL, - 0, R_HPPA_ENTRY, e_fsel, 0, 0, u); + NULL, 0, NULL, 0, R_HPPA_ENTRY, e_fsel, + 0, 0, u); } #endif } @@ -7554,7 +7548,6 @@ pa_subspace (int create_new) /* Now that all the flags are set, update an existing subspace, or create a new one. */ if (ssd) - current_subspace = update_subspace (space, ss_name, loadable, code_only, comdat, common, dup_common, sort, zero, access_ctr, @@ -7979,7 +7972,7 @@ pa_subsegment_to_subspace (asection *seg, subsegT subseg) for (subspace_chain = space_chain->sd_subspaces; subspace_chain; subspace_chain = subspace_chain->ssd_next) - if (subspace_chain->ssd_subseg == (int) subseg) + if (subspace_chain->ssd_subseg == subseg) return subspace_chain; } } @@ -8317,7 +8310,7 @@ hppa_fix_adjustable (fixS *fixp) #endif struct hppa_fix_struct *hppa_fix; - hppa_fix = (struct hppa_fix_struct *) fixp->tc_fix_data; + hppa_fix = fixp->tc_fix_data; #ifdef OBJ_ELF /* LR/RR selectors are implicitly used for a number of different relocation @@ -8436,14 +8429,14 @@ hppa_force_relocation (struct fix *fixp) { struct hppa_fix_struct *hppa_fixp; - hppa_fixp = (struct hppa_fix_struct *) fixp->tc_fix_data; + hppa_fixp = fixp->tc_fix_data; #ifdef OBJ_SOM - if (fixp->fx_r_type == (int) R_HPPA_ENTRY - || fixp->fx_r_type == (int) R_HPPA_EXIT - || fixp->fx_r_type == (int) R_HPPA_BEGIN_BRTAB - || fixp->fx_r_type == (int) R_HPPA_END_BRTAB - || fixp->fx_r_type == (int) R_HPPA_BEGIN_TRY - || fixp->fx_r_type == (int) R_HPPA_END_TRY + if (fixp->fx_r_type == R_HPPA_ENTRY + || fixp->fx_r_type == R_HPPA_EXIT + || fixp->fx_r_type == R_HPPA_BEGIN_BRTAB + || fixp->fx_r_type == R_HPPA_END_BRTAB + || fixp->fx_r_type == R_HPPA_BEGIN_TRY + || fixp->fx_r_type == R_HPPA_END_TRY || (fixp->fx_addsy != NULL && fixp->fx_subsy != NULL && (hppa_fixp->segment->flags & SEC_CODE) != 0)) return 1; @@ -8545,7 +8538,7 @@ pa_vtable_entry (int ignore ATTRIBUTE_UNUSED) hppa_fix->fx_r_format = 32; hppa_fix->fx_arg_reloc = 0; hppa_fix->segment = now_seg; - new_fix->tc_fix_data = (void *) hppa_fix; + new_fix->tc_fix_data = hppa_fix; new_fix->fx_r_type = (int) R_PARISC_GNU_VTENTRY; } } @@ -8566,7 +8559,7 @@ pa_vtable_inherit (int ignore ATTRIBUTE_UNUSED) hppa_fix->fx_r_format = 32; hppa_fix->fx_arg_reloc = 0; hppa_fix->segment = now_seg; - new_fix->tc_fix_data = (void *) hppa_fix; + new_fix->tc_fix_data = hppa_fix; new_fix->fx_r_type = (int) R_PARISC_GNU_VTINHERIT; } } diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index b0a22bb..8fb8a7e 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -11408,8 +11408,8 @@ build_modrm_byte (void) i.op[op].disps = exp; exp->X_op = O_constant; exp->X_add_number = 0; - exp->X_add_symbol = (symbolS *) 0; - exp->X_op_symbol = (symbolS *) 0; + exp->X_add_symbol = NULL; + exp->X_op_symbol = NULL; } } else @@ -16439,7 +16439,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec ATTRIBUTE_UNUSED, } /* Now put displacement after opcode. */ md_number_to_chars ((char *) where_to_put_displacement, - (valueT) (displacement_from_opcode_start - extension), + displacement_from_opcode_start - extension, DISP_SIZE_FROM_RELAX_STATE (fragP->fr_subtype)); fragP->fr_fix += extension; } @@ -16825,12 +16825,12 @@ parse_real_register (const char *reg_string, char **end_op) while ((*p++ = register_chars[(unsigned char) *s]) != '\0') { if (p >= reg_name_given + MAX_REG_NAME_SIZE) - return (const reg_entry *) NULL; + return NULL; s++; } if (is_part_of_name (*s)) - return (const reg_entry *) NULL; + return NULL; *end_op = (char *) s; @@ -16843,7 +16843,7 @@ parse_real_register (const char *reg_string, char **end_op) && !cpu_arch_flags.bitfield.cpu287 && !cpu_arch_flags.bitfield.cpu387 && !allow_pseudo_reg) - return (const reg_entry *) NULL; + return NULL; if (is_whitespace (*s)) ++s; @@ -16866,7 +16866,7 @@ parse_real_register (const char *reg_string, char **end_op) } } /* We have "%st(" then garbage. */ - return (const reg_entry *) NULL; + return NULL; } } @@ -18126,7 +18126,7 @@ md_section_align (segT segment, valueT size) work. */ int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & (-((valueT) 1 << align))); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } #endif @@ -18148,7 +18148,7 @@ s_bss (int ignore ATTRIBUTE_UNUSED) int temp; temp = get_absolute_expression (); - subseg_set (bss_section, (subsegT) temp); + subseg_set (bss_section, temp); demand_empty_rest_of_line (); } @@ -18328,7 +18328,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) _("symbol size computation overflow")); fixp->fx_addsy = NULL; fixp->fx_subsy = NULL; - md_apply_fix (fixp, (valueT *) &value, NULL); + md_apply_fix (fixp, &value, NULL); return NULL; } if (!fixp->fx_addsy || fixp->fx_subsy) diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index 192c093..88f9563 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -741,7 +741,7 @@ typedef struct unw_rec_list { struct unw_rec_list *next; } unw_rec_list; -#define SLOT_NUM_NOT_SET (unsigned)-1 +#define SLOT_NUM_NOT_SET -1UL /* Linked list of saved prologue counts. A very poor implementation of a map from label numbers to prologue counts. */ @@ -1045,9 +1045,9 @@ obj_elf_vms_common (int ignore ATTRIBUTE_UNUSED) const char *sec_name; char *sym_name; char c; - offsetT size; - offsetT cur_size; - offsetT temp; + valueT size; + valueT cur_size; + valueT temp; symbolS *symbolP; segT current_seg = now_seg; subsegT current_subseg = now_subseg; @@ -1109,7 +1109,7 @@ obj_elf_vms_common (int ignore ATTRIBUTE_UNUSED) temp = get_absolute_expression (); size = temp; - size &= ((offsetT) 2 << (stdoutput->arch_info->bits_per_address - 1)) - 1; + size &= ((valueT) 2 << (stdoutput->arch_info->bits_per_address - 1)) - 1; if (temp != size) { as_warn (_("size (%ld) out of range, ignored"), (long) temp); @@ -1150,11 +1150,9 @@ obj_elf_vms_common (int ignore ATTRIBUTE_UNUSED) record_alignment (now_seg, log_align); cur_size = bfd_section_size (now_seg); - if ((int) size > cur_size) + if (size > cur_size) { - char *pfrag - = frag_var (rs_fill, 1, 1, (relax_substateT)0, NULL, - (valueT)size - (valueT)cur_size, NULL); + char *pfrag = frag_var (rs_fill, 1, 1, 0, NULL, size - cur_size, NULL); *pfrag = 0; bfd_set_section_size (now_seg, size); } @@ -3574,7 +3572,7 @@ start_unwind_section (const segT text_seg, int sec_index) suffix += sizeof (".gnu.linkonce.t.") - 1; } - sec_name = concat (prefix, suffix, NULL); + sec_name = concat (prefix, suffix, (const char *) NULL); /* Handle COMDAT group. */ if ((text_seg->flags & SEC_LINK_ONCE) != 0 @@ -3593,7 +3591,8 @@ start_unwind_section (const segT text_seg, int sec_index) } /* We have to construct a fake section directive. */ - section = concat (sec_name, ",\"aG\",@progbits,", group_name, ",comdat", NULL); + section = concat (sec_name, ",\"aG\",@progbits,", group_name, + ",comdat", (const char *) NULL); set_section (section); free (section); } @@ -3657,7 +3656,7 @@ generate_unwind_image (const segT text_seg) unwind.info = expr_build_dot (); frag_var (rs_machine_dependent, size, size, 0, 0, - (offsetT) (long) unwind.personality_routine, + (intptr_t) unwind.personality_routine, (char *) list); /* Add the personality address to the image. */ @@ -5096,7 +5095,7 @@ dot_pred_rel (int type) if (count == 0) mask = ~(valueT) 0; clear_qp_mutex (mask); - clear_qp_implies (mask, (valueT) 0); + clear_qp_implies (mask, 0); break; case 'i': if (count != 2 || p1 == -1 || p2 == -1) @@ -11664,8 +11663,7 @@ ia64_float_to_chars_bigendian (char *lit, LITTLENUM_TYPE *words, { while (prec--) { - number_to_chars_bigendian (lit, (long) (*words++), - sizeof (LITTLENUM_TYPE)); + number_to_chars_bigendian (lit, *words++, sizeof (LITTLENUM_TYPE)); lit += sizeof (LITTLENUM_TYPE); } } @@ -11676,7 +11674,7 @@ ia64_float_to_chars_littleendian (char *lit, LITTLENUM_TYPE *words, { while (prec--) { - number_to_chars_littleendian (lit, (long) (words[prec]), + number_to_chars_littleendian (lit, words[prec], sizeof (LITTLENUM_TYPE)); lit += sizeof (LITTLENUM_TYPE); } diff --git a/gas/config/tc-iq2000.c b/gas/config/tc-iq2000.c index 1957235..76ff841 100644 --- a/gas/config/tc-iq2000.c +++ b/gas/config/tc-iq2000.c @@ -198,29 +198,29 @@ static const char * li_expn = "\n\ static iq2000_macro_defs_s iq2000_macro_defs[] = { - {"abs", (const char **) & abs_expn, (const char **) & abs_args}, - {"la", (const char **) & la_expn, (const char **) & la_args}, - {"bge", (const char **) & bge_expn, (const char **) & bxx_args}, - {"bgeu", (const char **) & bgeu_expn, (const char **) & bxx_args}, - {"bgt", (const char **) & bgt_expn, (const char **) & bxx_args}, - {"bgtu", (const char **) & bgtu_expn, (const char **) & bxx_args}, - {"ble", (const char **) & ble_expn, (const char **) & bxx_args}, - {"bleu", (const char **) & bleu_expn, (const char **) & bxx_args}, - {"blt", (const char **) & blt_expn, (const char **) & bxx_args}, - {"bltu", (const char **) & bltu_expn, (const char **) & bxx_args}, - {"sge", (const char **) & sge_expn, (const char **) & sxx_args}, - {"sgeu", (const char **) & sgeu_expn, (const char **) & sxx_args}, - {"sle", (const char **) & sle_expn, (const char **) & sxx_args}, - {"sleu", (const char **) & sleu_expn, (const char **) & sxx_args}, - {"sgt", (const char **) & sgt_expn, (const char **) & sxx_args}, - {"sgtu", (const char **) & sgtu_expn, (const char **) & sxx_args}, - {"seq", (const char **) & seq_expn, (const char **) & sxx_args}, - {"sne", (const char **) & sne_expn, (const char **) & sxx_args}, - {"neg", (const char **) & neg_expn, (const char **) & neg_args}, - {"negu", (const char **) & negu_expn, (const char **) & neg_args}, - {"li", (const char **) & li_expn, (const char **) & li_args}, - {"ori32", (const char **) & ori32_expn, (const char **) & ai32_args}, - {"andi32",(const char **) & andi32_expn,(const char **) & ai32_args}, + {"abs", &abs_expn, abs_args}, + {"la", &la_expn, la_args}, + {"bge", &bge_expn, bxx_args}, + {"bgeu", &bgeu_expn, bxx_args}, + {"bgt", &bgt_expn, bxx_args}, + {"bgtu", &bgtu_expn, bxx_args}, + {"ble", &ble_expn, bxx_args}, + {"bleu", &bleu_expn, bxx_args}, + {"blt", &blt_expn, bxx_args}, + {"bltu", &bltu_expn, bxx_args}, + {"sge", &sge_expn, sxx_args}, + {"sgeu", &sgeu_expn, sxx_args}, + {"sle", &sle_expn, sxx_args}, + {"sleu", &sleu_expn, sxx_args}, + {"sgt", &sgt_expn, sxx_args}, + {"sgtu", &sgtu_expn, sxx_args}, + {"seq", &seq_expn, sxx_args}, + {"sne", &sne_expn, sxx_args}, + {"neg", &neg_expn, neg_args}, + {"negu", &negu_expn, neg_args}, + {"li", &li_expn, li_args}, + {"ori32", &ori32_expn, ai32_args}, + {"andi32", &andi32_expn, ai32_args}, }; static void @@ -425,7 +425,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * @@ -482,7 +482,7 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, long md_pcrel_from_section (fixS * fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (! S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) { @@ -728,10 +728,10 @@ iq2000_fix_adjustable (fixS * fixP) { bfd_reloc_code_real_type reloc_type; - if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + if (fixP->fx_r_type >= BFD_RELOC_UNUSED) { const CGEN_INSN *insn = NULL; - int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + int opindex = fixP->fx_r_type - BFD_RELOC_UNUSED; const CGEN_OPERAND *operand = cgen_operand_lookup_by_num(gas_cgen_cpu_desc, opindex); reloc_type = md_cgen_lookup_reloc (insn, operand, fixP); @@ -790,7 +790,7 @@ get_symbol (void) symbolS *p; c = get_symbol_name (&name); - p = (symbolS *) symbol_find_or_make (name); + p = symbol_find_or_make (name); (void) restore_line_pointer (c); return p; } diff --git a/gas/config/tc-kvx.c b/gas/config/tc-kvx.c index 5582650..b4ca25c 100644 --- a/gas/config/tc-kvx.c +++ b/gas/config/tc-kvx.c @@ -700,7 +700,7 @@ assemble_insn (const struct kvxopc * opcode, struct token_list *tok, struct kvxi insn->immx1 = NOIMMX; struct token_list *tok_ = tok; - struct kvx_operand **format = (struct kvx_operand **) opcode->format; + struct kvx_operand *const *format = opcode->format; while (tok_) { @@ -1021,7 +1021,7 @@ kvx_print_insn (struct kvxopc * op ATTRIBUTE_UNUSED) /* This is a hack which works because the Bundling is the same for all cores for now. */ - switch ((int) op->bundling) + switch (op->bundling) { case Bundling_kv3_v1_ALL: insn_type = "ALL "; @@ -1109,7 +1109,7 @@ kvx_reorder_bundle (struct kvxinsn *bundle_insn[], int bundle_insncnt) tag = -1, exu = -1; /* This is a hack. It works because all the Bundling are the same for all cores for now. */ - switch ((int) find_bundling (kvxinsn)) + switch (find_bundling (kvxinsn)) { case Bundling_kv3_v1_ALL: if (bundle_insncnt > 1) @@ -1441,8 +1441,8 @@ kvx_set_cpu (void) static int kvxop_compar (const void *a, const void *b) { - const struct kvxopc *opa = (const struct kvxopc *) a; - const struct kvxopc *opb = (const struct kvxopc *) b; + const struct kvxopc *opa = a; + const struct kvxopc *opb = b; int res = strcmp (opa->as_op, opb->as_op); if (res) @@ -1644,7 +1644,7 @@ md_apply_fix (fixS * fixP, valueT * valueP, segT segmentP ATTRIBUTE_UNUSED) valueT image; arelent *rel; - rel = (arelent *) xmalloc (sizeof (arelent)); + rel = xmalloc (sizeof (arelent)); rel->howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type); if (rel->howto == NULL) diff --git a/gas/config/tc-lm32.c b/gas/config/tc-lm32.c index c101d71..2a4bbd3 100644 --- a/gas/config/tc-lm32.c +++ b/gas/config/tc-lm32.c @@ -80,7 +80,7 @@ const pseudo_typeS md_pseudo_table[] = { "hword", cons, 2 }, { "word", cons, 4 }, { "dword", cons, 8 }, - {(char *)0 , (void(*)(int))0, 0} + { NULL, NULL, 0 } }; /* Target specific command line options. */ @@ -246,8 +246,7 @@ md_atof (int type, char *litP, int *sizeP) { for (i = 0; i < prec; i++) { - md_number_to_chars (litP, (valueT) words[i], - sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, words[i], sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } } @@ -255,8 +254,7 @@ md_atof (int type, char *litP, int *sizeP) { for (i = prec - 1; i >= 0; i--) { - md_number_to_chars (litP, (valueT) words[i], - sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, words[i], sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } } @@ -278,7 +276,7 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* This function assembles the instructions. It emits the frags/bytes to the @@ -357,7 +355,7 @@ md_pcrel_from (fixS *fixP) long md_pcrel_from_section (fixS * fixP, segT sec) { - if ((fixP->fx_addsy != (symbolS *) NULL) + if ((fixP->fx_addsy != NULL) && (! S_IS_DEFINED (fixP->fx_addsy) || (S_GET_SEGMENT (fixP->fx_addsy) != sec))) { @@ -368,7 +366,7 @@ md_pcrel_from_section (fixS * fixP, segT sec) /*fprintf(stderr, "%s extern %d local %d\n", S_GET_NAME (fixP->fx_addsy), S_IS_EXTERN (fixP->fx_addsy), S_IS_LOCAL (fixP->fx_addsy));*/ /* FIXME: Weak problem? */ - if ((fixP->fx_addsy != (symbolS *) NULL) + if ((fixP->fx_addsy != NULL) && S_IS_EXTERNAL (fixP->fx_addsy)) { /* If the symbol is external, let the linker handle it. */ diff --git a/gas/config/tc-loongarch.c b/gas/config/tc-loongarch.c index 06fb601..7b53b6f 100644 --- a/gas/config/tc-loongarch.c +++ b/gas/config/tc-loongarch.c @@ -180,7 +180,6 @@ md_parse_option (int c, const char *arg) int ret = 1; char lp64[256] = ""; char ilp32[256] = ""; - unsigned char *suf = (unsigned char *)arg; lp64['s'] = lp64['S'] = EF_LOONGARCH_ABI_SOFT_FLOAT; lp64['f'] = lp64['F'] = EF_LOONGARCH_ABI_SINGLE_FLOAT; @@ -193,7 +192,7 @@ md_parse_option (int c, const char *arg) switch (c) { case OPTION_ABI: - if (strncasecmp (arg, "lp64", 4) == 0 && lp64[suf[4]] != 0) + if (strncasecmp (arg, "lp64", 4) == 0 && lp64[arg[4] & 0xff] != 0) { LARCH_opts.ase_ilp32 = 1; LARCH_opts.ase_lp64 = 1; @@ -201,11 +200,11 @@ md_parse_option (int c, const char *arg) LARCH_opts.ase_lasx = 1; LARCH_opts.ase_lvz = 1; LARCH_opts.ase_lbt = 1; - LARCH_opts.ase_abi = lp64[suf[4]]; + LARCH_opts.ase_abi = lp64[arg[4] & 0xff]; } - else if (strncasecmp (arg, "ilp32", 5) == 0 && ilp32[suf[5]] != 0) + else if (strncasecmp (arg, "ilp32", 5) == 0 && ilp32[arg[5] & 0xff] != 0) { - LARCH_opts.ase_abi = ilp32[suf[5]]; + LARCH_opts.ase_abi = ilp32[arg[5] & 0xff]; LARCH_opts.ase_ilp32 = 1; } else @@ -453,7 +452,7 @@ static hashval_t align_sec_sym_hash (const void *entry) { const align_sec_sym *e = entry; - return (hashval_t) (e->sec_id); + return e->sec_id; } static int @@ -483,7 +482,7 @@ static symbolS *get_align_symbol (segT sec) &entry, INSERT); if (slot == NULL) return NULL; - *slot = (align_sec_sym *) xmalloc (sizeof (align_sec_sym)); + *slot = xmalloc (sizeof (align_sec_sym)); if (*slot == NULL) return NULL; **slot = entry; @@ -1756,8 +1755,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) unsigned int subtype; offsetT loc; - subtype = bfd_get_8 (NULL, &((fragS *) - (fixP->fx_frag->fr_opcode))->fr_literal[fixP->fx_where]); + fragS *opfrag = (fragS *) fixP->fx_frag->fr_opcode; + subtype = bfd_get_8 (NULL, opfrag->fr_literal + fixP->fx_where); loc = fixP->fx_frag->fr_fix - (subtype & 7); switch (subtype) { @@ -1793,7 +1792,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) if (subtype < 0x80 && (subtype & 0x40)) { /* DW_CFA_advance_loc. */ - fixP->fx_frag = (fragS *) fixP->fx_frag->fr_opcode; + fixP->fx_frag = opfrag; fixP->fx_next->fx_frag = fixP->fx_frag; fixP->fx_r_type = BFD_RELOC_LARCH_ADD6; fixP->fx_next->fx_r_type = BFD_RELOC_LARCH_SUB6; @@ -2284,12 +2283,12 @@ loongarch_relax_frag (asection *sec, fragS *fragp, static void loongarch_convert_frag_branch (fragS *fragp) { - bfd_byte *buf; + char *buf; expressionS exp; fixS *fixp; insn_t insn; - buf = (bfd_byte *)fragp->fr_literal + fragp->fr_fix; + buf = fragp->fr_literal + fragp->fr_fix; exp.X_op = O_symbol; exp.X_add_symbol = fragp->fr_symbol; @@ -2319,17 +2318,17 @@ loongarch_convert_frag_branch (fragS *fragp) /* Add the B instruction and jump to the original target. */ bfd_putl32 (LARCH_B, buf); - fixp = fix_new_exp (fragp, buf - (bfd_byte *)fragp->fr_literal, + fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp, false, BFD_RELOC_LARCH_B26); buf += 4; break; case RELAX_BRANCH_21: - fixp = fix_new_exp (fragp, buf - (bfd_byte *)fragp->fr_literal, + fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp, false, BFD_RELOC_LARCH_B21); buf += 4; break; case RELAX_BRANCH_16: - fixp = fix_new_exp (fragp, buf - (bfd_byte *)fragp->fr_literal, + fixp = fix_new_exp (fragp, buf - fragp->fr_literal, 4, &exp, false, BFD_RELOC_LARCH_B16); buf += 4; break; @@ -2341,8 +2340,7 @@ loongarch_convert_frag_branch (fragS *fragp) fixp->fx_file = fragp->fr_file; fixp->fx_line = fragp->fr_line; - gas_assert (buf == (bfd_byte *)fragp->fr_literal - + fragp->fr_fix + fragp->fr_var); + gas_assert (buf == fragp->fr_literal + fragp->fr_fix + fragp->fr_var); fragp->fr_fix += fragp->fr_var; } @@ -2352,7 +2350,7 @@ loongarch_convert_frag_branch (fragS *fragp) static void loongarch_convert_frag_align (fragS *fragp, asection *sec) { - bfd_byte *buf = (bfd_byte *)fragp->fr_literal + fragp->fr_fix; + char *buf = fragp->fr_literal + fragp->fr_fix; offsetT nop_bytes; if (NULL == fragp->fr_symbol) @@ -2371,7 +2369,7 @@ loongarch_convert_frag_align (fragS *fragp, asection *sec) exp.X_add_symbol = fragp->fr_symbol; exp.X_add_number = fragp->fr_offset; - fixS *fixp = fix_new_exp (fragp, buf - (bfd_byte *)fragp->fr_literal, + fixS *fixp = fix_new_exp (fragp, buf - fragp->fr_literal, nop_bytes, &exp, false, BFD_RELOC_LARCH_ALIGN); fixp->fx_file = fragp->fr_file; fixp->fx_line = fragp->fr_line; @@ -2379,8 +2377,7 @@ loongarch_convert_frag_align (fragS *fragp, asection *sec) buf += nop_bytes; } - gas_assert (buf == (bfd_byte *)fragp->fr_literal - + fragp->fr_fix + fragp->fr_var); + gas_assert (buf == fragp->fr_literal + fragp->fr_fix + fragp->fr_var); fragp->fr_fix += fragp->fr_var; } diff --git a/gas/config/tc-m32c.c b/gas/config/tc-m32c.c index 2eddf16..ff91d47 100644 --- a/gas/config/tc-m32c.c +++ b/gas/config/tc-m32c.c @@ -380,7 +380,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * @@ -845,7 +845,7 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, long md_pcrel_from_section (fixS * fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (! S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) /* The symbol is undefined (or is defined but not in this section). @@ -1136,9 +1136,9 @@ m32c_fix_adjustable (fixS * fixP) /* We need the symbol name for the VTABLE entries. */ reloc = fixP->fx_r_type; - if (reloc > (int)BFD_RELOC_UNUSED) + if (reloc > BFD_RELOC_UNUSED) { - reloc -= (int)BFD_RELOC_UNUSED; + reloc -= BFD_RELOC_UNUSED; switch (reloc) { case M32C_OPERAND_DSP_32_S16: diff --git a/gas/config/tc-m32r.c b/gas/config/tc-m32r.c index ba03818..2368c9a 100644 --- a/gas/config/tc-m32r.c +++ b/gas/config/tc-m32r.c @@ -35,7 +35,7 @@ typedef struct sym_link symbolS *symbol; } sym_linkS; -static sym_linkS *debug_sym_link = (sym_linkS *) 0; +static sym_linkS *debug_sym_link = NULL; /* Structure to hold all of the different components describing an individual instruction. */ @@ -609,13 +609,13 @@ expand_debug_syms (sym_linkS *syms, int align) return; (void) frag_align_code (align, 0); - for (; syms != (sym_linkS *) 0; syms = next_syms) + for (; syms != NULL; syms = next_syms) { symbolS *symbolP = syms->symbol; next_syms = syms->next; input_line_pointer = (char *) ".\n"; pseudo_set (symbolP); - free ((char *) syms); + free (syms); } input_line_pointer = save_input_line; @@ -627,7 +627,7 @@ m32r_flush_pending_output (void) if (debug_sym_link) { expand_debug_syms (debug_sym_link, 1); - debug_sym_link = (sym_linkS *) 0; + debug_sym_link = NULL; } } @@ -653,7 +653,7 @@ m32r_fill_insn (int done) if (done && debug_sym_link) { expand_debug_syms (debug_sym_link, 1); - debug_sym_link = (sym_linkS *) 0; + debug_sym_link = NULL; } return 1; @@ -911,7 +911,7 @@ assemble_two_insns (char *str1, char *str2, int parallel_p) fill_insn (0); first.debug_sym_link = debug_sym_link; - debug_sym_link = (sym_linkS *) 0; + debug_sym_link = NULL; /* Parse the first instruction. */ if (! (first.insn = m32r_cgen_assemble_insn @@ -1215,7 +1215,7 @@ md_assemble (char *str) } insn.debug_sym_link = debug_sym_link; - debug_sym_link = (sym_linkS *) 0; + debug_sym_link = NULL; insn.insn = m32r_cgen_assemble_insn (gas_cgen_cpu_desc, str, &insn.fields, insn.buffer, & errmsg); @@ -1451,7 +1451,7 @@ md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * @@ -1572,8 +1572,7 @@ m32r_scomm (int ignore ATTRIBUTE_UNUSED) symbol_set_frag (symbolP, frag_now); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, size, - (char *) 0); + pfrag = frag_var (rs_org, 1, 1, 0, symbolP, size, NULL); *pfrag = 0; S_SET_SIZE (symbolP, size); S_SET_SEGMENT (symbolP, sbss_section); @@ -1582,7 +1581,7 @@ m32r_scomm (int ignore ATTRIBUTE_UNUSED) } else { - S_SET_VALUE (symbolP, (valueT) size); + S_SET_VALUE (symbolP, size); S_SET_ALIGN (symbolP, align2); S_SET_EXTERNAL (symbolP); S_SET_SEGMENT (symbolP, &scom_section); @@ -1838,7 +1837,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, long md_pcrel_from_section (fixS *fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (! S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec || S_IS_EXTERNAL (fixP->fx_addsy) @@ -2129,10 +2128,10 @@ m32r_fix_adjustable (fixS *fixP) { bfd_reloc_code_real_type reloc_type; - if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + if (fixP->fx_r_type >= BFD_RELOC_UNUSED) { const CGEN_INSN *insn = NULL; - int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + int opindex = fixP->fx_r_type - BFD_RELOC_UNUSED; const CGEN_OPERAND *operand = cgen_operand_lookup_by_num(gas_cgen_cpu_desc, opindex); diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c index 6950c57..a9ac9c7 100644 --- a/gas/config/tc-m68hc11.c +++ b/gas/config/tc-m68hc11.c @@ -583,7 +583,7 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } static int @@ -989,7 +989,7 @@ print_opcode_list (void) printf ("\n"); printf ("%-5.5s ", opcodes->name); - prev_name = (char *) opcodes->name; + prev_name = opcodes->name; } if (fmt[0]) printf (" [%s]", fmt); @@ -1934,9 +1934,8 @@ build_jump_insn (struct m68hc11_opcode *opcode, operand operands[], number_to_chars_bigendian (op, code, 1); number_to_chars_bigendian (op + 1, 0, 1); frag_variant (rs_machine_dependent, 1, 1, - ENCODE_RELAX (STATE_PC_RELATIVE, STATE_UNDF), - operands[0].exp.X_add_symbol, (offsetT) n, - op); + ENCODE_RELAX (STATE_PC_RELATIVE, STATE_UNDF), + operands[0].exp.X_add_symbol, n, op); } else if (current_architecture & cpu6812) { @@ -1945,7 +1944,7 @@ build_jump_insn (struct m68hc11_opcode *opcode, operand operands[], number_to_chars_bigendian (op + 1, 0, 1); frag_var (rs_machine_dependent, 2, 2, ENCODE_RELAX (STATE_CONDITIONAL_BRANCH_6812, STATE_UNDF), - operands[0].exp.X_add_symbol, (offsetT) n, op); + operands[0].exp.X_add_symbol, n, op); } else { @@ -1954,7 +1953,7 @@ build_jump_insn (struct m68hc11_opcode *opcode, operand operands[], number_to_chars_bigendian (op + 1, 0, 1); frag_var (rs_machine_dependent, 3, 3, ENCODE_RELAX (STATE_CONDITIONAL_BRANCH, STATE_UNDF), - operands[0].exp.X_add_symbol, (offsetT) n, op); + operands[0].exp.X_add_symbol, n, op); } } } @@ -2044,7 +2043,7 @@ build_dbranch_insn (struct m68hc11_opcode *opcode, operand operands[], number_to_chars_bigendian (f + 1, 0, 1); frag_var (rs_machine_dependent, 3, 3, ENCODE_RELAX (STATE_XBCC_BRANCH, STATE_UNDF), - operands[1].exp.X_add_symbol, (offsetT) n, f); + operands[1].exp.X_add_symbol, n, f); } } } @@ -3836,7 +3835,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) reloc->howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_16); else reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixp->fx_file, fixp->fx_line, _("Relocation %d is not supported by object file format."), @@ -4327,11 +4326,11 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) char *where; long value = * valP; - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; /* We don't actually support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); /* Patch the instruction with the resolved operand. Elf relocation @@ -4348,19 +4347,19 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) switch (fixP->fx_r_type) { case BFD_RELOC_32: - bfd_putb32 ((bfd_vma) value, (unsigned char *) where); + bfd_putb32 (value, where); break; case BFD_RELOC_24: case BFD_RELOC_M68HC11_24: - bfd_putb16 ((bfd_vma) (value & 0x0ffff), (unsigned char *) where); - ((bfd_byte*) where)[2] = ((value >> 16) & 0x0ff); + bfd_putb16 (value & 0x0ffff, where); + where[2] = (value >> 16) & 0xff; break; case BFD_RELOC_16: case BFD_RELOC_16_PCREL: case BFD_RELOC_M68HC11_LO16: - bfd_putb16 ((bfd_vma) value, (unsigned char *) where); + bfd_putb16 (value, where); if (value < -65537 || value > 65535) as_bad_where (fixP->fx_file, fixP->fx_line, _("Value out of 16-bit range.")); @@ -4377,11 +4376,11 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) case BFD_RELOC_M68HC11_LO8: case BFD_RELOC_8: case BFD_RELOC_M68HC11_PAGE: - ((bfd_byte *) where)[0] = (bfd_byte) value; + where[0] = value & 0xff; break; case BFD_RELOC_8_PCREL: - ((bfd_byte *) where)[0] = (bfd_byte) value; + where[0] = value & 0xff; if (value < -128 || value > 127) as_bad_where (fixP->fx_file, fixP->fx_line, @@ -4391,8 +4390,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) /* These next two are for XGATE. */ case BFD_RELOC_M68HC12_9_PCREL: - ((bfd_byte *) where)[0] |= (bfd_byte) ((value >>9) & 0x01); - ((bfd_byte *) where)[1] = (bfd_byte) ((value>>1) & 0xff); + where[0] |= (value >> 9) & 0x01; + where[1] = (value >> 1) & 0xff; if (value < -512 || value > 511) as_bad_where (fixP->fx_file, fixP->fx_line, _("Value %ld too large for 9-bit PC-relative branch."), @@ -4400,8 +4399,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) break; case BFD_RELOC_M68HC12_10_PCREL: - ((bfd_byte *) where)[0] |= (bfd_byte) ((value >>9) & 0x03); - ((bfd_byte *) where)[1] = (bfd_byte) ((value>>1) & 0xff); + where[0] |= (value >> 9) & 0x03; + where[1] = (value>> 1) & 0xff; if (value < -1024 || value > 1023) as_bad_where (fixP->fx_file, fixP->fx_line, _("Value %ld too large for 10-bit PC-relative branch."), diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c index 510a1bc..e5c8f5c 100644 --- a/gas/config/tc-m68k.c +++ b/gas/config/tc-m68k.c @@ -4410,7 +4410,7 @@ md_assemble (char *str) fixP->fx_pcrel_adjust = the_ins.reloc[m].pcrel_fix; } (void) frag_var (rs_machine_dependent, FRAG_VAR_SIZE, 0, - (relax_substateT) (the_ins.fragb[n].fragty), + the_ins.fragb[n].fragty, the_ins.fragb[n].fadd, the_ins.fragb[n].foff, to_beg_P); } gas_assert (the_ins.nfrag >= 1); @@ -6417,7 +6417,7 @@ parse_mri_control_expression (char *stop, int qual, const char *truelab, flab = mri_control_label (); build_mri_control_operand (qual, cc, leftstart, leftstop, rightstart, - rightstop, (const char *) NULL, flab, extent); + rightstop, NULL, flab, extent); input_line_pointer += 3; if (*input_line_pointer != '.' @@ -6452,7 +6452,7 @@ parse_mri_control_expression (char *stop, int qual, const char *truelab, tlab = mri_control_label (); build_mri_control_operand (qual, cc, leftstart, leftstop, rightstart, - rightstop, tlab, (const char *) NULL, extent); + rightstop, tlab, NULL, extent); input_line_pointer += 2; if (*input_line_pointer != '.' @@ -6554,7 +6554,7 @@ s_mri_if (int qual) n = push_mri_control (mri_if); - parse_mri_control_expression (s - 3, qual, (const char *) NULL, + parse_mri_control_expression (s - 3, qual, NULL, n->next, s[1] == '.' ? s[2] : '\0'); if (s[1] == '.') @@ -7043,7 +7043,7 @@ s_mri_until (int qual) for (s = input_line_pointer; ! is_end_of_stmt (*s); s++) ; - parse_mri_control_expression (s, qual, (const char *) NULL, + parse_mri_control_expression (s, qual, NULL, mri_control_stack->top, '\0'); colon (mri_control_stack->bottom); @@ -7100,7 +7100,7 @@ s_mri_while (int qual) colon (n->next); - parse_mri_control_expression (s - 1, qual, (const char *) NULL, n->bottom, + parse_mri_control_expression (s - 1, qual, NULL, n->bottom, s[1] == '.' ? s[2] : '\0'); input_line_pointer = s + 1; @@ -7333,7 +7333,7 @@ m68k_set_extension (char const *name, int allow_m, int silent) if (negated) not_current_architecture |= (ext->control_regs - ? *(unsigned *)ext->control_regs: ext->arch); + ? *ext->control_regs: ext->arch); else current_architecture |= ext->arch; return 1; @@ -7904,7 +7904,7 @@ m68k_elf_cons (int nbytes /* 4=.long */) } } else - emit_expr (&exp, (unsigned int) nbytes); + emit_expr (&exp, nbytes); } while (*input_line_pointer++ == ','); diff --git a/gas/config/tc-mcore.c b/gas/config/tc-mcore.c index 8688bfa..f20f0d3 100644 --- a/gas/config/tc-mcore.c +++ b/gas/config/tc-mcore.c @@ -2139,7 +2139,7 @@ md_pcrel_from_section (fixS * fixp, segT sec ATTRIBUTE_UNUSED) /* If the symbol is undefined or defined in another section we leave the add number alone for the linker to fix it later. Only account for the PC pre-bump (which is 2 bytes on the MCore). */ - if (fixp->fx_addsy != (symbolS *) NULL + if (fixp->fx_addsy != NULL && (! S_IS_DEFINED (fixp->fx_addsy) || (S_GET_SEGMENT (fixp->fx_addsy) != sec))) diff --git a/gas/config/tc-mep.c b/gas/config/tc-mep.c index 5e53421..1469186 100644 --- a/gas/config/tc-mep.c +++ b/gas/config/tc-mep.c @@ -1381,7 +1381,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } @@ -1807,7 +1807,7 @@ mep_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) long md_pcrel_from_section (fixS *fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (! S_IS_DEFINED (fixP->fx_addsy) || S_IS_WEAK (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) @@ -2051,10 +2051,10 @@ mep_fix_adjustable (fixS *fixP) { bfd_reloc_code_real_type reloc_type; - if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + if (fixP->fx_r_type >= BFD_RELOC_UNUSED) { const CGEN_INSN *insn = NULL; - int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + int opindex = fixP->fx_r_type - BFD_RELOC_UNUSED; const CGEN_OPERAND *operand = cgen_operand_lookup_by_num(gas_cgen_cpu_desc, opindex); reloc_type = md_cgen_lookup_reloc (insn, operand, fixP); diff --git a/gas/config/tc-metag.c b/gas/config/tc-metag.c index bb8e897..968c88d 100644 --- a/gas/config/tc-metag.c +++ b/gas/config/tc-metag.c @@ -267,7 +267,7 @@ parse_gp_reg (const char *name) entry.name = name; - reg = (const metag_reg *) htab_find (reg_htab, &entry); + reg = htab_find (reg_htab, &entry); return reg; } @@ -4112,7 +4112,7 @@ __parse_dsp_reg (const char *line, const metag_reg **reg, htab_t dsp_regtab) name[len] = '\0'; entry.name = name; - _reg = (const metag_reg *) htab_find (dsp_regtab, &entry); + _reg = htab_find (dsp_regtab, &entry); if (!_reg) return NULL; @@ -6003,7 +6003,7 @@ parse_split_condition (const char *line, metag_insn *insn) entry.name = buf; - scond = (const split_condition *) htab_find (scond_htab, &entry); + scond = htab_find (scond_htab, &entry); if (!scond) return NULL; @@ -6263,10 +6263,9 @@ find_insn_templates (const char *mnemonic) insn_templates *slot; entry.template = &template; + template.name = mnemonic; - memcpy ((void *)&entry.template->name, &mnemonic, sizeof (char *)); - - slot = (insn_templates *) htab_find (mnemonic_htab, &entry); + slot = htab_find (mnemonic_htab, &entry); if (slot) return slot; @@ -6307,8 +6306,8 @@ hash_templates (const void *p) static int eq_templates (const void *a, const void *b) { - insn_templates *ta = (insn_templates *)a; - insn_templates *tb = (insn_templates *)b; + const insn_templates *ta = a; + const insn_templates *tb = b; return strcasecmp (ta->template->name, tb->template->name) == 0; } @@ -6324,7 +6323,7 @@ create_mnemonic_htab (void) for (i = 0; i < num_templates; i++) { const insn_template *template = &metag_optab[i]; - insn_templates **slot = NULL; + void **slot; insn_templates *new_entry; new_entry = XNEW (insn_templates); @@ -6332,8 +6331,7 @@ create_mnemonic_htab (void) new_entry->template = template; new_entry->next = NULL; - slot = (insn_templates **) htab_find_slot (mnemonic_htab, new_entry, - INSERT); + slot = htab_find_slot (mnemonic_htab, new_entry, INSERT); if (*slot) { @@ -6355,7 +6353,7 @@ create_mnemonic_htab (void) static hashval_t hash_regs (const void *p) { - metag_reg *rp = (metag_reg *)p; + const metag_reg *rp = p; char buf[MAX_REG_LEN]; strupper (buf, rp->name); @@ -6367,8 +6365,8 @@ hash_regs (const void *p) static int eq_regs (const void *a, const void *b) { - metag_reg *ra = (metag_reg *)a; - metag_reg *rb = (metag_reg *)b; + const metag_reg *ra = a; + const metag_reg *rb = b; return strcasecmp (ra->name, rb->name) == 0; } @@ -6457,8 +6455,8 @@ hash_scond (const void *p) static int eq_scond (const void *a, const void *b) { - split_condition *ra = (split_condition *)a; - split_condition *rb = (split_condition *)b; + const split_condition *ra = a; + const split_condition *rb = b; return strcasecmp (ra->name, rb->name) == 0; } @@ -6738,8 +6736,7 @@ md_atof (int type, char * litP, int * sizeP) for (i = 0; i < prec; i++) { - md_number_to_chars (litP, (valueT) words[i], - sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, words[i], sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c index 917b8f6..055d9ee 100644 --- a/gas/config/tc-microblaze.c +++ b/gas/config/tc-microblaze.c @@ -244,8 +244,7 @@ microblaze_s_lcomm (int xxx ATTRIBUTE_UNUSED) if (S_GET_SEGMENT (symbolP) == current_seg) symbol_get_frag (symbolP)->fr_symbol = 0; symbol_set_frag (symbolP, frag_now); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, size, - (char *) 0); + pfrag = frag_var (rs_org, 1, 1, 0, symbolP, size, NULL); *pfrag = 0; S_SET_SIZE (symbolP, size); S_SET_SEGMENT (symbolP, current_seg); @@ -485,7 +484,7 @@ parse_reg (char * s, unsigned * reg) } else as_bad (_("register expected, but saw '%.6s'"), s); - if ((int) tmpreg >= MIN_PVR_REGNUM && tmpreg <= MAX_PVR_REGNUM) + if (tmpreg - MIN_PVR_REGNUM <= MAX_PVR_REGNUM - MIN_PVR_REGNUM) *reg = REG_PVR + tmpreg; else { @@ -514,7 +513,7 @@ parse_reg (char * s, unsigned * reg) else as_bad (_("register expected, but saw '%.6s'"), s); - if ((int) tmpreg >= MIN_REGNUM && tmpreg <= MAX_REGNUM) + if (tmpreg - MIN_REGNUM <= MAX_REGNUM - MIN_REGNUM) *reg = tmpreg; else { @@ -551,7 +550,7 @@ parse_reg (char * s, unsigned * reg) else as_bad (_("register expected, but saw '%.6s'"), s); - if ((int)tmpreg >= MIN_REGNUM && tmpreg <= MAX_REGNUM) + if (tmpreg - MIN_REGNUM <= MAX_REGNUM - MIN_REGNUM) *reg = tmpreg; else { @@ -1873,17 +1872,15 @@ md_atof (int type, char * litP, int * sizeP) { for (i = prec - 1; i >= 0; i--) { - md_number_to_chars (litP, (valueT) words[i], - sizeof (LITTLENUM_TYPE)); - litP += sizeof (LITTLENUM_TYPE); + md_number_to_chars (litP, words[i], sizeof (LITTLENUM_TYPE)); + litP += sizeof (LITTLENUM_TYPE); } } else for (i = 0; i < prec; i++) { - md_number_to_chars (litP, (valueT) words[i], - sizeof (LITTLENUM_TYPE)); - litP += sizeof (LITTLENUM_TYPE); + md_number_to_chars (litP, words[i], sizeof (LITTLENUM_TYPE)); + litP += sizeof (LITTLENUM_TYPE); } return NULL; @@ -2445,7 +2442,7 @@ md_pcrel_from_section (fixS * fixp, segT sec ATTRIBUTE_UNUSED) we leave the add number alone for the linker to fix it later. Only account for the PC pre-bump (No PC-pre-bump on the Microblaze). */ - if (fixp->fx_addsy != (symbolS *) NULL + if (fixp->fx_addsy != NULL && (!S_IS_DEFINED (fixp->fx_addsy) || (S_GET_SEGMENT (fixp->fx_addsy) != sec))) return 0; diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 5e602a4..9134cef 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -1135,8 +1135,7 @@ static bool mips_ignore_branch_isa; but it's not clear that it would actually improve performance. */ #define RELAX_BRANCH_ENCODE(at, pic, \ uncond, likely, link, toofar) \ - ((relax_substateT) \ - (0xc0000000 \ + ((0xc0000000 \ | ((at) & 0x1f) \ | ((pic) ? 0x20 : 0) \ | ((toofar) ? 0x40 : 0) \ @@ -2407,9 +2406,9 @@ static unsigned long read_insn (char *buf) { if (target_big_endian) - return bfd_getb32 ((bfd_byte *) buf); + return bfd_getb32 (buf); else - return bfd_getl32 ((bfd_byte *) buf); + return bfd_getl32 (buf); } /* Write standard MIPS instruction INSN to BUF. Return a pointer to @@ -2436,9 +2435,9 @@ read_compressed_insn (char *buf, unsigned int length) { insn <<= 16; if (target_big_endian) - insn |= bfd_getb16 ((char *) buf); + insn |= bfd_getb16 (buf); else - insn |= bfd_getl16 ((char *) buf); + insn |= bfd_getl16 (buf); buf += 2; } return insn; @@ -2617,7 +2616,7 @@ set_insn_error_ss (int argnum, const char *msg, const char *s1, const char *s2) static void report_insn_error (const char *str) { - const char *msg = concat (insn_error.msg, " `%s'", NULL); + const char *msg = concat (insn_error.msg, " `%s'", (const char *) NULL); switch (insn_error.format) { @@ -3384,7 +3383,7 @@ mips_parse_arguments (char *s, char float_format) SKIP_SPACE_TABS (s); } mips_add_token (&token, OT_END); - return (struct mips_operand_token *) obstack_finish (&mips_operand_tokens); + return obstack_finish (&mips_operand_tokens); } /* Return TRUE if opcode MO is valid on the currently selected ISA, ASE @@ -3881,7 +3880,7 @@ md_begin (void) if (mips_abi != N64_ABI) { - sec = subseg_new (".reginfo", (subsegT) 0); + sec = subseg_new (".reginfo", 0); bfd_set_section_flags (sec, flags); bfd_set_section_alignment (sec, HAVE_NEWABI ? 3 : 2); @@ -3892,7 +3891,7 @@ md_begin (void) { /* The 64-bit ABI uses a .MIPS.options section rather than .reginfo section. */ - sec = subseg_new (".MIPS.options", (subsegT) 0); + sec = subseg_new (".MIPS.options", 0); bfd_set_section_flags (sec, flags); bfd_set_section_alignment (sec, 3); @@ -3914,7 +3913,7 @@ md_begin (void) } } - sec = subseg_new (".MIPS.abiflags", (subsegT) 0); + sec = subseg_new (".MIPS.abiflags", 0); bfd_set_section_flags (sec, SEC_READONLY | SEC_DATA | SEC_ALLOC | SEC_LOAD); bfd_set_section_alignment (sec, 3); @@ -3922,13 +3921,13 @@ md_begin (void) if (ECOFF_DEBUGGING) { - sec = subseg_new (".mdebug", (subsegT) 0); + sec = subseg_new (".mdebug", 0); bfd_set_section_flags (sec, SEC_HAS_CONTENTS | SEC_READONLY); bfd_set_section_alignment (sec, 2); } else if (mips_flag_pdr) { - pdr_seg = subseg_new (".pdr", (subsegT) 0); + pdr_seg = subseg_new (".pdr", 0); bfd_set_section_flags (pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING); bfd_set_section_alignment (pdr_seg, 2); @@ -6170,7 +6169,7 @@ match_float_constant (struct mips_arg_info *arg, expressionS *imm, newname = ".lit8"; } - new_seg = subseg_new (newname, (subsegT) 0); + new_seg = subseg_new (newname, 0); bfd_set_section_flags (new_seg, SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_DATA); frag_align (length == 4 ? 2 : 3, 0, 0); @@ -7728,17 +7727,16 @@ append_insn (struct mips_cl_insn *ip, expressionS *address_expr, && delayed_branch_p (ip)) { relaxed_branch = true; - add_relaxed_insn (ip, (relaxed_branch_length - (NULL, NULL, - uncond_branch_p (ip) ? -1 - : branch_likely_p (ip) ? 1 - : 0)), 4, - RELAX_BRANCH_ENCODE - (AT, mips_pic != NO_PIC, - uncond_branch_p (ip), - branch_likely_p (ip), - pinfo & INSN_WRITE_GPR_31, - 0), + add_relaxed_insn (ip, + relaxed_branch_length (NULL, NULL, + uncond_branch_p (ip) ? -1 + : branch_likely_p (ip) ? 1 + : 0), + 4, + RELAX_BRANCH_ENCODE (AT, mips_pic != NO_PIC, + uncond_branch_p (ip), + branch_likely_p (ip), + pinfo & INSN_WRITE_GPR_31, 0), address_expr->X_add_symbol, address_expr->X_add_number); *reloc_type = BFD_RELOC_UNUSED; @@ -7814,15 +7812,15 @@ append_insn (struct mips_cl_insn *ip, expressionS *address_expr, offset = 0; } add_relaxed_insn (ip, 12, 0, - RELAX_MIPS16_ENCODE - (*reloc_type - BFD_RELOC_UNUSED, - mips_opts.ase & ASE_MIPS16E2, - mips_pic != NO_PIC, - HAVE_32BIT_SYMBOLS, - mips_opts.warn_about_macros, - require_unextended, require_extended, - delayed_branch_p (&history[0]), - history[0].mips16_absolute_jump_p), + RELAX_MIPS16_ENCODE (*reloc_type - BFD_RELOC_UNUSED, + mips_opts.ase & ASE_MIPS16E2, + mips_pic != NO_PIC, + HAVE_32BIT_SYMBOLS, + mips_opts.warn_about_macros, + require_unextended, + require_extended, + delayed_branch_p (&history[0]), + history[0].mips16_absolute_jump_p), symbol, offset); } else if (mips_opts.mips16 && insn_length (ip) == 2) @@ -8438,7 +8436,7 @@ match_insn (struct mips_cl_insn *insn, const struct mips_opcode *opcode, case 'D': case 'E': if (!forced_insn_length) - *offset_reloc = (int) BFD_RELOC_UNUSED + c; + *offset_reloc = BFD_RELOC_UNUSED + c; else if (c == 'D') *offset_reloc = BFD_RELOC_MICROMIPS_10_PCREL_S1; else @@ -8566,7 +8564,7 @@ match_mips16_insn (struct mips_cl_insn *insn, const struct mips_opcode *opcode, } } else if (relax_char) - *offset_reloc = (int) BFD_RELOC_UNUSED + relax_char; + *offset_reloc = BFD_RELOC_UNUSED + relax_char; check_completed_insn (&arg); return true; @@ -8988,11 +8986,11 @@ macro_read_relocs (va_list *args, bfd_reloc_code_real_type *r) next = va_arg (*args, int); if (next >= 0) - r[0] = (bfd_reloc_code_real_type) next; + r[0] = next; else { for (i = 0; i < 3; i++) - r[i] = (bfd_reloc_code_real_type) va_arg (*args, int); + r[i] = va_arg (*args, int); /* This function is only used for 16-bit relocation fields. To make the macro code simpler, treat an unrelocated value in the same way as BFD_RELOC_LO16. */ @@ -9240,7 +9238,7 @@ mips16_macro_build (expressionS *ep, const char *name, const char *fmt, gas_assert (ep != NULL); if (ep->X_op != O_constant) - *r = (int) BFD_RELOC_UNUSED + c; + *r = BFD_RELOC_UNUSED + c; else if (calculate_reloc (*r, ep->X_add_number, &value)) { mips16_immed (NULL, 0, c, *r, value, 0, &insn.insn_opcode); @@ -11120,7 +11118,7 @@ macro (struct mips_cl_insn *ip, char *str) } else if (!mips_big_got && !HAVE_NEWABI) { - int lw_reloc_type = (int) BFD_RELOC_MIPS_GOT16; + int lw_reloc_type = BFD_RELOC_MIPS_GOT16; /* If this is a reference to an external symbol, and there is no constant, we want @@ -11157,7 +11155,7 @@ macro (struct mips_cl_insn *ip, char *str) if (mips_pic == SVR4_PIC && breg == 0 && (call || tempreg == PIC_CALL_REG)) - lw_reloc_type = (int) BFD_RELOC_MIPS_CALL16; + lw_reloc_type = BFD_RELOC_MIPS_CALL16; relax_start (offset_expr.X_add_symbol); macro_build (&offset_expr, ADDRESS_LOAD_INSN, "t,o(b)", tempreg, @@ -11319,9 +11317,9 @@ macro (struct mips_cl_insn *ip, char *str) else if (mips_big_got && !HAVE_NEWABI) { int gpdelay; - int lui_reloc_type = (int) BFD_RELOC_MIPS_GOT_HI16; - int lw_reloc_type = (int) BFD_RELOC_MIPS_GOT_LO16; - int local_reloc_type = (int) BFD_RELOC_MIPS_GOT16; + int lui_reloc_type = BFD_RELOC_MIPS_GOT_HI16; + int lw_reloc_type = BFD_RELOC_MIPS_GOT_LO16; + int local_reloc_type = BFD_RELOC_MIPS_GOT16; /* This is the large GOT case. If this is a reference to an external symbol, and there is no constant, we want @@ -11371,8 +11369,8 @@ macro (struct mips_cl_insn *ip, char *str) if (expr1.X_add_number == 0 && breg == 0 && (call || tempreg == PIC_CALL_REG)) { - lui_reloc_type = (int) BFD_RELOC_MIPS_CALL_HI16; - lw_reloc_type = (int) BFD_RELOC_MIPS_CALL_LO16; + lui_reloc_type = BFD_RELOC_MIPS_CALL_HI16; + lw_reloc_type = BFD_RELOC_MIPS_CALL_LO16; } macro_build (&offset_expr, "lui", LUI_FMT, tempreg, lui_reloc_type); macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t", @@ -11474,8 +11472,8 @@ macro (struct mips_cl_insn *ip, char *str) } else if (mips_big_got && HAVE_NEWABI) { - int lui_reloc_type = (int) BFD_RELOC_MIPS_GOT_HI16; - int lw_reloc_type = (int) BFD_RELOC_MIPS_GOT_LO16; + int lui_reloc_type = BFD_RELOC_MIPS_GOT_HI16; + int lw_reloc_type = BFD_RELOC_MIPS_GOT_LO16; int add_breg_early = 0; /* This is the large GOT case. If this is a reference to an @@ -11517,8 +11515,8 @@ macro (struct mips_cl_insn *ip, char *str) if (expr1.X_add_number == 0 && breg == 0 && (call || tempreg == PIC_CALL_REG)) { - lui_reloc_type = (int) BFD_RELOC_MIPS_CALL_HI16; - lw_reloc_type = (int) BFD_RELOC_MIPS_CALL_LO16; + lui_reloc_type = BFD_RELOC_MIPS_CALL_HI16; + lw_reloc_type = BFD_RELOC_MIPS_CALL_LO16; } macro_build (&offset_expr, "lui", LUI_FMT, tempreg, lui_reloc_type); macro_build (NULL, ADDRESS_ADD_INSN, "d,v,t", @@ -12532,7 +12530,7 @@ macro (struct mips_cl_insn *ip, char *str) } else if (!mips_big_got) { - int lw_reloc_type = (int) BFD_RELOC_MIPS_GOT16; + int lw_reloc_type = BFD_RELOC_MIPS_GOT16; /* If this is a reference to an external symbol, we want lw $tempreg,<sym>($gp) (BFD_RELOC_MIPS_GOT16) @@ -16228,7 +16226,7 @@ get_symbol (void) symbolS *p; c = get_symbol_name (&name); - p = (symbolS *) symbol_find_or_make (name); + p = symbol_find_or_make (name); (void) restore_line_pointer (c); return p; } @@ -16338,13 +16336,12 @@ s_change_sec (int sec) s_data (0); break; case 'b': - subseg_set (bss_section, (subsegT) get_absolute_expression ()); + subseg_set (bss_section, get_absolute_expression ()); demand_empty_rest_of_line (); break; case 'r': - seg = subseg_new (RDATA_SECTION_NAME, - (subsegT) get_absolute_expression ()); + seg = subseg_new (RDATA_SECTION_NAME, get_absolute_expression ()); bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA)); if (!startswith (TARGET_OS, "elf")) @@ -16353,7 +16350,7 @@ s_change_sec (int sec) break; case 's': - seg = subseg_new (".sdata", (subsegT) get_absolute_expression ()); + seg = subseg_new (".sdata", get_absolute_expression ()); bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA | SEC_SMALL_DATA)); if (!startswith (TARGET_OS, "elf")) @@ -16362,7 +16359,7 @@ s_change_sec (int sec) break; case 'B': - seg = subseg_new (".sbss", (subsegT) get_absolute_expression ()); + seg = subseg_new (".sbss", get_absolute_expression ()); bfd_set_section_flags (seg, SEC_ALLOC | SEC_SMALL_DATA); if (!startswith (TARGET_OS, "elf")) record_alignment (seg, 4); @@ -17632,7 +17629,7 @@ md_section_align (asection *seg, valueT addr) if (align > 4) align = 4; - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* Utility routine, called from above as well. If called while the @@ -17657,7 +17654,7 @@ nopic_need_relax (symbolS *sym, int before_relaxing) not be referenced off the $gp, although it appears as though they can. */ symname = S_GET_NAME (sym); - if (symname != (const char *) NULL + if (symname != NULL && (strcmp (symname, "eprol") == 0 || strcmp (symname, "etext") == 0 || strcmp (symname, "_gp") == 0 @@ -19916,7 +19913,7 @@ s_mips_frame (int ignore ATTRIBUTE_UNUSED) { long val; - if (cur_proc_ptr == (procS *) NULL) + if (cur_proc_ptr == NULL) { as_warn (_(".frame outside of .ent")); demand_empty_rest_of_line (); @@ -19957,7 +19954,7 @@ s_mips_mask (int reg_type) { long mask, off; - if (cur_proc_ptr == (procS *) NULL) + if (cur_proc_ptr == NULL) { as_warn (_(".mask/.fmask outside of .ent")); demand_empty_rest_of_line (); diff --git a/gas/config/tc-mmix.c b/gas/config/tc-mmix.c index dea9181..88b7bc4 100644 --- a/gas/config/tc-mmix.c +++ b/gas/config/tc-mmix.c @@ -504,7 +504,7 @@ get_operands (int max_operands, char *s, expressionS *exp) /* Mark the end of the valid operands with an illegal expression. */ exp[numexp].X_op = O_illegal; - return (numexp); + return numexp; } /* Get the value of a special register, or -1 if the name does not match @@ -1912,7 +1912,7 @@ mmix_assemble_return_nonzero (char *str) /* Normal instruction handling downcases, so we must too. */ while (ISALNUM (*s2)) { - if (ISUPPER ((unsigned char) *s2)) + if (ISUPPER (*s2)) *s2 = TOLOWER (*s2); s2++; } @@ -2489,8 +2489,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT segment) case BFD_RELOC_MMIX_PUSHJ_STUBBABLE: /* If this fixup is out of range, punt to the linker to emit an error. This should only happen with -no-expand. */ - if (val < -(((offsetT) 1 << 19)/2) - || val >= ((offsetT) 1 << 19)/2 - 1 + if (val < -((1 << 19) / 2) + || val >= (1 << 19) / 2 - 1 || (val & 3) != 0) { if (warn_on_expansion) @@ -2513,8 +2513,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT segment) case BFD_RELOC_MMIX_JMP: /* If this fixup is out of range, punt to the linker to emit an error. This should only happen with -no-expand. */ - if (val < -(((offsetT) 1 << 27)/2) - || val >= ((offsetT) 1 << 27)/2 - 1 + if (val < -((1 << 27) / 2) + || val >= (1 << 27) / 2 - 1 || (val & 3) != 0) { if (warn_on_expansion) @@ -2773,7 +2773,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP) && (bfd_vma) val + 256 > lowest_data_loc && bfd_is_abs_section (addsec)) { - val -= (offsetT) lowest_data_loc; + val -= lowest_data_loc; addsy = section_symbol (data_section); } /* Likewise text section. */ @@ -2781,7 +2781,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP) && (bfd_vma) val + 256 > lowest_text_loc && bfd_is_abs_section (addsec)) { - val -= (offsetT) lowest_text_loc; + val -= lowest_text_loc; addsy = section_symbol (text_section); } } @@ -3282,7 +3282,7 @@ mmix_force_relocation (fixS *fixP) long md_pcrel_from_section (fixS *fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (! S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) { @@ -3437,9 +3437,8 @@ mmix_md_relax_frag (segT seg, fragS *fragP, long stretch) if (fragP == seginfo->tc_segment_info_data.last_stubfrag) seginfo->tc_segment_info_data.nstubs = 0; - return - (mmix_relax_table[fragP->fr_subtype].rlx_length - - mmix_relax_table[prev_type].rlx_length); + return (mmix_relax_table[fragP->fr_subtype].rlx_length + - mmix_relax_table[prev_type].rlx_length); } case ENCODE_RELAX (STATE_PUSHJ, STATE_MAX): @@ -3634,7 +3633,7 @@ mmix_md_finish (void) if (! merge_gregs) continue; - osymval = (offsetT) S_GET_VALUE (symbolP); + osymval = S_GET_VALUE (symbolP); osymfrag = symbol_get_frag (symbolP); /* If the symbol isn't defined, we can't say that another symbol @@ -3686,10 +3685,8 @@ mmix_md_finish (void) static int cmp_greg_symbol_fixes (const void *parg, const void *qarg) { - const struct mmix_symbol_greg_fixes *p - = (const struct mmix_symbol_greg_fixes *) parg; - const struct mmix_symbol_greg_fixes *q - = (const struct mmix_symbol_greg_fixes *) qarg; + const struct mmix_symbol_greg_fixes *p = parg; + const struct mmix_symbol_greg_fixes *q = qarg; return p->offs > q->offs ? 1 : p->offs < q->offs ? -1 : 0; } @@ -3727,7 +3724,7 @@ mmix_frob_file (void) } sym = fixP->fx_addsy; - offs = (offsetT) fixP->fx_offset; + offs = fixP->fx_offset; /* If the symbol is defined, then it must be resolved to a section symbol at this time, or else we don't know how to handle it. */ @@ -3750,7 +3747,7 @@ mmix_frob_file (void) && (bfd_vma) offs + 256 > lowest_data_loc && bfd_is_abs_section (S_GET_SEGMENT (sym))) { - offs -= (offsetT) lowest_data_loc; + offs -= lowest_data_loc; sym = section_symbol (data_section); } /* Likewise text section. */ @@ -3758,7 +3755,7 @@ mmix_frob_file (void) && (bfd_vma) offs + 256 > lowest_text_loc && bfd_is_abs_section (S_GET_SEGMENT (sym))) { - offs -= (offsetT) lowest_text_loc; + offs -= lowest_text_loc; sym = section_symbol (text_section); } @@ -4086,7 +4083,7 @@ s_loc (int ignore ATTRIBUTE_UNUSED) loc_asserts->frag = frag_now; } - p = frag_var (rs_org, 1, 1, (relax_substateT) 0, sym, off, (char *) 0); + p = frag_var (rs_org, 1, 1, 0, sym, off, NULL); *p = 0; } @@ -4256,7 +4253,7 @@ mmix_cons (int nbytes) exp.X_unsigned = 0; exp.X_add_symbol = NULL; exp.X_op_symbol = NULL; - emit_expr (&exp, (unsigned int) nbytes); + emit_expr (&exp, nbytes); } else do @@ -4274,7 +4271,7 @@ mmix_cons (int nbytes) exp.X_op = O_constant; exp.X_add_number = c; exp.X_unsigned = 1; - emit_expr (&exp, (unsigned int) nbytes); + emit_expr (&exp, nbytes); } if (input_line_pointer[-1] != '\"') @@ -4291,7 +4288,7 @@ mmix_cons (int nbytes) default: { expression (&exp); - emit_expr (&exp, (unsigned int) nbytes); + emit_expr (&exp, nbytes); SKIP_WHITESPACE (); } break; diff --git a/gas/config/tc-mn10200.c b/gas/config/tc-mn10200.c index db66e20..210e9b0 100644 --- a/gas/config/tc-mn10200.c +++ b/gas/config/tc-mn10200.c @@ -676,7 +676,7 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return ((addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align)); } void @@ -697,7 +697,7 @@ md_begin (void) { if (strcmp (prev_name, op->name)) { - prev_name = (char *) op->name; + prev_name = op->name; str_hash_insert (mn10200_hash, op->name, op, 0); } op++; @@ -734,7 +734,7 @@ check_operand (unsigned long insn ATTRIBUTE_UNUSED, test = val; - if (test < (offsetT) min || test > (offsetT) max) + if (test < min || test > max) return 0; else return 1; @@ -828,8 +828,7 @@ mn10200_insert_operand (unsigned long *insnp, if (operand->bits < 24 && (operand->flags & MN10200_OPERAND_NOCHECK) == 0) { - long min, max; - offsetT test; + offsetT min, max; if ((operand->flags & MN10200_OPERAND_SIGNED) != 0) { @@ -842,19 +841,17 @@ mn10200_insert_operand (unsigned long *insnp, min = 0; } - test = val; - - if (test < (offsetT) min || test > (offsetT) max) - as_warn_value_out_of_range (_("operand"), test, (offsetT) min, (offsetT) max, file, line); + if (val < min || val > max) + as_warn_value_out_of_range (_("operand"), val, min, max, file, line); } if ((operand->flags & MN10200_OPERAND_EXTENDED) == 0) { - *insnp |= (((long) val & ((1 << operand->bits) - 1)) + *insnp |= ((val & ((1 << operand->bits) - 1)) << (operand->shift + shift)); if ((operand->flags & MN10200_OPERAND_REPEATED) != 0) - *insnp |= (((long) val & ((1 << operand->bits) - 1)) + *insnp |= ((val & ((1 << operand->bits) - 1)) << (operand->shift + shift + 2)); } else @@ -1318,7 +1315,7 @@ md_assemble (char *str) fixP = fix_new_exp (frag_now, f - frag_now->fr_literal + offset, reloc_size, &fixups[i].exp, pcrel, - ((bfd_reloc_code_real_type) reloc)); + reloc); /* PC-relative offsets are from the first byte of the next instruction, not from the start of the current diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c index c4cf804..a1d89f0 100644 --- a/gas/config/tc-mn10300.c +++ b/gas/config/tc-mn10300.c @@ -902,7 +902,7 @@ md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } void @@ -923,7 +923,7 @@ md_begin (void) { if (strcmp (prev_name, op->name)) { - prev_name = (char *) op->name; + prev_name = op->name; str_hash_insert (mn10300_hash, op->name, op, 0); } op++; @@ -1103,7 +1103,7 @@ check_operand (const struct mn10300_operand *operand, test = val; - if (test < (offsetT) min || test > (offsetT) max) + if (test < min || test > max) return false; } return true; @@ -1146,8 +1146,9 @@ mn10300_insert_operand (unsigned long *insnp, test = val; - if (test < (offsetT) min || test > (offsetT) max) - as_warn_value_out_of_range (_("operand"), test, (offsetT) min, (offsetT) max, file, line); + if (test < min || test > max) + as_warn_value_out_of_range (_("operand"), test, (offsetT) min, + (offsetT) max, file, line); } if ((operand->flags & MN10300_OPERAND_SPLIT) != 0) @@ -1209,20 +1210,20 @@ mn10300_insert_operand (unsigned long *insnp, } else if ((operand->flags & MN10300_OPERAND_EXTENDED) == 0) { - *insnp |= (((long) val & ((1 << operand->bits) - 1)) + *insnp |= ((val & ((1 << operand->bits) - 1)) << (operand->shift + shift)); if ((operand->flags & MN10300_OPERAND_REPEATED) != 0) - *insnp |= (((long) val & ((1 << operand->bits) - 1)) + *insnp |= ((val & ((1 << operand->bits) - 1)) << (operand->shift + shift + operand->bits)); } else { - *extensionp |= (((long) val & ((1 << operand->bits) - 1)) + *extensionp |= ((val & ((1 << operand->bits) - 1)) << (operand->shift + shift)); if ((operand->flags & MN10300_OPERAND_REPEATED) != 0) - *extensionp |= (((long) val & ((1 << operand->bits) - 1)) + *extensionp |= ((val & ((1 << operand->bits) - 1)) << (operand->shift + shift + operand->bits)); } } @@ -2145,7 +2146,7 @@ md_assemble (char *str) fixP = fix_new_exp (frag_now, f - frag_now->fr_literal + offset, reloc_size / 8, &fixups[i].exp, pcrel, - ((bfd_reloc_code_real_type) reloc)); + reloc); if (pcrel) fixP->fx_offset += offset; @@ -2312,7 +2313,7 @@ md_estimate_size_before_relax (fragS *fragp, asection *seg) long md_pcrel_from (fixS *fixp) { - if (fixp->fx_addsy != (symbolS *) NULL + if (fixp->fx_addsy != NULL && (!S_IS_DEFINED (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy))) /* The symbol is undefined or weak. Let the linker figure it out. */ return 0; diff --git a/gas/config/tc-moxie.c b/gas/config/tc-moxie.c index 3c47699..cb8adfb 100644 --- a/gas/config/tc-moxie.c +++ b/gas/config/tc-moxie.c @@ -590,7 +590,7 @@ md_atof (int type, char *litP, int *sizeP) for (i = prec - 1; i >= 0; i--) { - md_number_to_chars (litP, (valueT) words[i], 2); + md_number_to_chars (litP, words[i], 2); litP += 2; } @@ -731,14 +731,13 @@ static valueT md_chars_to_number (char * buf, int n) { valueT result = 0; - unsigned char * where = (unsigned char *) buf; if (target_big_endian) { while (n--) { result <<= 8; - result |= (*where++ & 255); + result |= (*buf++ & 255); } } else @@ -746,7 +745,7 @@ md_chars_to_number (char * buf, int n) while (n--) { result <<= 8; - result |= (where[n] & 255); + result |= (buf[n] & 255); } } diff --git a/gas/config/tc-msp430.c b/gas/config/tc-msp430.c index 563365f..0127a2a 100644 --- a/gas/config/tc-msp430.c +++ b/gas/config/tc-msp430.c @@ -2454,15 +2454,15 @@ try_encode_mova (bool imm_op, if (op1->exp.X_op == O_constant) { bin |= ((op1->exp.X_add_number >> 16) & 0xf) << 8; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); bfd_putl16 (op1->exp.X_add_number & 0xffff, frag + 2); } else { - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); fix_new_exp (frag_now, where, 4, &(op1->exp), false, BFD_RELOC_MSP430X_ABS20_ADR_SRC); - bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + bfd_putl16 (ZEROS, frag + 2); } return 4; @@ -2473,7 +2473,7 @@ try_encode_mova (bool imm_op, bin |= 0x30 | (op1->reg << 8) | op2->reg; frag = frag_more (4); where = frag - frag_now->fr_literal; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); if (op1->exp.X_op == O_constant) { if (op1->exp.X_add_number > 0xffff @@ -2487,7 +2487,7 @@ try_encode_mova (bool imm_op, } else { - bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + bfd_putl16 (ZEROS, frag + 2); fix_new_exp (frag_now, where + 2, 2, &(op1->exp), false, op1->reg == 0 ? BFD_RELOC_MSP430X_PCR16 : @@ -2508,7 +2508,7 @@ try_encode_mova (bool imm_op, bin |= 0xc0 | (op1->reg << 8) | op2->reg; frag = frag_more (2); where = frag - frag_now->fr_literal; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); return 2; } else if (op2->am == 1) @@ -2522,13 +2522,13 @@ try_encode_mova (bool imm_op, if (op2->exp.X_op == O_constant) { bin |= (op2->exp.X_add_number >> 16) & 0xf; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); bfd_putl16 (op2->exp.X_add_number & 0xffff, frag + 2); } else { - bfd_putl16 ((bfd_vma) bin, frag); - bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + bfd_putl16 (bin, frag); + bfd_putl16 (ZEROS, frag + 2); fix_new_exp (frag_now, where, 4, &(op2->exp), false, BFD_RELOC_MSP430X_ABS20_ADR_DST); } @@ -2539,7 +2539,7 @@ try_encode_mova (bool imm_op, bin |= 0x70 | (op1->reg << 8) | op2->reg; frag = frag_more (4); where = frag - frag_now->fr_literal; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); if (op2->exp.X_op == O_constant) { if (op2->exp.X_add_number > 0xffff @@ -2553,7 +2553,7 @@ try_encode_mova (bool imm_op, } else { - bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + bfd_putl16 (ZEROS, frag + 2); fix_new_exp (frag_now, where + 2, 2, &(op2->exp), false, op2->reg == 0 ? BFD_RELOC_MSP430X_PCR16 : @@ -2593,13 +2593,13 @@ try_encode_mova (bool imm_op, if (op1->exp.X_op == O_constant) { bin |= ((op1->exp.X_add_number >> 16) & 0xf) << 8; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); bfd_putl16 (op1->exp.X_add_number & 0xffff, frag + 2); } else { - bfd_putl16 ((bfd_vma) bin, frag); - bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + bfd_putl16 (bin, frag); + bfd_putl16 (ZEROS, frag + 2); fix_new_exp (frag_now, where, 4, &(op1->exp), false, BFD_RELOC_MSP430X_ABS20_ADR_SRC); } @@ -2634,7 +2634,7 @@ try_encode_mova (bool imm_op, bin |= 0x10 | (op1->reg << 8) | op2->reg; frag = frag_more (2); where = frag - frag_now->fr_literal; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); return 2; } else if (op1->am == 2) @@ -2664,7 +2664,7 @@ try_encode_mova (bool imm_op, bin |= (op1->reg << 8) | op2->reg; frag = frag_more (2); where = frag - frag_now->fr_literal; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); return 2; } } @@ -2715,7 +2715,7 @@ gen_nop (void) { char *frag; frag = frag_more (2); - bfd_putl16 ((bfd_vma) 0x4303 /* NOP */, frag); + bfd_putl16 (0x4303 /* NOP */, frag); dwarf2_emit_insn (2); } @@ -3046,7 +3046,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) insn_length += 2; frag = frag_more (2); - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); dwarf2_emit_insn (insn_length); break; @@ -3124,7 +3124,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) where += 2; } - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); frag += 2; where += 2; @@ -3136,7 +3136,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) } else { - bfd_putl16 ((bfd_vma) ZEROS, frag); + bfd_putl16 (ZEROS, frag); if (!extended_op) { @@ -3241,7 +3241,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) } bin |= (op2.reg | (op1.reg << 8) | (op1.am << 4) | (op2.am << 7)); - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); frag += 2; where += 2; @@ -3253,7 +3253,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) } else { - bfd_putl16 ((bfd_vma) ZEROS, frag); + bfd_putl16 (ZEROS, frag); if (!extended_op) { @@ -3277,7 +3277,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) } else { - bfd_putl16 ((bfd_vma) ZEROS, frag); + bfd_putl16 (ZEROS, frag); if (!extended_op) { @@ -3313,7 +3313,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) op_length = 2 + 2 * op1.ol; frag = frag_more (op_length); where = frag - frag_now->fr_literal; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); if (op1.mode == OP_EXP) { @@ -3325,7 +3325,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) { where += 2; - bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + bfd_putl16 (ZEROS, frag + 2); if (op1.reg || op1.am == 3) fix_new_exp (frag_now, where, 2, @@ -3396,7 +3396,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) else if (op1.am == 3) bin |= 0x70 | op1.reg; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); if (op1.mode == OP_EXP) { @@ -3406,7 +3406,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) break; } - bfd_putl16 ((bfd_vma) ZEROS, frag + 2); + bfd_putl16 (ZEROS, frag + 2); if (! fix_emitted) fix_new_exp (frag_now, where + 2, 2, @@ -3481,7 +3481,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) bin |= (reg - n + 1); } - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); dwarf2_emit_insn (op_length); break; } @@ -3549,7 +3549,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) bin |= (n - 1) << 10; bin |= reg; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); dwarf2_emit_insn (op_length); break; } @@ -3634,9 +3634,9 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) fix_new_exp (frag_now, where, 4, &(op1.exp), false, BFD_RELOC_MSP430X_ABS20_ADR_SRC); - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); if (op_length == 4) - bfd_putl16 ((bfd_vma) (n & 0xffff), frag + 2); + bfd_putl16 (n & 0xffff, frag + 2); dwarf2_emit_insn (op_length); break; } @@ -3926,7 +3926,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) frag += 2; } - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); where += 2; frag += 2; @@ -3938,7 +3938,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) } else { - bfd_putl16 ((bfd_vma) ZEROS, frag); + bfd_putl16 (ZEROS, frag); if (!extended_op) { @@ -3963,7 +3963,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) } else { - bfd_putl16 ((bfd_vma) ZEROS, frag); + bfd_putl16 (ZEROS, frag); if (!extended_op) { @@ -3992,7 +3992,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) /* reti instruction. */ insn_length += 2; frag = frag_more (2); - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); dwarf2_emit_insn (insn_length); break; } @@ -4079,7 +4079,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) } bin |= op1.reg | (op1.am << 4); - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); frag += 2; where += 2; @@ -4091,7 +4091,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) } else { - bfd_putl16 ((bfd_vma) ZEROS, frag); + bfd_putl16 (ZEROS, frag); if (!extended_op) { @@ -4172,7 +4172,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) frag = frag_more (2); /* Instr size is 1 word. */ bin |= x & 0x3ff; - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); } else if (exp.X_op == O_symbol && *l1 != '$') { @@ -4182,7 +4182,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) fix_new_exp (frag_now, where, 2, &exp, true, BFD_RELOC_MSP430_10_PCREL); - bfd_putl16 ((bfd_vma) bin, frag); + bfd_putl16 (bin, frag); } else if (*l1 == '$') { @@ -4239,7 +4239,7 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) insn_length += 8; frag = frag_more (8); dwarf2_emit_insn (0); - bfd_putl16 ((bfd_vma) rc.sop, frag); + bfd_putl16 (rc.sop, frag); frag = frag_variant (rs_machine_dependent, 8, 2, /* Wild guess. */ ENCODE_RELAX (rc.lpos, STATE_BITS10), @@ -4286,8 +4286,8 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line) insn_length += 8; frag = frag_more (8); dwarf2_emit_insn (0); - bfd_putl16 ((bfd_vma) hc.op0, frag); - bfd_putl16 ((bfd_vma) hc.op1, frag+2); + bfd_putl16 (hc.op0, frag); + bfd_putl16 (hc.op1, frag + 2); frag = frag_variant (rs_machine_dependent, 8, 2, ENCODE_RELAX (STATE_EMUL_BRANCH, STATE_BITS10), /* Wild guess. */ @@ -4384,7 +4384,7 @@ md_section_align (asection * seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* If you define this macro, it should return the offset between the @@ -4396,7 +4396,7 @@ md_section_align (asection * seg, valueT addr) long md_pcrel_from_section (fixS * fixp, segT sec) { - if (fixp->fx_addsy != (symbolS *) NULL + if (fixp->fx_addsy != NULL && (!S_IS_DEFINED (fixp->fx_addsy) || (S_GET_SEGMENT (fixp->fx_addsy) != sec))) return 0; @@ -4431,7 +4431,7 @@ md_apply_fix (fixS * fixp, valueT * valuep, segT seg) unsigned long insn; long value; - if (fixp->fx_addsy == (symbolS *) NULL) + if (fixp->fx_addsy == NULL) { value = *valuep; fixp->fx_done = 1; @@ -4464,7 +4464,7 @@ md_apply_fix (fixS * fixp, valueT * valuep, segT seg) { value = fixp->fx_offset; - if (fixp->fx_subsy != (symbolS *) NULL) + if (fixp->fx_subsy != NULL) { if (S_GET_SEGMENT (fixp->fx_subsy) == absolute_section) { @@ -4512,7 +4512,7 @@ md_apply_fix (fixS * fixp, valueT * valuep, segT seg) _("operand out of range: %ld"), value); value &= 0x3ff; /* get rid of extended sign */ - bfd_putl16 ((bfd_vma) (value | insn), where); + bfd_putl16 (value | insn, where); break; case BFD_RELOC_MSP430X_PCR16: @@ -4535,66 +4535,66 @@ md_apply_fix (fixS * fixp, valueT * valuep, segT seg) case BFD_RELOC_16: case BFD_RELOC_MSP430_16_BYTE: value &= 0xffff; /* Get rid of extended sign. */ - bfd_putl16 ((bfd_vma) value, where); + bfd_putl16 (value, where); break; case BFD_RELOC_MSP430_ABS_HI16: value >>= 16; value &= 0xffff; /* Get rid of extended sign. */ - bfd_putl16 ((bfd_vma) value, where); + bfd_putl16 (value, where); break; case BFD_RELOC_32: - bfd_putl32 ((bfd_vma) value, where); + bfd_putl32 (value, where); break; case BFD_RELOC_MSP430_ABS8: case BFD_RELOC_8: - bfd_put_8 (NULL, (bfd_vma) value, where); + bfd_put_8 (NULL, value, where); break; case BFD_RELOC_MSP430X_ABS20_EXT_SRC: case BFD_RELOC_MSP430X_PCR20_EXT_SRC: - bfd_putl16 ((bfd_vma) (value & 0xffff), where + 4); + bfd_putl16 (value & 0xffff, where + 4); value >>= 16; - bfd_putl16 ((bfd_vma) (((value & 0xf) << 7) | insn), where); + bfd_putl16 (((value & 0xf) << 7) | insn, where); break; case BFD_RELOC_MSP430X_ABS20_ADR_SRC: - bfd_putl16 ((bfd_vma) (value & 0xffff), where + 2); + bfd_putl16 (value & 0xffff, where + 2); value >>= 16; - bfd_putl16 ((bfd_vma) (((value & 0xf) << 8) | insn), where); + bfd_putl16 (((value & 0xf) << 8) | insn, where); break; case BFD_RELOC_MSP430X_ABS20_EXT_ODST: - bfd_putl16 ((bfd_vma) (value & 0xffff), where + 6); + bfd_putl16 (value & 0xffff, where + 6); value >>= 16; - bfd_putl16 ((bfd_vma) ((value & 0xf) | insn), where); + bfd_putl16 ((value & 0xf) | insn, where); break; case BFD_RELOC_MSP430X_PCR20_CALL: - bfd_putl16 ((bfd_vma) (value & 0xffff), where + 2); + bfd_putl16 (value & 0xffff, where + 2); value >>= 16; - bfd_putl16 ((bfd_vma) ((value & 0xf) | insn), where); + bfd_putl16 ((value & 0xf) | insn, where); break; case BFD_RELOC_MSP430X_ABS20_EXT_DST: case BFD_RELOC_MSP430X_PCR20_EXT_DST: - bfd_putl16 ((bfd_vma) (value & 0xffff), where + 4); + bfd_putl16 (value & 0xffff, where + 4); value >>= 16; - bfd_putl16 ((bfd_vma) ((value & 0xf) | insn), where); + bfd_putl16 ((value & 0xf) | insn, where); break; case BFD_RELOC_MSP430X_PCR20_EXT_ODST: - bfd_putl16 ((bfd_vma) (value & 0xffff), where + 6); + bfd_putl16 (value & 0xffff, where + 6); value >>= 16; - bfd_putl16 ((bfd_vma) ((value & 0xf) | insn), where); + bfd_putl16 ((value & 0xf) | insn, where); break; case BFD_RELOC_MSP430X_ABS20_ADR_DST: - bfd_putl16 ((bfd_vma) (value & 0xffff), where + 2); + bfd_putl16 (value & 0xffff, where + 2); value >>= 16; - bfd_putl16 ((bfd_vma) ((value & 0xf) | insn), where); + bfd_putl16 ((value & 0xf) | insn, where); break; default: diff --git a/gas/config/tc-mt.c b/gas/config/tc-mt.c index 0cfc82d..a795bdc 100644 --- a/gas/config/tc-mt.c +++ b/gas/config/tc-mt.c @@ -335,7 +335,7 @@ md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * @@ -372,7 +372,7 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, long md_pcrel_from_section (fixS *fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (!S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) /* The symbol is undefined (or is defined but not in this section). @@ -461,10 +461,10 @@ mt_apply_fix (fixS *fixP, valueT *valueP, segT seg) bool mt_fix_adjustable (fixS * fixP) { - if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + if (fixP->fx_r_type >= BFD_RELOC_UNUSED) { const CGEN_INSN *insn = NULL; - int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + int opindex = fixP->fx_r_type - BFD_RELOC_UNUSED; const CGEN_OPERAND *operand; operand = cgen_operand_lookup_by_num(gas_cgen_cpu_desc, opindex); diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c index a159ddb..647744f 100644 --- a/gas/config/tc-nds32.c +++ b/gas/config/tc-nds32.c @@ -3896,7 +3896,7 @@ nds32_adjust_label (int n) /* Only frag by alignment when needed. Otherwise, it will fail to optimize labels on 4-byte boundary. (bug8454) See md_convert_frag () and RELAX_SET_RELAXABLE (frag) for details. */ - if (frag_now_fix () & ((1 << n) -1 )) + if (frag_now_fix () & (((addressT) 1 << n) - 1)) { if (subseg_text_p (now_seg)) { @@ -3921,7 +3921,7 @@ nds32_adjust_label (int n) old_frag = symbol_get_frag (label); old_value = S_GET_VALUE (label); - new_value = (valueT) frag_now_fix (); + new_value = frag_now_fix (); /* Multiple labels may be on the same address. And the last symbol may not be a label at all, e.g., register name, external function names, @@ -4015,7 +4015,7 @@ add_mapping_symbol (enum mstate state, unsigned int padding_byte, /* start adding mapping symbol */ seg_info (now_seg)->tc_segment_info_data.mapstate = state; - make_mapping_symbol (state, (valueT) frag_now_fix () + padding_byte, + make_mapping_symbol (state, frag_now_fix () + padding_byte, frag_now, align); } @@ -4208,8 +4208,6 @@ struct relax_hint_id *record_id_head = NULL; /* Is the buffer large enough? */ #define MAX_BUFFER 12 -static char *nds_itoa (int n); - static char * nds_itoa (int n) { @@ -5209,7 +5207,7 @@ static struct nds32_relax_hint_table relax_ls_table[] = elimination itself or not, we have to return the next instruction range. */ static int -nds32_elf_sethi_range (struct nds32_relocs_pattern *pattern) +nds32_elf_sethi_range (const struct nds32_relocs_pattern *pattern) { int range = 0; while (pattern) @@ -5658,12 +5656,12 @@ static struct nds32_hint_map hint_map [] = /* Find the relaxation pattern according to instructions. */ static bool -nds32_find_reloc_table (struct nds32_relocs_pattern *relocs_pattern, +nds32_find_reloc_table (const struct nds32_relocs_pattern *relocs_pattern, struct nds32_relax_hint_table *hint_info) { unsigned int opcode, seq_size; enum nds32_br_range range; - struct nds32_relocs_pattern *pattern, *hi_pattern = NULL; + const struct nds32_relocs_pattern *pattern, *hi_pattern = NULL; const char *opc = NULL; relax_info_t *relax_info = NULL; nds32_relax_fixup_info_t *fixup_info, *hint_fixup; @@ -5928,9 +5926,8 @@ nds32_match_hint_insn (struct nds32_opcode *opcode, uint32_t seq) static void nds32_elf_append_relax_relocs (const char *key, const void *value) { - struct nds32_relocs_pattern *relocs_pattern = - (struct nds32_relocs_pattern *) value; - struct nds32_relocs_pattern *pattern_temp, *pattern_now; + const struct nds32_relocs_pattern *relocs_pattern = value; + const struct nds32_relocs_pattern *pattern_temp, *pattern_now; symbolS *sym, *hi_sym = NULL; expressionS exp; fragS *fragP; @@ -6265,7 +6262,7 @@ static int nds32_elf_append_relax_relocs_traverse (void **slot, void *arg ATTRIBUTE_UNUSED) { string_tuple_t *tuple = *((string_tuple_t **) slot); - nds32_elf_append_relax_relocs (tuple->key, (void *) tuple->value); + nds32_elf_append_relax_relocs (tuple->key, (const void *) tuple->value); return 1; } @@ -6609,7 +6606,7 @@ md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & ((valueT) -1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* GAS will call this function when a symbol table lookup fails, before it @@ -7353,8 +7350,7 @@ md_atof (int type, char *litP, int *sizeP) { for (i = 0; i < prec; i++) { - md_number_to_chars (litP, (valueT) words[i], - sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, words[i], sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } } @@ -7362,8 +7358,7 @@ md_atof (int type, char *litP, int *sizeP) { for (i = prec - 1; i >= 0; i--) { - md_number_to_chars (litP, (valueT) words[i], - sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, words[i], sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } } @@ -7687,10 +7682,10 @@ nds32_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) return; } - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) { /* HOW DIFF RELOCATION WORKS. @@ -7831,7 +7826,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixP) code = fixP->fx_r_type; reloc->howto = bfd_reloc_type_lookup (stdoutput, code); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixP->fx_file, fixP->fx_line, _("internal error: can't export reloc type %d (`%s')"), diff --git a/gas/config/tc-ns32k.c b/gas/config/tc-ns32k.c index 13907f2..dcabf5f 100644 --- a/gas/config/tc-ns32k.c +++ b/gas/config/tc-ns32k.c @@ -1577,13 +1577,13 @@ md_number_to_field (char *buf, long val, bit_fixS *field_ptr) #ifdef ENDIAN *mem_ptr = object; #else - mem_ptr[0] = (char) object; + mem_ptr[0] = object; object >>= 8; - mem_ptr[1] = (char) object; + mem_ptr[1] = object; object >>= 8; - mem_ptr[2] = (char) object; + mem_ptr[2] = object; object >>= 8; - mem_ptr[3] = (char) object; + mem_ptr[3] = object; #endif } else @@ -1723,26 +1723,26 @@ convert_iif (void) { case 4: gen_to_words (words, 2, 8); - md_number_to_imm (memP, (long) words[0], + md_number_to_imm (memP, words[0], sizeof (LITTLENUM_TYPE)); md_number_to_imm (memP + sizeof (LITTLENUM_TYPE), - (long) words[1], + words[1], sizeof (LITTLENUM_TYPE)); break; case 8: gen_to_words (words, 4, 11); - md_number_to_imm (memP, (long) words[0], + md_number_to_imm (memP, words[0], sizeof (LITTLENUM_TYPE)); md_number_to_imm (memP + sizeof (LITTLENUM_TYPE), - (long) words[1], + words[1], sizeof (LITTLENUM_TYPE)); md_number_to_imm ((memP + 2 * sizeof (LITTLENUM_TYPE)), - (long) words[2], + words[2], sizeof (LITTLENUM_TYPE)); md_number_to_imm ((memP + 3 * sizeof (LITTLENUM_TYPE)), - (long) words[3], + words[3], sizeof (LITTLENUM_TYPE)); break; } @@ -1758,7 +1758,7 @@ convert_iif (void) the object later. */ exprP.X_add_number += iif.iifP[i].object_adjust; fix_new_ns32k_exp (frag_now, - (long) (memP - frag_now->fr_literal), + memP - frag_now->fr_literal, size, &exprP, iif.iifP[i].pcrel, @@ -1806,12 +1806,12 @@ convert_iif (void) size = default_disp_size; /* Normally 4 bytes. */ memP = frag_more (size); fix_new_ns32k_exp (frag_now, - (long) (memP - frag_now->fr_literal), + memP - frag_now->fr_literal, size, &exprP, 0, /* never iif.iifP[i].pcrel, */ 1, /* always iif.iifP[i].im_disp */ - (bit_fixS *) 0, 0, + 0, 0, inst_frag, inst_offset); break; /* Exit this absolute hack. */ @@ -2035,7 +2035,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, disp = (S_GET_VALUE (fragP->fr_symbol) + fragP->fr_offset) - object_address; disp += md_pcrel_adjust (fragP); - md_number_to_disp (buffer_address, (long) disp, (int) ext); + md_number_to_disp (buffer_address, disp, ext); fragP->fr_fix += ext; } @@ -2053,7 +2053,7 @@ md_estimate_size_before_relax (fragS *fragP, segT segment) /* We don't relax symbols defined in another segment. The thing to do is to assume the object will occupy 4 bytes. */ fix_new_ns32k (fragP, - (int) (fragP->fr_fix), + fragP->fr_fix, 4, fragP->fr_symbol, fragP->fr_offset, @@ -2093,8 +2093,8 @@ md_create_short_jump (char *ptr, valueT offset; offset = to_addr - from_addr; - md_number_to_chars (ptr, (valueT) 0xEA, 1); - md_number_to_disp (ptr + 1, (valueT) offset, 2); + *ptr++ = 0xEA; + md_number_to_disp (ptr, offset, 2); } void @@ -2107,8 +2107,8 @@ md_create_long_jump (char *ptr, valueT offset; offset = to_addr - from_addr; - md_number_to_chars (ptr, (valueT) 0xEA, 1); - md_number_to_disp (ptr + 1, (valueT) offset, 4); + *ptr++ = 0xEA; + md_number_to_disp (ptr, offset, 4); } const char md_shortopts[] = "m:"; diff --git a/gas/config/tc-or1k.c b/gas/config/tc-or1k.c index 5b3e013..33975fe 100644 --- a/gas/config/tc-or1k.c +++ b/gas/config/tc-or1k.c @@ -164,7 +164,7 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } symbolS * @@ -223,7 +223,7 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, long md_pcrel_from_section (fixS * fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (! S_IS_DEFINED (fixP->fx_addsy) || (S_GET_SEGMENT (fixP->fx_addsy) != sec) || S_IS_EXTERNAL (fixP->fx_addsy) @@ -391,4 +391,3 @@ or1k_cfi_frame_initial_instructions (void) { cfi_add_CFA_def_cfa_register (1); } - diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index 714dfca..9b3aaab 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -1951,7 +1951,7 @@ ppc_cleanup (void) char *p; asection *seg = now_seg; subsegT subseg = now_subseg; - asection *apuinfo_secp = (asection *) NULL; + asection *apuinfo_secp = NULL; unsigned int i; /* Create the .PPC.EMB.apuinfo section. */ @@ -1959,13 +1959,13 @@ ppc_cleanup (void) bfd_set_section_flags (apuinfo_secp, SEC_HAS_CONTENTS | SEC_READONLY); p = frag_more (4); - md_number_to_chars (p, (valueT) 8, 4); + md_number_to_chars (p, 8, 4); p = frag_more (4); - md_number_to_chars (p, (valueT) ppc_apuinfo_num * 4, 4); + md_number_to_chars (p, ppc_apuinfo_num * 4, 4); p = frag_more (4); - md_number_to_chars (p, (valueT) 2, 4); + md_number_to_chars (p, 2, 4); p = frag_more (8); strcpy (p, APUINFO_LABEL); @@ -1973,7 +1973,7 @@ ppc_cleanup (void) for (i = 0; i < ppc_apuinfo_num; i++) { p = frag_more (4); - md_number_to_chars (p, (valueT) ppc_apuinfo_list[i], 4); + md_number_to_chars (p, ppc_apuinfo_list[i], 4); } frag_align (2, 0, 0); @@ -2071,7 +2071,7 @@ ppc_insert_operand (uint64_t insn, errmsg = NULL; insn = (*operand->insert) (insn, val, cpu, &errmsg); - if (errmsg != (const char *) NULL) + if (errmsg != NULL) as_bad_where (file, line, "%s", errmsg); } else @@ -2298,7 +2298,7 @@ ppc_elf_suffix (char **str_p, expressionS *exp_p) } *str_p = str; - if (reloc == (int) BFD_RELOC_PPC64_TOC + if (reloc == BFD_RELOC_PPC64_TOC && exp_p->X_op == O_symbol && strcmp (S_GET_NAME (exp_p->X_add_symbol), ".TOC.") == 0) { @@ -2311,7 +2311,7 @@ ppc_elf_suffix (char **str_p, expressionS *exp_p) && (ppc_cpu & PPC_OPCODE_POWER10) == 0) reloc = BFD_RELOC_PPC64_REL24_P9NOTOC; - return (bfd_reloc_code_real_type) reloc; + return reloc; } return BFD_RELOC_NONE; @@ -2470,8 +2470,7 @@ ppc_elf_lcomm (int xxx ATTRIBUTE_UNUSED) if (S_GET_SEGMENT (symbolP) == bss_section) symbol_get_frag (symbolP)->fr_symbol = 0; symbol_set_frag (symbolP, frag_now); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, size, - (char *) 0); + pfrag = frag_var (rs_org, 1, 1, 0, symbolP, size, NULL); *pfrag = 0; S_SET_SIZE (symbolP, size); S_SET_SEGMENT (symbolP, bss_section); @@ -2780,7 +2779,7 @@ ppc_xcoff_suffix (char **str_p) && (ppc_obj64 ? ptr->valid64 : ptr->valid32)) { *str_p = str; - return (bfd_reloc_code_real_type) ptr->reloc; + return ptr->reloc; } return BFD_RELOC_NONE; @@ -2948,7 +2947,7 @@ ppc_frob_label (symbolS *sym) /* Set the class of a label based on where it is defined. This handles symbols without suffixes. Also, move the symbol so that it follows the csect symbol. */ - if (ppc_current_csect != (symbolS *) NULL) + if (ppc_current_csect != NULL) { if (symbol_get_tc (sym)->symbol_class == -1) symbol_get_tc (sym)->symbol_class = symbol_get_tc (ppc_current_csect)->symbol_class; @@ -3453,7 +3452,7 @@ md_assemble (char *str) if (operand->insert) { insn = (*operand->insert) (insn, val, ppc_cpu, &errmsg); - if (errmsg != (const char *) NULL) + if (errmsg != NULL) as_bad ("%s", errmsg); } else if (operand->shift >= 0) @@ -3496,7 +3495,7 @@ md_assemble (char *str) && (operand->flags & PPC_OPERAND_GPR_0) != 0)) as_warn (_("invalid register expression")); insn = ppc_insert_operand (insn, operand, ex.X_add_number, - ppc_cpu, (char *) NULL, 0); + ppc_cpu, NULL, 0); } else if (ex.X_op == O_constant || (ex.X_op == O_big && ex.X_add_number > 0)) @@ -3694,7 +3693,7 @@ md_assemble (char *str) else insn = ppc_insert_operand (insn, operand, ppc_obj64 ? 13 : 2, - ppc_cpu, (char *) NULL, 0); + ppc_cpu, NULL, 0); break; /* We'll only use the 32 (or 64) bit form of these relocations @@ -4465,8 +4464,7 @@ ppc_comm (int lcomm) frag_align (align, 0, 0); symbol_set_frag (def_sym, frag_now); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT) 0, def_sym, - def_size, (char *) NULL); + pfrag = frag_var (rs_org, 1, 1, 0, def_sym, def_size, NULL); *pfrag = 0; S_SET_SEGMENT (def_sym, section->segment); symbol_get_tc (def_sym)->align = align; @@ -4642,14 +4640,14 @@ ppc_change_csect (symbolS *sym, offsetT align) frag_align (align, 0, 0); symbol_set_frag (sym, frag_now); - S_SET_VALUE (sym, (valueT) frag_now_fix ()); + S_SET_VALUE (sym, frag_now_fix ()); symbol_get_tc (sym)->align = align; symbol_get_tc (sym)->output = 1; symbol_get_tc (sym)->within = sym; for (list = section->csects; - symbol_get_tc (list)->next != (symbolS *) NULL; + symbol_get_tc (list)->next != NULL; list = symbol_get_tc (list)->next) ; symbol_get_tc (list)->next = sym; @@ -5122,7 +5120,7 @@ ppc_stabx (int ignore ATTRIBUTE_UNUSED) exp.X_add_number = 0; /* Fall through. */ case O_constant: - S_SET_VALUE (sym, (valueT) exp.X_add_number); + S_SET_VALUE (sym, exp.X_add_number); symbol_set_frag (sym, &zero_address_frag); break; @@ -5290,7 +5288,7 @@ ppc_function (int ignore ATTRIBUTE_UNUSED) /* Ignore any [PR] suffix. */ name = ppc_canonicalize_symbol_name (name); s = strchr (name, '['); - if (s != (char *) NULL + if (s != NULL && strcmp (s + 1, "PR]") == 0) *s = '\0'; @@ -5391,7 +5389,6 @@ ppc_bf (int ignore ATTRIBUTE_UNUSED) saved_bi_sym = 0; } - symbol_get_tc (sym)->output = 1; ppc_frob_label (sym); @@ -5461,13 +5458,13 @@ ppc_biei (int ei) saved_bi_sym = sym; for (look = last_biei ? last_biei : symbol_rootP; - (look != (symbolS *) NULL + (look != NULL && (S_GET_STORAGE_CLASS (look) == C_FILE || S_GET_STORAGE_CLASS (look) == C_BINCL || S_GET_STORAGE_CLASS (look) == C_EINCL)); look = symbol_next (look)) ; - if (look != (symbolS *) NULL) + if (look != NULL) { symbol_remove (sym, &symbol_rootP, &symbol_lastP); symbol_insert (sym, look, &symbol_rootP, &symbol_lastP); @@ -5633,7 +5630,7 @@ ppc_ec (int ignore ATTRIBUTE_UNUSED) static void ppc_toc (int ignore ATTRIBUTE_UNUSED) { - if (ppc_toc_csect != (symbolS *) NULL) + if (ppc_toc_csect != NULL) subseg_set (data_section, symbol_get_tc (ppc_toc_csect)->subseg); else { @@ -5650,7 +5647,7 @@ ppc_toc (int ignore ATTRIBUTE_UNUSED) sym = symbol_find_or_make ("TOC[TC0]"); symbol_set_frag (sym, frag_now); S_SET_SEGMENT (sym, data_section); - S_SET_VALUE (sym, (valueT) frag_now_fix ()); + S_SET_VALUE (sym, frag_now_fix ()); symbol_get_tc (sym)->subseg = subseg; symbol_get_tc (sym)->output = 1; symbol_get_tc (sym)->within = sym; @@ -5658,7 +5655,7 @@ ppc_toc (int ignore ATTRIBUTE_UNUSED) ppc_toc_csect = sym; for (list = ppc_xcoff_data_section.csects; - symbol_get_tc (list)->next != (symbolS *) NULL; + symbol_get_tc (list)->next != NULL; list = symbol_get_tc (list)->next) ; symbol_get_tc (list)->next = sym; @@ -5766,7 +5763,7 @@ ppc_tc (int ignore ATTRIBUTE_UNUSED) char endc; symbolS *sym; - if (ppc_toc_csect == (symbolS *) NULL + if (ppc_toc_csect == NULL || ppc_toc_csect != ppc_current_csect) { as_bad (_(".tc not in .toc section")); @@ -5804,7 +5801,7 @@ ppc_tc (int ignore ATTRIBUTE_UNUSED) S_SET_SEGMENT (sym, now_seg); symbol_set_frag (sym, frag_now); - S_SET_VALUE (sym, (valueT) frag_now_fix ()); + S_SET_VALUE (sym, frag_now_fix ()); /* AIX assembler seems to allow any storage class to be set in .tc. But for now, only XMC_TC and XMC_TE are supported by us. */ @@ -6010,7 +6007,7 @@ ppc_symbol_new_hook (symbolS *sym) return; s = strchr (S_GET_NAME (sym), '['); - if (s == (const char *) NULL) + if (s == NULL) { /* There is no suffix. */ return; @@ -6111,7 +6108,7 @@ ppc_frob_symbol (symbolS *sym) if (sym == abs_section_sym) return 1; - if (symbol_get_tc (sym)->real_name != (char *) NULL) + if (symbol_get_tc (sym)->real_name != NULL) S_SET_NAME (sym, symbol_get_tc (sym)->real_name); else { @@ -6120,7 +6117,7 @@ ppc_frob_symbol (symbolS *sym) name = S_GET_NAME (sym); s = strchr (name, '['); - if (s != (char *) NULL) + if (s != NULL) { unsigned int len; char *snew; @@ -6132,7 +6129,7 @@ ppc_frob_symbol (symbolS *sym) } } - if (set_end != (symbolS *) NULL) + if (set_end != NULL) { SA_SET_SYM_ENDNDX (set_end, sym); set_end = NULL; @@ -6141,11 +6138,10 @@ ppc_frob_symbol (symbolS *sym) if (SF_GET_FUNCTION (sym)) { ppc_last_function = sym; - if (symbol_get_tc (sym)->u.size != (symbolS *) NULL) + if (symbol_get_tc (sym)->u.size != NULL) { resolve_symbol_value (symbol_get_tc (sym)->u.size); - SA_SET_SYM_FSIZE (sym, - (long) S_GET_VALUE (symbol_get_tc (sym)->u.size)); + SA_SET_SYM_FSIZE (sym, S_GET_VALUE (symbol_get_tc (sym)->u.size)); } else { @@ -6161,7 +6157,7 @@ ppc_frob_symbol (symbolS *sym) else if (S_GET_STORAGE_CLASS (sym) == C_FCN && strcmp (S_GET_NAME (sym), ".ef") == 0) { - if (ppc_last_function == (symbolS *) NULL) + if (ppc_last_function == NULL) as_bad (_(".ef with no preceding .function")); else { @@ -6204,7 +6200,7 @@ ppc_frob_symbol (symbolS *sym) { /* This is a csect symbol. x_scnlen is the size of the csect. */ - if (symbol_get_tc (sym)->next == (symbolS *) NULL) + if (symbol_get_tc (sym)->next == NULL) a->u.auxent.x_csect.x_scnlen.u64 = bfd_section_size (S_GET_SEGMENT (sym)) - S_GET_VALUE (sym); else @@ -6259,10 +6255,10 @@ ppc_frob_symbol (symbolS *sym) next = symbol_next (sym); while (symbol_get_tc (next)->symbol_class == XMC_TC0) next = symbol_next (next); - if (next == (symbolS *) NULL + if (next == NULL || (!ppc_is_toc_sym (next))) { - if (ppc_after_toc_frag == (fragS *) NULL) + if (ppc_after_toc_frag == NULL) a->u.auxent.x_csect.x_scnlen.u64 = bfd_section_size (data_section) - S_GET_VALUE (sym); else @@ -6295,14 +6291,14 @@ ppc_frob_symbol (symbolS *sym) /* Skip the initial dummy symbol. */ csect = symbol_get_tc (csect)->next; - if (csect == (symbolS *) NULL) + if (csect == NULL) { as_warn (_("warning: symbol %s has no csect"), S_GET_NAME (sym)); a->u.auxent.x_csect.x_scnlen.u64 = 0; } else { - while (symbol_get_tc (csect)->next != (symbolS *) NULL) + while (symbol_get_tc (csect)->next != NULL) { resolve_symbol_value (symbol_get_tc (csect)->next); if (S_GET_VALUE (symbol_get_tc (csect)->next) @@ -6338,7 +6334,7 @@ ppc_frob_symbol (symbolS *sym) asymbol *bsym = symbol_get_bfdsym (symbol_get_tc (sym)->within); combined_entry_type *c = coffsymbol (bsym)->native; - S_SET_VALUE (sym, (valueT) (size_t) c); + S_SET_VALUE (sym, (uintptr_t) c); coffsymbol (symbol_get_bfdsym (sym))->native->fix_value = 1; } else if (S_GET_STORAGE_CLASS (sym) == C_STSYM) @@ -6497,7 +6493,7 @@ md_section_align (asection *seg ATTRIBUTE_UNUSED, valueT addr) #else int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); #endif } @@ -6600,17 +6596,17 @@ ppc_fix_adjustable (fixS *fix) if (bfd_section_flags (symseg) & SEC_DEBUGGING) return 1; - if (ppc_toc_csect != (symbolS *) NULL + if (ppc_toc_csect != NULL && fix->fx_addsy != ppc_toc_csect && symseg == data_section && val >= ppc_toc_frag->fr_address - && (ppc_after_toc_frag == (fragS *) NULL + && (ppc_after_toc_frag == NULL || val < ppc_after_toc_frag->fr_address)) { symbolS *sy; for (sy = symbol_next (ppc_toc_csect); - sy != (symbolS *) NULL; + sy != NULL; sy = symbol_next (sy)) { TC_SYMFIELD_TYPE *sy_tc = symbol_get_tc (sy); @@ -6991,7 +6987,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) use *valP, and must use fx_offset instead. If the relocation is PC-relative, we then need to re-apply md_pcrel_from_section to this new relocation value. */ - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; else @@ -7765,7 +7761,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) reloc->howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_PPC_NEG); reloc->addend = fixp->fx_addnumber; - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_subtract (fixp); relocs[0] = NULL; diff --git a/gas/config/tc-pru.c b/gas/config/tc-pru.c index 00208e4..dcc23ba 100644 --- a/gas/config/tc-pru.c +++ b/gas/config/tc-pru.c @@ -255,7 +255,7 @@ pru_align (int log_size, const char *pfill, symbolS *label) old_frag = symbol_get_frag (label); old_value = S_GET_VALUE (label); - new_value = (valueT) frag_now_fix (); + new_value = frag_now_fix (); /* It is possible to have more than one label at a particular address, especially if debugging is enabled, so we must @@ -341,10 +341,10 @@ s_pru_align (int ignore ATTRIBUTE_UNUSED) { input_line_pointer++; fill = get_absolute_expression (); - pfill = (const char *) &fill; + pfill = &fill; } else if (subseg_text_p (now_seg)) - pfill = (const char *) &nop; + pfill = nop; else { pfill = NULL; @@ -680,7 +680,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) /* In general, fix instructions with immediate constants. But leave LDI32 for the linker, which is prepared to shorten insns. */ - if (fixP->fx_addsy == (symbolS *) NULL + if (fixP->fx_addsy == NULL && fixP->fx_r_type != BFD_RELOC_PRU_LDI32) fixP->fx_done = 1; @@ -751,7 +751,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) fixP->fx_subsy = NULL; } /* We don't actually support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); /* For the DIFF relocs, write the value into the object file while still @@ -765,11 +765,11 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) break; case BFD_RELOC_PRU_GNU_DIFF16: case BFD_RELOC_PRU_GNU_DIFF16_PMEM: - bfd_putl16 ((bfd_vma) value, where); + bfd_putl16 (value, where); break; case BFD_RELOC_PRU_GNU_DIFF32: case BFD_RELOC_PRU_GNU_DIFF32_PMEM: - bfd_putl32 ((bfd_vma) value, where); + bfd_putl32 (value, where); break; default: break; @@ -949,7 +949,7 @@ pru_assemble_expression (const char *exprstr, if (pru_mode == PRU_MODE_TEST && ep->X_op == O_constant) value = ep->X_add_number; - return (unsigned long) value; + return value; } /* Try to parse a non-relocatable expression. */ @@ -1100,7 +1100,6 @@ pru_assemble_arg_b (pru_insn_infoS *insn_info, const char *argstr) SET_INSN_FIELD (RS2, insn_info->insn_code, src2->index); SET_INSN_FIELD (RS2SEL, insn_info->insn_code, src2->regsel); } - } static void @@ -1554,7 +1553,6 @@ md_show_usage (FILE *stream) " -mlink-relax generate relocations for linker relaxation (default).\n" " -mno-link-relax don't generate relocations for linker relaxation.\n" )); - } /* This function is called once, at assembler startup time. @@ -1817,7 +1815,7 @@ pru_frob_label (symbolS *lab) /* Update the label's address with the current output pointer. */ symbol_set_frag (lab, frag_now); - S_SET_VALUE (lab, (valueT) frag_now_fix ()); + S_SET_VALUE (lab, frag_now_fix ()); /* Record this label for future adjustment after we find out what kind of data it references, and the required alignment therewith. */ diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index d0030de..f0b119f 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -332,6 +332,7 @@ struct riscv_option_stack struct riscv_option_stack *next; struct riscv_set_options options; riscv_subset_list_t *subset_list; + unsigned xlen; }; static struct riscv_option_stack *riscv_opts_stack = NULL; @@ -537,7 +538,7 @@ make_mapping_symbol (enum riscv_seg_mstate state, { /* Store current $x+arch into tc_segment_info. */ seg_info (now_seg)->tc_segment_info_data.arch_map_symbol = symbol; - xfree ((void *) buff); + xfree (buff); } /* If .fill or other data filling directive generates zero sized data, @@ -1885,15 +1886,13 @@ riscv_record_pcrel_fixup (htab_t p, const asection *sec, bfd_vma address, symbolS *symbol, bfd_vma target) { riscv_pcrel_hi_fixup entry = {sec, address, symbol, target}; - riscv_pcrel_hi_fixup **slot = - (riscv_pcrel_hi_fixup **) htab_find_slot (p, &entry, INSERT); + void **slot = htab_find_slot (p, &entry, INSERT); if (slot == NULL) return false; - *slot = (riscv_pcrel_hi_fixup *) xmalloc (sizeof (riscv_pcrel_hi_fixup)); - if (*slot == NULL) - return false; - **slot = entry; + riscv_pcrel_hi_fixup *pent = xmalloc (sizeof (*pent)); + *slot = pent; + *pent = entry; return true; } @@ -4323,12 +4322,12 @@ riscv_ip_hardcode (char *str, switch (imm_expr->X_op) { case O_constant: - values[num++] = (insn_t) imm_expr->X_add_number; + values[num++] = imm_expr->X_add_number; break; case O_big: /* Extract lower 32-bits of a big number. Assume that generic_bignum_to_int32 work on such number. */ - values[num++] = (insn_t) generic_bignum_to_int32 (); + values[num++] = generic_bignum_to_int32 (); break; default: /* The first value isn't constant, so it should be @@ -4617,7 +4616,7 @@ bool riscv_parse_name (const char *name, struct expressionS *ep, gas_assert (mode == expr_normal); regno = reg_lookup_internal (name, RCLASS_GPR); - if (regno == (unsigned int)-1) + if (regno == -1u) return false; if (symbol_find (name) != NULL) @@ -4936,7 +4935,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) /* Record PCREL_HI20. */ if (!riscv_record_pcrel_fixup (riscv_pcrel_hi_fixup_hash, - (const asection *) seg, + seg, md_pcrel_from (fixP), fixP->fx_addsy, target)) @@ -4965,8 +4964,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg) and set fx_done for -mno-relax. */ { bfd_vma location_pcrel_hi = S_GET_VALUE (fixP->fx_addsy) + *valP; - riscv_pcrel_hi_fixup search = - {(const asection *) seg, location_pcrel_hi, 0, 0}; + riscv_pcrel_hi_fixup search = {seg, location_pcrel_hi, 0, 0}; riscv_pcrel_hi_fixup *entry = htab_find (riscv_pcrel_hi_fixup_hash, &search); if (entry && entry->symbol @@ -5075,7 +5073,8 @@ s_riscv_option (int x ATTRIBUTE_UNUSED) } else if (strcmp (name, "norvc") == 0) { - riscv_update_subset (&riscv_rps_as, "-c"); + riscv_update_subset (&riscv_rps_as, "-c,-zca,-zcd,-zcf,-zcb,-zce,-zcmp," + "-zcmt,-zcmop,-zclsd"); riscv_arch_str (xlen, riscv_rps_as.subset_list, true/* update */); riscv_set_rvc (false); } @@ -5113,6 +5112,7 @@ s_riscv_option (int x ATTRIBUTE_UNUSED) s->next = riscv_opts_stack; s->options = riscv_opts; s->subset_list = riscv_rps_as.subset_list; + s->xlen = xlen; riscv_opts_stack = s; riscv_rps_as.subset_list = riscv_copy_subset_list (s->subset_list); } @@ -5129,6 +5129,7 @@ s_riscv_option (int x ATTRIBUTE_UNUSED) riscv_opts_stack = s->next; riscv_opts = s->options; riscv_rps_as.subset_list = s->subset_list; + xlen = s->xlen; riscv_release_subset_list (release_subsets); free (s); } @@ -5752,7 +5753,7 @@ riscv_insert_uleb128_fixes (bfd *abfd ATTRIBUTE_UNUSED, exp_dup->X_add_number = 0; /* Set addend of SUB_ULEB128 to zero. */ fix_new_exp (fragP, fragP->fr_fix, 0, exp_dup, 0, BFD_RELOC_RISCV_SUB_ULEB128); - free ((void *) exp_dup); + free (exp_dup); } } @@ -5779,7 +5780,7 @@ riscv_md_end (void) void riscv_adjust_symtab (void) { - bfd_map_over_sections (stdoutput, riscv_check_mapping_symbols, (char *) 0); + bfd_map_over_sections (stdoutput, riscv_check_mapping_symbols, NULL); elf_adjust_symtab (); } diff --git a/gas/config/tc-rl78.c b/gas/config/tc-rl78.c index 3593b00..36ccacd 100644 --- a/gas/config/tc-rl78.c +++ b/gas/config/tc-rl78.c @@ -705,7 +705,7 @@ rl78_cons_fix_new (fragS * frag, type = BFD_RELOC_RL78_DIFF; } - fixP = fix_new_exp (frag, where, (int) size, exp, 0, type); + fixP = fix_new_exp (frag, where, size, exp, 0, type); switch (exp->X_md) { /* These are intended to have values larger than the container, @@ -1508,5 +1508,5 @@ valueT md_section_align (segT segment, valueT size) { int align = bfd_section_alignment (segment); - return ((size + (1 << align) - 1) & -(1 << align)); + return (size + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } diff --git a/gas/config/tc-rx.c b/gas/config/tc-rx.c index 0ecda64..8685df1 100644 --- a/gas/config/tc-rx.c +++ b/gas/config/tc-rx.c @@ -2252,7 +2252,7 @@ rx_cons_fix_new (fragS * frag, type = BFD_RELOC_RX_DIFF; } - fix_new_exp (frag, where, (int) size, exp, 0, type); + fix_new_exp (frag, where, size, exp, 0, type); } void diff --git a/gas/config/tc-s12z.c b/gas/config/tc-s12z.c index 9c8fcfe..5110470 100644 --- a/gas/config/tc-s12z.c +++ b/gas/config/tc-s12z.c @@ -186,7 +186,7 @@ valueT md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } void @@ -579,9 +579,7 @@ lex_opr (uint8_t *buffer, int *n_bytes, expressionS *exp, } else if (lex_reg_name (REG_BIT_Dn, ®2)) { - if (c >= -1 * (long) (0x1u << 17) - && - c < (long) (0x1u << 17) - 1) + if (c >= -1 * (1L << 17) && c < (1L << 17) - 1) { *n_bytes = 3; *xb = 0x80; @@ -3891,7 +3889,7 @@ tc_gen_reloc (asection *section, fixS *fixp) *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixp->fx_file, fixp->fx_line, _("Relocation %d is not supported by object file format."), @@ -3930,11 +3928,11 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) { long value = *valP; - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; /* We don't actually support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); /* @@ -3946,23 +3944,23 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) switch (fixP->fx_r_type) { case BFD_RELOC_8: - ((bfd_byte *) where)[0] = (bfd_byte) value; + where[0] = value; break; case BFD_RELOC_16: - bfd_putb16 ((bfd_vma) value, (unsigned char *) where); + bfd_putb16 (value, where); break; case BFD_RELOC_24: - bfd_putb24 ((bfd_vma) value, (unsigned char *) where); + bfd_putb24 (value, where); break; case BFD_RELOC_S12Z_OPR: { switch (fixP->fx_size) { case 3: - bfd_putb24 ((bfd_vma) value, (unsigned char *) where); + bfd_putb24 (value, where); break; case 2: - bfd_putb16 ((bfd_vma) value, (unsigned char *) where); + bfd_putb16 (value, where); break; default: abort (); @@ -3970,14 +3968,14 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) } break; case BFD_RELOC_32: - bfd_putb32 ((bfd_vma) value, (unsigned char *) where); + bfd_putb32 (value, where); break; case BFD_RELOC_16_PCREL: if (value < -0x4000 || value > 0x3FFF) as_bad_where (fixP->fx_file, fixP->fx_line, _("Value out of 16-bit range.")); - bfd_putb16 ((bfd_vma) value | 0x8000, (unsigned char *) where); + bfd_putb16 (value | 0x8000, where); break; default: diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c index 6e9dca0..d5d3976 100644 --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -727,9 +727,9 @@ s390_insert_operand (unsigned char *insn, { if (operand->flags & S390_OPERAND_PCREL) { - val = (offsetT) ((addressT) val << 1); - min = (offsetT) ((addressT) min << 1); - max = (offsetT) ((addressT) max << 1); + val = (addressT) val << 1; + min = (addressT) min << 1; + max = (addressT) max << 1; } s390_bad_operand_out_of_range (operand_number, val, min, max, @@ -738,7 +738,7 @@ s390_insert_operand (unsigned char *insn, return; } /* val is ok, now restrict it to operand->bits bits. */ - uval = (addressT) val & ((((addressT) 1 << (operand->bits-1)) << 1) - 1); + uval = val & ((((addressT) 1 << (operand->bits-1)) << 1) - 1); /* val is restrict, now check for special case. */ if (operand->bits == 20 && operand->shift == 20) uval = (uval >> 12) | ((uval & 0xfff) << 8); @@ -748,8 +748,8 @@ s390_insert_operand (unsigned char *insn, addressT min, max; max = (((addressT) 1 << (operand->bits - 1)) << 1) - 1; - min = (offsetT) 0; - uval = (addressT) val; + min = 0; + uval = val; /* Vector register operands have an additional bit in the RXB field. */ @@ -1316,7 +1316,7 @@ s390_elf_cons (int nbytes /* 1=.byte, 2=.word, 4=.long */) as_bad (_("relocation not applicable")); } else - emit_expr (&exp, (unsigned int) nbytes); + emit_expr (&exp, nbytes); } while (*input_line_pointer++ == ','); @@ -1906,8 +1906,7 @@ md_gather_operands (char *str, fixP = fix_new_exp (frag_now, f - frag_now->fr_literal, 4, &fixups[i].exp, (operand->flags & S390_OPERAND_PCREL) != 0, - ((bfd_reloc_code_real_type) - (fixups[i].opindex + (int) BFD_RELOC_UNUSED))); + fixups[i].opindex + BFD_RELOC_UNUSED); /* s390_insert_operand () does the range checking. */ if (operand->flags & S390_OPERAND_PCREL) fixP->fx_no_overflow = 1; @@ -2084,7 +2083,7 @@ s390_literals (int ignore ATTRIBUTE_UNUSED) /* Emit symbol for start of literal pool. */ S_SET_SEGMENT (lp_sym, now_seg); - S_SET_VALUE (lp_sym, (valueT) frag_now_fix ()); + S_SET_VALUE (lp_sym, frag_now_fix ()); symbol_set_frag (lp_sym, frag_now); while (lpe_list) @@ -2092,7 +2091,7 @@ s390_literals (int ignore ATTRIBUTE_UNUSED) lpe = lpe_list; lpe_list = lpe_list->next; S_SET_SEGMENT (lpe->sym, now_seg); - S_SET_VALUE (lpe->sym, (valueT) frag_now_fix ()); + S_SET_VALUE (lpe->sym, frag_now_fix ()); symbol_set_frag (lpe->sym, frag_now); /* Emit literal pool entry. */ @@ -2490,19 +2489,19 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) else fixP->fx_done = 1; - if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + if (fixP->fx_r_type >= BFD_RELOC_UNUSED) { const struct s390_operand *operand; int opindex; - opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + opindex = fixP->fx_r_type - BFD_RELOC_UNUSED; operand = &s390_operands[opindex]; if (fixP->fx_done) { /* Insert the fully resolved operand value. */ s390_insert_operand ((unsigned char *) where, operand, - (offsetT) value, fixP->fx_file, fixP->fx_line, 0); + value, fixP->fx_file, fixP->fx_line, 0); return; } @@ -2631,9 +2630,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) if (fixP->fx_pcrel) value >>= 1; - mop = bfd_getb16 ((unsigned char *) where); - mop |= (unsigned short) (value & 0xfff); - bfd_putb16 ((bfd_vma) mop, (unsigned char *) where); + mop = bfd_getb16 (where); + mop |= value & 0xfff; + bfd_putb16 (mop, where); } break; @@ -2643,10 +2642,10 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) if (fixP->fx_done) { unsigned int mop; - mop = bfd_getb32 ((unsigned char *) where); - mop |= (unsigned int) ((value & 0xfff) << 8 | - (value & 0xff000) >> 12); - bfd_putb32 ((bfd_vma) mop, (unsigned char *) where); + mop = bfd_getb32 (where); + mop |= ((value & 0xfff) << 8 + | (value & 0xff000) >> 12); + bfd_putb32 (mop, where); } break; @@ -2686,9 +2685,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) unsigned int mop; value >>= 1; - mop = bfd_getb32 ((unsigned char *) where - 1); - mop |= (unsigned int) (value & 0xffffff); - bfd_putb32 ((bfd_vma) mop, (unsigned char *) where - 1); + mop = bfd_getb32 (where - 1); + mop |= value & 0xffffff; + bfd_putb32 (mop, where - 1); } break; diff --git a/gas/config/tc-score.c b/gas/config/tc-score.c index 79dcf77..f3f1b2a 100644 --- a/gas/config/tc-score.c +++ b/gas/config/tc-score.c @@ -244,7 +244,7 @@ const size_t md_longopts_size = sizeof (md_longopts); #define s3_GP 28 #define s3_PIC_CALL_REG 29 #define s3_MAX_LITERAL_POOL_SIZE 1024 -#define s3_FAIL 0x80000000 +#define s3_FAIL -2147483648 #define s3_SUCCESS 0 #define s3_INSN48_SIZE 6 #define s3_INSN_SIZE 4 @@ -1013,7 +1013,7 @@ s3_end_of_line (char *str) s3_skip_whitespace (str); if (*str != '\0') { - retval = (int) s3_FAIL; + retval = s3_FAIL; if (!s3_inst.error) s3_inst.error = s3_BAD_GARBAGE; @@ -1032,7 +1032,7 @@ s3_score_reg_parse (char **ccp, htab_t htab) p = start; if (!ISALPHA (*p) || !is_name_beginner (*p)) - return (int) s3_FAIL; + return s3_FAIL; c = *p++; @@ -1048,7 +1048,7 @@ s3_score_reg_parse (char **ccp, htab_t htab) *ccp = p; return reg->number; } - return (int) s3_FAIL; + return s3_FAIL; } /* If shift <= 0, only return reg. */ @@ -1057,10 +1057,10 @@ static int s3_reg_required_here (char **str, int shift, enum s3_score_reg_type reg_type) { static char buff[s3_MAX_LITERAL_POOL_SIZE]; - int reg = (int) s3_FAIL; + int reg = s3_FAIL; char *start = *str; - if ((reg = s3_score_reg_parse (str, s3_all_reg_maps[reg_type].htab)) != (int) s3_FAIL) + if ((reg = s3_score_reg_parse (str, s3_all_reg_maps[reg_type].htab)) != s3_FAIL) { if (reg_type == s3_REG_TYPE_SCORE) { @@ -1105,18 +1105,18 @@ s3_skip_past_comma (char **str) if (c == ',' && comma++) { s3_inst.error = s3_BAD_SKIP_COMMA; - return (int) s3_FAIL; + return s3_FAIL; } } if ((c == '\0') || (comma == 0)) { s3_inst.error = s3_BAD_SKIP_COMMA; - return (int) s3_FAIL; + return s3_FAIL; } *str = p; - return comma ? s3_SUCCESS : (int) s3_FAIL; + return comma ? s3_SUCCESS : s3_FAIL; } static void @@ -1125,12 +1125,12 @@ s3_do_rdrsrs (char *str) int reg; s3_skip_whitespace (str); - if ((reg = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if ((reg = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -1192,7 +1192,7 @@ s3_my_get_expression (expressionS * ep, char **str) *str = input_line_pointer; input_line_pointer = save_in; s3_inst.error = _("illegal expression"); - return (int) s3_FAIL; + return s3_FAIL; } /* Get rid of any bignums now, so that we don't generate an error for which we can't establish a line number later on. Big numbers are never valid @@ -1205,7 +1205,7 @@ s3_my_get_expression (expressionS * ep, char **str) s3_inst.error = _("invalid constant"); *str = input_line_pointer; input_line_pointer = save_in; - return (int) s3_FAIL; + return s3_FAIL; } if ((ep->X_add_symbol != NULL) @@ -1224,7 +1224,7 @@ s3_my_get_expression (expressionS * ep, char **str) s3_inst.error = s3_BAD_ARGS; *str = input_line_pointer; input_line_pointer = save_in; - return (int) s3_FAIL; + return s3_FAIL; } *str = input_line_pointer; @@ -1263,14 +1263,14 @@ s3_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) { if (!(val >= -0x2000 && val <= 0x3fff)) { - return (int) s3_FAIL; + return s3_FAIL; } } else { if (!(val >= -8192 && val <= 8191)) { - return (int) s3_FAIL; + return s3_FAIL; } } @@ -1282,14 +1282,14 @@ s3_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) { if (!(val >= -0x7fff && val <= 0xffff && val != 0x8000)) { - return (int) s3_FAIL; + return s3_FAIL; } } else { if (!(val >= -32767 && val <= 32768)) { - return (int) s3_FAIL; + return s3_FAIL; } } @@ -1304,7 +1304,7 @@ s3_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) val = 0; return val; } - return (int) s3_FAIL; + return s3_FAIL; case _IMM32: if (val >= 0 && val <= 0xffffffff) @@ -1313,7 +1313,7 @@ s3_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) } else { - return (int) s3_FAIL; + return s3_FAIL; } default: @@ -1327,7 +1327,7 @@ s3_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) break; } - return (int) s3_FAIL; + return s3_FAIL; } static int @@ -1358,18 +1358,18 @@ s3_data_op2 (char **str, int shift, enum score_data_type data_type) if (*dataptr == '|') /* process PCE */ { - if (s3_my_get_expression (&s3_inst.reloc.exp, &pp) == (int) s3_FAIL) - return (int) s3_FAIL; + if (s3_my_get_expression (&s3_inst.reloc.exp, &pp) == s3_FAIL) + return s3_FAIL; s3_end_of_line (pp); if (s3_inst.error != 0) - return (int) s3_FAIL; /* to ouptut_inst to printf out the error */ + return s3_FAIL; /* to ouptut_inst to printf out the error */ *str = dataptr; } else /* process 16 bit */ { - if (s3_my_get_expression (&s3_inst.reloc.exp, str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, str) == s3_FAIL) { - return (int) s3_FAIL; + return s3_FAIL; } dataptr = (char *)data_exp; @@ -1424,7 +1424,7 @@ s3_data_op2 (char **str, int shift, enum score_data_type data_type) || ((*dataptr == '-') && (*(dataptr + 1) != '0')))) { s3_inst.error = s3_BAD_ARGS; - return (int) s3_FAIL; + return s3_FAIL; } } @@ -1444,7 +1444,7 @@ s3_data_op2 (char **str, int shift, enum score_data_type data_type) || (data_type == _IMM4))) { s3_inst.error = s3_BAD_ARGS; - return (int) s3_FAIL; + return s3_FAIL; } if (s3_inst.reloc.exp.X_add_symbol) @@ -1452,7 +1452,7 @@ s3_data_op2 (char **str, int shift, enum score_data_type data_type) switch (data_type) { case _SIMM16_LA: - return (int) s3_FAIL; + return s3_FAIL; case _VALUE_HI16: s3_inst.reloc.type = BFD_RELOC_HI16_S; s3_inst.reloc.pc_rel = 0; @@ -1487,7 +1487,7 @@ s3_data_op2 (char **str, int shift, enum score_data_type data_type) if (data_type == _SIMM16_LA && s3_inst.reloc.exp.X_unsigned == 1) { value = s3_validate_immediate (s3_inst.reloc.exp.X_add_number, _SIMM16_LA_POS, hex_p); - if (value == (int) s3_FAIL) /* for advance to check if this is ldis */ + if (value == s3_FAIL) /* for advance to check if this is ldis */ if ((s3_inst.reloc.exp.X_add_number & 0xffff) == 0) { s3_inst.instruction |= 0x8000000; @@ -1500,14 +1500,14 @@ s3_data_op2 (char **str, int shift, enum score_data_type data_type) value = s3_validate_immediate (s3_inst.reloc.exp.X_add_number, data_type, hex_p); } - if (value == (int) s3_FAIL) + if (value == s3_FAIL) { if (data_type == _IMM32) { sprintf (s3_err_msg, _("invalid constant: %d bit expression not in range %u..%u"), s3_score_df_range[data_type].bits, - 0, (unsigned)0xffffffff); + 0, 0xffffffff); } else if (data_type == _IMM5_MULTI_LOAD) { @@ -1531,7 +1531,7 @@ s3_data_op2 (char **str, int shift, enum score_data_type data_type) } s3_inst.error = s3_err_msg; - return (int) s3_FAIL; + return s3_FAIL; } if (((s3_score_df_range[data_type].range[0] != 0) || (data_type == _IMM5_RANGE_8_31)) @@ -1551,7 +1551,7 @@ s3_data_op2 (char **str, int shift, enum score_data_type data_type) && (((s3_inst.instruction >> 20) & 0x1F) != 0x10)) { s3_inst.error = _("invalid constant: bit expression not defined"); - return (int) s3_FAIL; + return s3_FAIL; } } @@ -1564,10 +1564,10 @@ s3_do_rdsi16 (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 1, _SIMM16) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 1, _SIMM16) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; /* ldi.->ldiu! only for imm5 */ @@ -1632,10 +1632,10 @@ s3_do_ldis (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 1, _IMM16) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 1, _IMM16) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; } @@ -1645,9 +1645,9 @@ s3_do_sub_rdsi16 (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_data_op2 (&str, 1, _SIMM16_NEG) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_data_op2 (&str, 1, _SIMM16_NEG) != s3_FAIL) s3_end_of_line (str); } @@ -1657,9 +1657,9 @@ s3_do_sub_rdi16 (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_data_op2 (&str, 1, _IMM16_NEG) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_data_op2 (&str, 1, _IMM16_NEG) != s3_FAIL) s3_end_of_line (str); } @@ -1669,10 +1669,10 @@ s3_do_rdrssi14 (char *str) /* -(2^13)~((2^13)-1) */ { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL) s3_data_op2 (&str, 1, _SIMM14); } @@ -1682,11 +1682,11 @@ s3_do_sub_rdrssi14 (char *str) /* -(2^13)~((2^13)-1) */ { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_data_op2 (&str, 1, _SIMM14_NEG) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_data_op2 (&str, 1, _SIMM14_NEG) != s3_FAIL) s3_end_of_line (str); } @@ -1697,12 +1697,12 @@ s3_do_rdrsi5 (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 10, _IMM5) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 10, _IMM5) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; if ((((s3_inst.instruction >> 20) & 0x1f) == ((s3_inst.instruction >> 15) & 0x1f)) @@ -1722,11 +1722,11 @@ s3_do_rdrsi14 (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_data_op2 (&str, 1, _IMM14) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_data_op2 (&str, 1, _IMM14) != s3_FAIL) s3_end_of_line (str); } @@ -1736,10 +1736,10 @@ s3_do_xrsi5 (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 10, _IMM5) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 10, _IMM5) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; if ((s3_inst.relax_inst != 0x8000) && (((s3_inst.instruction >> 15) & 0x10) == 0)) @@ -1757,10 +1757,10 @@ s3_do_rdi16 (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 1, _IMM16) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 1, _IMM16) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; /* ldis */ @@ -1806,8 +1806,8 @@ s3_do_macro_rdi32hi (char *str) s3_skip_whitespace (str); /* Do not handle s3_end_of_line(). */ - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL) s3_data_op2 (&str, 1, _VALUE_HI16); } @@ -1817,8 +1817,8 @@ s3_do_macro_rdi32lo (char *str) s3_skip_whitespace (str); /* Do not handle s3_end_of_line(). */ - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL) s3_data_op2 (&str, 1, _VALUE_LO16); } @@ -1828,9 +1828,9 @@ s3_do_rdi16_pic (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_data_op2 (&str, 1, _IMM16_pic) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_data_op2 (&str, 1, _IMM16_pic) != s3_FAIL) s3_end_of_line (str); } @@ -1840,9 +1840,9 @@ s3_do_addi_s_pic (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_data_op2 (&str, 1, _SIMM16_pic) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_data_op2 (&str, 1, _SIMM16_pic) != s3_FAIL) s3_end_of_line (str); } @@ -1852,9 +1852,9 @@ s3_do_addi_u_pic (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_data_op2 (&str, 1, _IMM16_LO16_pic) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_data_op2 (&str, 1, _IMM16_LO16_pic) != s3_FAIL) s3_end_of_line (str); } @@ -1864,7 +1864,7 @@ s3_do_rd (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL) s3_end_of_line (str); } @@ -1874,8 +1874,8 @@ s3_do_rs (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; if ((s3_inst.relax_inst != 0x8000) ) @@ -1892,7 +1892,7 @@ s3_do_i15 (char *str) { s3_skip_whitespace (str); - if (s3_data_op2 (&str, 10, _IMM15) != (int) s3_FAIL) + if (s3_data_op2 (&str, 10, _IMM15) != s3_FAIL) s3_end_of_line (str); } @@ -1901,7 +1901,7 @@ s3_do_xi5x (char *str) { s3_skip_whitespace (str); - if (s3_data_op2 (&str, 15, _IMM5) == (int) s3_FAIL || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_data_op2 (&str, 15, _IMM5) == s3_FAIL || s3_end_of_line (str) == s3_FAIL) return; if (s3_inst.relax_inst != 0x8000) @@ -1916,10 +1916,10 @@ s3_do_rdrs (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; if (s3_inst.relax_inst != 0x8000) @@ -1949,9 +1949,9 @@ s3_do_rdcrs (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE_CR) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE_CR) != s3_FAIL) s3_end_of_line (str); } @@ -1964,15 +1964,15 @@ s3_do_rdsrs (char *str) /* mfsr */ if ((s3_inst.instruction & 0xff) == 0x50) { - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL - && s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE_SR) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL + && s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE_SR) != s3_FAIL) s3_end_of_line (str); } else { - if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) != (int) s3_FAIL - && s3_skip_past_comma (&str) != (int) s3_FAIL) + if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) != s3_FAIL + && s3_skip_past_comma (&str) != s3_FAIL) s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE_SR); } } @@ -1983,10 +1983,10 @@ s3_do_rdxrs (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; if ((s3_inst.relax_inst != 0x8000) && (((s3_inst.instruction >> 10) & 0x10) == 0) @@ -2005,10 +2005,10 @@ s3_do_rsrs (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; if ((s3_inst.relax_inst != 0x8000) && (((s3_inst.instruction >> 20) & 0x1f) == 3) ) @@ -2028,23 +2028,23 @@ s3_do_ceinst (char *str) strbak = str; s3_skip_whitespace (str); - if (s3_data_op2 (&str, 20, _IMM5) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 5, _IMM5) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 0, _IMM5) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_data_op2 (&str, 20, _IMM5) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 5, _IMM5) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 0, _IMM5) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } else { str = strbak; - if (s3_data_op2 (&str, 0, _IMM25) == (int) s3_FAIL) + if (s3_data_op2 (&str, 0, _IMM25) == s3_FAIL) return; } } @@ -2056,7 +2056,7 @@ s3_reglow_required_here (char **str, int shift) int reg; char *start = *str; - if ((reg = s3_score_reg_parse (str, s3_all_reg_maps[s3_REG_TYPE_SCORE].htab)) != (int) s3_FAIL) + if ((reg = s3_score_reg_parse (str, s3_all_reg_maps[s3_REG_TYPE_SCORE].htab)) != s3_FAIL) { if ((reg == 1) && (s3_nor1 == 1) && (s3_inst.bwarn == 0)) { @@ -2076,7 +2076,7 @@ s3_reglow_required_here (char **str, int shift) *str = start; sprintf (buff, _("low register (r0-r15) expected, not '%.100s'"), start); s3_inst.error = buff; - return (int) s3_FAIL; + return s3_FAIL; } /* Handle add!/and!/or!/sub!. */ @@ -2085,10 +2085,10 @@ s3_do16_rdrs2 (char *str) { s3_skip_whitespace (str); - if (s3_reglow_required_here (&str, 4) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reglow_required_here (&str, 0) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reglow_required_here (&str, 4) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reglow_required_here (&str, 0) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -2100,8 +2100,8 @@ s3_do16_br (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 0, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 0, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -2115,8 +2115,8 @@ s3_do16_brr (char *str) s3_skip_whitespace (str); - if ((rd = s3_reg_required_here (&str, 0,s3_REG_TYPE_SCORE)) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if ((rd = s3_reg_required_here (&str, 0,s3_REG_TYPE_SCORE)) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -2127,8 +2127,8 @@ static void s3_do_ltb (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL) { return; } @@ -2140,9 +2140,9 @@ s3_do_ltb (char *str) return; } - if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == s3_FAIL) { return; } @@ -2394,7 +2394,7 @@ s3_handle_dependency (struct s3_score_it *theinst) static enum insn_class s3_get_insn_class_from_type (enum score_insn_type type) { - enum insn_class retval = (int) s3_FAIL; + enum insn_class retval = s3_FAIL; switch (type) { @@ -2741,7 +2741,7 @@ s3_append_insn (char *str, bool gen_frag_p) if (s3_inst.error) { - retval = (int) s3_FAIL; + retval = s3_FAIL; as_bad (_("%s -- `%s'"), s3_inst.error, s3_inst.str); s3_inst.error = NULL; } @@ -2754,10 +2754,10 @@ s3_do16_mv_cmp (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 5, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 0, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 5, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 0, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -2768,10 +2768,10 @@ s3_do16_cmpi (char *str) { s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 5, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 0, _SIMM5) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 5, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 0, _SIMM5) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -2782,10 +2782,10 @@ s3_do16_addi (char *str) { s3_skip_whitespace (str); - if (s3_reglow_required_here (&str, 6) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 0, _SIMM6) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reglow_required_here (&str, 6) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 0, _SIMM6) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -2797,10 +2797,10 @@ s3_do16_rdi5 (char *str) { s3_skip_whitespace (str); - if (s3_reglow_required_here (&str, 5) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 0, _IMM5) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reglow_required_here (&str, 5) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 0, _IMM5) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; else { @@ -2817,7 +2817,7 @@ s3_do16_xi5 (char *str) { s3_skip_whitespace (str); - if (s3_data_op2 (&str, 0, _IMM5) == (int) s3_FAIL || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_data_op2 (&str, 0, _IMM5) == s3_FAIL || s3_end_of_line (str) == s3_FAIL) return; } @@ -2831,7 +2831,7 @@ s3_validate_immediate_align (int val, unsigned int data_type) if (val % 2) { s3_inst.error = _("address offset must be half word alignment"); - return (int) s3_FAIL; + return s3_FAIL; } } else if ((data_type == _IMM5_RSHIFT_2) || (data_type == _IMM10_RSHIFT_2)) @@ -2839,7 +2839,7 @@ s3_validate_immediate_align (int val, unsigned int data_type) if (val % 4) { s3_inst.error = _("address offset must be word alignment"); - return (int) s3_FAIL; + return s3_FAIL; } } @@ -2871,19 +2871,19 @@ s3_exp_ldst_offset (char **str, int shift, unsigned int data_type) data_type += 24; } - if (s3_my_get_expression (&s3_inst.reloc.exp, str) == (int) s3_FAIL) - return (int) s3_FAIL; + if (s3_my_get_expression (&s3_inst.reloc.exp, str) == s3_FAIL) + return s3_FAIL; if (s3_inst.reloc.exp.X_op == O_constant) { /* Need to check the immediate align. */ int value = s3_validate_immediate_align (s3_inst.reloc.exp.X_add_number, data_type); - if (value == (int) s3_FAIL) - return (int) s3_FAIL; + if (value == s3_FAIL) + return s3_FAIL; value = s3_validate_immediate (s3_inst.reloc.exp.X_add_number, data_type, 0); - if (value == (int) s3_FAIL) + if (value == s3_FAIL) { if (data_type < 30) sprintf (s3_err_msg, @@ -2896,7 +2896,7 @@ s3_exp_ldst_offset (char **str, int shift, unsigned int data_type) s3_score_df_range[data_type - 24].bits, s3_score_df_range[data_type - 24].range[0], s3_score_df_range[data_type - 24].range[1]); s3_inst.error = s3_err_msg; - return (int) s3_FAIL; + return s3_FAIL; } if (data_type == _IMM5_RSHIFT_1) @@ -2936,8 +2936,8 @@ s3_do_ldst_insn (char *str) s3_skip_whitespace (str); - if (((conflict_reg = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL)) + if (((conflict_reg = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL)) return; /* ld/sw rD, [rA, simm15] ld/sw rD, [rA]+, simm12 ld/sw rD, [rA, simm12]+. */ @@ -2946,7 +2946,7 @@ s3_do_ldst_insn (char *str) str++; s3_skip_whitespace (str); - if ((reg = s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) + if ((reg = s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE)) == s3_FAIL) return; /* Conflicts can occur on stores as well as loads. */ @@ -2964,8 +2964,8 @@ s3_do_ldst_insn (char *str) /* ld/sw rD, [rA]+, simm12. */ if (s3_skip_past_comma (&str) == s3_SUCCESS) { - if ((s3_exp_ldst_offset (&str, 3, _SIMM12) == (int) s3_FAIL) - || (s3_end_of_line (str) == (int) s3_FAIL)) + if ((s3_exp_ldst_offset (&str, 3, _SIMM12) == s3_FAIL) + || (s3_end_of_line (str) == s3_FAIL)) return; if (conflict_reg) @@ -3005,7 +3005,7 @@ s3_do_ldst_insn (char *str) else { s3_SET_INSN_ERROR (NULL); - if (s3_end_of_line (str) == (int) s3_FAIL) + if (s3_end_of_line (str) == s3_FAIL) { return; } @@ -3024,7 +3024,7 @@ s3_do_ldst_insn (char *str) /* ld/sw rD, [rA] convert to ld/sw rD, [rA, simm15]. */ else { - if (s3_end_of_line (str) == (int) s3_FAIL) + if (s3_end_of_line (str) == s3_FAIL) return; ldst_idx = s3_inst.instruction & OPC_PSEUDOLDST_MASK; @@ -3083,13 +3083,13 @@ s3_do_ldst_insn (char *str) /* ld/sw rD, [rA, simm15] ld/sw rD, [rA, simm12]+. */ else { - if (s3_skip_past_comma (&str) == (int) s3_FAIL) + if (s3_skip_past_comma (&str) == s3_FAIL) { s3_inst.error = _("pre-indexed expression expected"); return; } - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL) return; s3_skip_whitespace (str); @@ -3121,7 +3121,7 @@ s3_do_ldst_insn (char *str) } } - if (s3_end_of_line (str) == (int) s3_FAIL) + if (s3_end_of_line (str) == s3_FAIL) return; if (s3_inst.reloc.exp.X_op == O_constant) @@ -3153,7 +3153,7 @@ s3_do_ldst_insn (char *str) } value = s3_validate_immediate (s3_inst.reloc.exp.X_add_number, data_type, 0); - if (value == (int) s3_FAIL) + if (value == s3_FAIL) { if (data_type < 30) sprintf (s3_err_msg, @@ -3269,7 +3269,7 @@ s3_do_cache (char *str) { s3_skip_whitespace (str); - if ((s3_data_op2 (&str, 20, _IMM5) == (int) s3_FAIL) || (s3_skip_past_comma (&str) == (int) s3_FAIL)) + if ((s3_data_op2 (&str, 20, _IMM5) == s3_FAIL) || (s3_skip_past_comma (&str) == s3_FAIL)) { return; } @@ -3286,13 +3286,13 @@ s3_do_cache (char *str) str++; s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL) return; s3_skip_whitespace (str); /* cache op, [rA] */ - if (s3_skip_past_comma (&str) == (int) s3_FAIL) + if (s3_skip_past_comma (&str) == s3_FAIL) { s3_SET_INSN_ERROR (NULL); if (*str != ']') @@ -3305,7 +3305,7 @@ s3_do_cache (char *str) /* cache op, [rA, simm15] */ else { - if (s3_exp_ldst_offset (&str, 0, _SIMM15) == (int) s3_FAIL) + if (s3_exp_ldst_offset (&str, 0, _SIMM15) == s3_FAIL) { return; } @@ -3318,7 +3318,7 @@ s3_do_cache (char *str) } } - if (s3_end_of_line (str) == (int) s3_FAIL) + if (s3_end_of_line (str) == s3_FAIL) return; } else @@ -3335,21 +3335,21 @@ s3_do_crdcrscrsimm5 (char *str) strbak = str; s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE_CR) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE_CR) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE_CR) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE_CR) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE_CR) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE_CR) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL) { str = strbak; /* cop1 cop_code20. */ - if (s3_data_op2 (&str, 5, _IMM20) == (int) s3_FAIL) + if (s3_data_op2 (&str, 5, _IMM20) == s3_FAIL) return; } else { - if (s3_data_op2 (&str, 5, _IMM5) == (int) s3_FAIL) + if (s3_data_op2 (&str, 5, _IMM5) == s3_FAIL) return; } @@ -3362,8 +3362,8 @@ s3_do_ldst_cop (char *str) { s3_skip_whitespace (str); - if ((s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE_CR) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL)) + if ((s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE_CR) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL)) return; if (*str == '[') @@ -3371,14 +3371,14 @@ s3_do_ldst_cop (char *str) str++; s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == s3_FAIL) return; s3_skip_whitespace (str); if (*str++ != ']') { - if (s3_exp_ldst_offset (&str, 5, _IMM10_RSHIFT_2) == (int) s3_FAIL) + if (s3_exp_ldst_offset (&str, 5, _IMM10_RSHIFT_2) == s3_FAIL) return; s3_skip_whitespace (str); @@ -3401,7 +3401,7 @@ s3_do16_ldst_insn (char *str) int conflict_reg = 0; s3_skip_whitespace (str); - if ((s3_reglow_required_here (&str, 8) == (int) s3_FAIL) || (s3_skip_past_comma (&str) == (int) s3_FAIL)) + if ((s3_reglow_required_here (&str, 8) == s3_FAIL) || (s3_skip_past_comma (&str) == s3_FAIL)) return; if (*str == '[') @@ -3410,7 +3410,7 @@ s3_do16_ldst_insn (char *str) str++; s3_skip_whitespace (str); - if ((conflict_reg = s3_reglow_required_here (&str, 5)) == (int) s3_FAIL) + if ((conflict_reg = s3_reglow_required_here (&str, 5)) == s3_FAIL) return; if (conflict_reg&0x8) { @@ -3424,17 +3424,17 @@ s3_do16_ldst_insn (char *str) if (*str == ']') { str++; - if (s3_end_of_line (str) == (int) s3_FAIL) + if (s3_end_of_line (str) == s3_FAIL) return; } else { - if (s3_skip_past_comma (&str) == (int) s3_FAIL) + if (s3_skip_past_comma (&str) == s3_FAIL) { s3_inst.error = _("comma is expected"); return; } - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL) return; s3_skip_whitespace (str); if (*str++ != ']') @@ -3442,7 +3442,7 @@ s3_do16_ldst_insn (char *str) s3_inst.error = _("missing ]"); return; } - if (s3_end_of_line (str) == (int) s3_FAIL) + if (s3_end_of_line (str) == s3_FAIL) return; if (s3_inst.reloc.exp.X_op == O_constant) { @@ -3450,7 +3450,7 @@ s3_do16_ldst_insn (char *str) unsigned int data_type; data_type = _IMM5_RSHIFT_2; value = s3_validate_immediate (s3_inst.reloc.exp.X_add_number, data_type, 0); - if (value == (int) s3_FAIL) + if (value == s3_FAIL) { if (data_type < 30) sprintf (s3_err_msg, @@ -3487,12 +3487,12 @@ s3_do_lw48 (char *str) s3_skip_whitespace (str); - if ((s3_reg_required_here (&str, 37, s3_REG_TYPE_SCORE) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL)) + if ((s3_reg_required_here (&str, 37, s3_REG_TYPE_SCORE) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL)) return; - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -3530,12 +3530,12 @@ s3_do_sw48 (char *str) s3_skip_whitespace (str); - if ((s3_reg_required_here (&str, 37, s3_REG_TYPE_SCORE) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL)) + if ((s3_reg_required_here (&str, 37, s3_REG_TYPE_SCORE) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL)) return; - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -3572,12 +3572,12 @@ s3_do_ldi48 (char *str) s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 37, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 37, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL) return; - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -3602,7 +3602,7 @@ s3_do_sdbbp48 (char *str) { s3_skip_whitespace (str); - if (s3_data_op2 (&str, 5, _IMM5) == (int) s3_FAIL || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_data_op2 (&str, 5, _IMM5) == s3_FAIL || s3_end_of_line (str) == s3_FAIL) return; } @@ -3611,12 +3611,12 @@ s3_do_and48 (char *str) { s3_skip_whitespace (str); - if (s3_reglow_required_here (&str, 38) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reglow_required_here (&str, 34) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 2, _IMM32) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reglow_required_here (&str, 38) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reglow_required_here (&str, 34) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 2, _IMM32) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; } @@ -3625,12 +3625,12 @@ s3_do_or48 (char *str) { s3_skip_whitespace (str); - if (s3_reglow_required_here (&str, 38) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reglow_required_here (&str, 34) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 2, _IMM32) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reglow_required_here (&str, 38) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reglow_required_here (&str, 34) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 2, _IMM32) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; } @@ -3650,9 +3650,9 @@ s3_do_mbitclr (char *str) s3_inst.instruction &= 0x0; - if ((s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL) - || (s3_data_op2 (&str, 0, _IMM11) == (int) s3_FAIL)) + if ((s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL) + || (s3_data_op2 (&str, 0, _IMM11) == s3_FAIL)) return; /* Get imm11 and refill opcode. */ @@ -3669,8 +3669,8 @@ s3_do_mbitclr (char *str) } str++; - if ((s3_skip_past_comma (&str) == (int) s3_FAIL) - || (s3_data_op2 (&str, 10, _IMM5) == (int) s3_FAIL)) + if ((s3_skip_past_comma (&str) == s3_FAIL) + || (s3_data_op2 (&str, 10, _IMM5) == s3_FAIL)) return; /* Set imm11 to opcode. */ @@ -3695,9 +3695,9 @@ s3_do_mbitset (char *str) s3_inst.instruction &= 0x0; - if ((s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL) - || (s3_data_op2 (&str, 0, _IMM11) == (int) s3_FAIL)) + if ((s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL) + || (s3_data_op2 (&str, 0, _IMM11) == s3_FAIL)) return; /* Get imm11 and refill opcode. */ @@ -3714,8 +3714,8 @@ s3_do_mbitset (char *str) } str++; - if ((s3_skip_past_comma (&str) == (int) s3_FAIL) - || (s3_data_op2 (&str, 10, _IMM5) == (int) s3_FAIL)) + if ((s3_skip_past_comma (&str) == s3_FAIL) + || (s3_data_op2 (&str, 10, _IMM5) == s3_FAIL)) return; /* Set imm11 to opcode. */ @@ -3729,10 +3729,10 @@ s3_do16_slli_srli (char *str) { s3_skip_whitespace (str); - if ((s3_reglow_required_here (&str, 5) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL) - || s3_data_op2 (&str, 0, _IMM5) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if ((s3_reglow_required_here (&str, 5) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL) + || s3_data_op2 (&str, 0, _IMM5) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; } @@ -3741,10 +3741,10 @@ s3_do16_ldiu (char *str) { s3_skip_whitespace (str); - if ((s3_reg_required_here (&str, 5,s3_REG_TYPE_SCORE) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL) - || s3_data_op2 (&str, 0, _IMM5) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if ((s3_reg_required_here (&str, 5,s3_REG_TYPE_SCORE) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL) + || s3_data_op2 (&str, 0, _IMM5) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; } @@ -3752,8 +3752,8 @@ static void s3_do16_push_pop (char *str) { s3_skip_whitespace (str); - if ((s3_reg_required_here (&str, 0, s3_REG_TYPE_SCORE)) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if ((s3_reg_required_here (&str, 0, s3_REG_TYPE_SCORE)) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; } @@ -3763,10 +3763,10 @@ s3_do16_rpush (char *str) int reg; int val; s3_skip_whitespace (str); - if ((reg = (s3_reg_required_here (&str, 5, s3_REG_TYPE_SCORE))) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 0, _IMM5_MULTI_LOAD) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if ((reg = (s3_reg_required_here (&str, 5, s3_REG_TYPE_SCORE))) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 0, _IMM5_MULTI_LOAD) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; /* 0: indicate 32. @@ -3791,10 +3791,10 @@ s3_do16_rpop (char *str) int reg; int val; s3_skip_whitespace (str); - if ((reg = (s3_reg_required_here (&str, 5, s3_REG_TYPE_SCORE))) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_data_op2 (&str, 0, _IMM5_MULTI_LOAD) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if ((reg = (s3_reg_required_here (&str, 5, s3_REG_TYPE_SCORE))) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_data_op2 (&str, 0, _IMM5_MULTI_LOAD) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; /* 0: indicate 32. @@ -3844,7 +3844,7 @@ s3_do_ldst_unalign (char *str) str++; s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL) return; if (*str++ == ']') @@ -3861,14 +3861,14 @@ s3_do_ldst_unalign (char *str) return; } - if (s3_end_of_line (str) == (int) s3_FAIL) + if (s3_end_of_line (str) == s3_FAIL) return; } /* lcw/lce/scb/sce rD, [rA]+. */ else { - if (((conflict_reg = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL)) + if (((conflict_reg = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL)) { return; } @@ -3879,7 +3879,7 @@ s3_do_ldst_unalign (char *str) int reg; s3_skip_whitespace (str); - if ((reg = s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) + if ((reg = s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE)) == s3_FAIL) { return; } @@ -3906,7 +3906,7 @@ s3_do_ldst_unalign (char *str) return; } - if (s3_end_of_line (str) == (int) s3_FAIL) + if (s3_end_of_line (str) == s3_FAIL) return; } else @@ -3935,8 +3935,8 @@ s3_do_ldst_atomic (char *str) s3_skip_whitespace (str); - if ((s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL)) + if ((s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL)) { return; } @@ -3949,7 +3949,7 @@ s3_do_ldst_atomic (char *str) int reg; s3_skip_whitespace (str); - if ((reg = s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) + if ((reg = s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE)) == s3_FAIL) { return; } @@ -4092,7 +4092,7 @@ s3_build_la_pic (int reg_rd, expressionS exp) For an external symbol: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15 or BFD_RELOC_SCORE_CALL15) */ sprintf (tmp, "lw_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); - if (s3_append_insn (tmp, false) == (int) s3_FAIL) + if (s3_append_insn (tmp, false) == s3_FAIL) return; if (reg_rd == s3_PIC_CALL_REG) @@ -4106,7 +4106,7 @@ s3_build_la_pic (int reg_rd, expressionS exp) s3_inst.reloc.type = BFD_RELOC_SCORE_GOT15; memcpy (&var_insts[0], &s3_inst, sizeof (struct s3_score_it)); sprintf (tmp, "addi_s_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); - if (s3_append_insn (tmp, false) == (int) s3_FAIL) + if (s3_append_insn (tmp, false) == s3_FAIL) return; memcpy (&var_insts[1], &s3_inst, sizeof (struct s3_score_it)); @@ -4116,7 +4116,7 @@ s3_build_la_pic (int reg_rd, expressionS exp) { /* Insn 1: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15) */ sprintf (tmp, "lw_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); - if (s3_append_insn (tmp, true) == (int) s3_FAIL) + if (s3_append_insn (tmp, true) == s3_FAIL) return; /* Insn 2 */ @@ -4124,8 +4124,8 @@ s3_build_la_pic (int reg_rd, expressionS exp) var_num = 1; /* Fix part For an external symbol: addi rD, <constant> */ - sprintf (tmp, "addi r%d, %d", reg_rd, (int)add_number); - if (s3_append_insn (tmp, false) == (int) s3_FAIL) + sprintf (tmp, "addi r%d, %d", reg_rd, (int) add_number); + if (s3_append_insn (tmp, false) == s3_FAIL) return; memcpy (&fix_insts[0], &s3_inst, sizeof (struct s3_score_it)); @@ -4134,7 +4134,7 @@ s3_build_la_pic (int reg_rd, expressionS exp) For a local symbol: addi rD, <sym>+<constant> (BFD_RELOC_GOT_LO16) */ sprintf (tmp, "addi_s_pic r%d, %s + %d", reg_rd, S_GET_NAME (add_symbol), (int) add_number); - if (s3_append_insn (tmp, false) == (int) s3_FAIL) + if (s3_append_insn (tmp, false) == s3_FAIL) return; memcpy (&var_insts[0], &s3_inst, sizeof (struct s3_score_it)); @@ -4147,7 +4147,7 @@ s3_build_la_pic (int reg_rd, expressionS exp) /* Insn 1: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15) */ sprintf (tmp, "lw_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); - if (s3_append_insn (tmp, true) == (int) s3_FAIL) + if (s3_append_insn (tmp, true) == s3_FAIL) return; /* Insn 2 */ @@ -4156,7 +4156,7 @@ s3_build_la_pic (int reg_rd, expressionS exp) /* Fix part For an external symbol: ldis r1, HI%<constant> */ sprintf (tmp, "ldis r1, %d", hi); - if (s3_append_insn (tmp, false) == (int) s3_FAIL) + if (s3_append_insn (tmp, false) == s3_FAIL) return; memcpy (&fix_insts[0], &s3_inst, sizeof (struct s3_score_it)); @@ -4169,7 +4169,7 @@ s3_build_la_pic (int reg_rd, expressionS exp) hi += 1; } sprintf (tmp, "ldis_pic r1, %d", hi); - if (s3_append_insn (tmp, false) == (int) s3_FAIL) + if (s3_append_insn (tmp, false) == s3_FAIL) return; memcpy (&var_insts[0], &s3_inst, sizeof (struct s3_score_it)); @@ -4181,7 +4181,7 @@ s3_build_la_pic (int reg_rd, expressionS exp) /* Fix part For an external symbol: ori r1, LO%<constant> */ sprintf (tmp, "ori r1, %d", lo); - if (s3_append_insn (tmp, false) == (int) s3_FAIL) + if (s3_append_insn (tmp, false) == s3_FAIL) return; memcpy (&fix_insts[0], &s3_inst, sizeof (struct s3_score_it)); @@ -4189,7 +4189,7 @@ s3_build_la_pic (int reg_rd, expressionS exp) /* Var part For a local symbol: addi r1, <sym>+LO%<constant> (BFD_RELOC_GOT_LO16) */ sprintf (tmp, "addi_u_pic r1, %s + %d", S_GET_NAME (add_symbol), lo); - if (s3_append_insn (tmp, false) == (int) s3_FAIL) + if (s3_append_insn (tmp, false) == s3_FAIL) return; memcpy (&var_insts[0], &s3_inst, sizeof (struct s3_score_it)); @@ -4197,7 +4197,7 @@ s3_build_la_pic (int reg_rd, expressionS exp) /* Insn 4: add rD, rD, r1 */ sprintf (tmp, "add r%d, r%d, r1", reg_rd, reg_rd); - if (s3_append_insn (tmp, true) == (int) s3_FAIL) + if (s3_append_insn (tmp, true) == s3_FAIL) return; /* Set bwarn as -1, so macro instruction itself will not be generated frag. */ @@ -4214,8 +4214,8 @@ s3_do_macro_la_rdi32 (char *str) int reg_rd; s3_skip_whitespace (str); - if ((reg_rd = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL) + if ((reg_rd = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL) { return; } @@ -4226,13 +4226,13 @@ s3_do_macro_la_rdi32 (char *str) char append_str[s3_MAX_LITERAL_POOL_SIZE]; /* Check immediate value. */ - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL) { s3_inst.error = _("expression error"); return; } else if ((s3_inst.reloc.exp.X_add_symbol == NULL) - && (s3_validate_immediate (s3_inst.reloc.exp.X_add_number, _IMM32, 0) == (int) s3_FAIL)) + && (s3_validate_immediate (s3_inst.reloc.exp.X_add_number, _IMM32, 0) == s3_FAIL)) { s3_inst.error = _("value not in range [0, 0xffffffff]"); return; @@ -4242,7 +4242,7 @@ s3_do_macro_la_rdi32 (char *str) str = keep_data; /* la rd, simm16. */ - if (s3_data_op2 (&str, 1, _SIMM16_LA) != (int) s3_FAIL) + if (s3_data_op2 (&str, 1, _SIMM16_LA) != s3_FAIL) { s3_end_of_line (str); return; @@ -4253,8 +4253,8 @@ s3_do_macro_la_rdi32 (char *str) s3_SET_INSN_ERROR (NULL); /* Reset str. */ str = keep_data; - if ((s3_data_op2 (&str, 1, _VALUE_HI16) == (int) s3_FAIL) - || (s3_end_of_line (str) == (int) s3_FAIL)) + if ((s3_data_op2 (&str, 1, _VALUE_HI16) == s3_FAIL) + || (s3_end_of_line (str) == s3_FAIL)) { return; } @@ -4263,11 +4263,11 @@ s3_do_macro_la_rdi32 (char *str) if ((s3_score_pic == s3_NO_PIC) || (!s3_inst.reloc.exp.X_add_symbol)) { sprintf (append_str, "ld_i32hi r%d, %s", reg_rd, keep_data); - if (s3_append_insn (append_str, true) == (int) s3_FAIL) + if (s3_append_insn (append_str, true) == s3_FAIL) return; sprintf (append_str, "ld_i32lo r%d, %s", reg_rd, keep_data); - if (s3_append_insn (append_str, true) == (int) s3_FAIL) + if (s3_append_insn (append_str, true) == s3_FAIL) return; } else @@ -4291,8 +4291,8 @@ s3_do_macro_li_rdi32 (char *str) int reg_rd; s3_skip_whitespace (str); - if ((reg_rd = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL) + if ((reg_rd = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL) { return; } @@ -4302,7 +4302,7 @@ s3_do_macro_li_rdi32 (char *str) char *keep_data = str; /* Check immediate value. */ - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL) { s3_inst.error = _("expression error"); return; @@ -4318,7 +4318,7 @@ s3_do_macro_li_rdi32 (char *str) str = keep_data; /* li rd, simm16. */ - if (s3_data_op2 (&str, 1, _SIMM16_LA) != (int) s3_FAIL) + if (s3_data_op2 (&str, 1, _SIMM16_LA) != s3_FAIL) { s3_end_of_line (str); return; @@ -4331,8 +4331,8 @@ s3_do_macro_li_rdi32 (char *str) /* Reset str. */ str = keep_data; - if ((s3_data_op2 (&str, 1, _VALUE_HI16) == (int) s3_FAIL) - || (s3_end_of_line (str) == (int) s3_FAIL)) + if ((s3_data_op2 (&str, 1, _VALUE_HI16) == s3_FAIL) + || (s3_end_of_line (str) == s3_FAIL)) { return; } @@ -4345,12 +4345,12 @@ s3_do_macro_li_rdi32 (char *str) { sprintf (append_str, "ld_i32hi r%d, %s", reg_rd, keep_data); - if (s3_append_insn (append_str, true) == (int) s3_FAIL) + if (s3_append_insn (append_str, true) == s3_FAIL) return; else { sprintf (append_str, "ld_i32lo r%d, %s", reg_rd, keep_data); - if (s3_append_insn (append_str, true) == (int) s3_FAIL) + if (s3_append_insn (append_str, true) == s3_FAIL) return; /* Set bwarn as -1, so macro instruction itself will not be generated frag. */ @@ -4377,15 +4377,15 @@ s3_do_macro_mul_rdrsrs (char *str) strcpy (append_str, str); backupstr = append_str; s3_skip_whitespace (backupstr); - if (((reg_rd = s3_reg_required_here (&backupstr, -1, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) - || (s3_skip_past_comma (&backupstr) == (int) s3_FAIL) - || ((reg_rs1 = s3_reg_required_here (&backupstr, -1, s3_REG_TYPE_SCORE)) == (int) s3_FAIL)) + if (((reg_rd = s3_reg_required_here (&backupstr, -1, s3_REG_TYPE_SCORE)) == s3_FAIL) + || (s3_skip_past_comma (&backupstr) == s3_FAIL) + || ((reg_rs1 = s3_reg_required_here (&backupstr, -1, s3_REG_TYPE_SCORE)) == s3_FAIL)) { s3_inst.error = s3_BAD_ARGS; return; } - if (s3_skip_past_comma (&backupstr) == (int) s3_FAIL) + if (s3_skip_past_comma (&backupstr) == s3_FAIL) { /* rem/remu rA, rB is error format. */ if (strcmp (s3_inst.name, "rem") == 0 || strcmp (s3_inst.name, "remu") == 0) @@ -4402,8 +4402,8 @@ s3_do_macro_mul_rdrsrs (char *str) else { s3_SET_INSN_ERROR (NULL); - if (((reg_rs2 = s3_reg_required_here (&backupstr, -1, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) - || (s3_end_of_line (backupstr) == (int) s3_FAIL)) + if (((reg_rs2 = s3_reg_required_here (&backupstr, -1, s3_REG_TYPE_SCORE)) == s3_FAIL) + || (s3_end_of_line (backupstr) == s3_FAIL)) { return; } @@ -4428,11 +4428,11 @@ s3_do_macro_mul_rdrsrs (char *str) } /* Output mul/mulu or div/divu or rem/remu. */ - if (s3_append_insn (append_str, true) == (int) s3_FAIL) + if (s3_append_insn (append_str, true) == s3_FAIL) return; /* Output mfcel or mfceh. */ - if (s3_append_insn (append_str1, true) == (int) s3_FAIL) + if (s3_append_insn (append_str1, true) == s3_FAIL) return; /* Set bwarn as -1, so macro instruction itself will not be generated frag. */ @@ -4458,11 +4458,11 @@ s3_exp_macro_ldst_abs (char *str) strcpy (verifystr, str); backupstr = verifystr; s3_skip_whitespace (backupstr); - if ((reg_rd = s3_reg_required_here (&backupstr, -1, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) + if ((reg_rd = s3_reg_required_here (&backupstr, -1, s3_REG_TYPE_SCORE)) == s3_FAIL) return; tmp = backupstr; - if (s3_skip_past_comma (&backupstr) == (int) s3_FAIL) + if (s3_skip_past_comma (&backupstr) == s3_FAIL) return; backupstr = tmp; @@ -4489,19 +4489,19 @@ s3_do_macro_bcmp (char *str) memset (inst_expand, 0, sizeof inst_expand); s3_skip_whitespace (str); - if (( reg_a = s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE)) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - ||(reg_b = s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE)) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL) + if (( reg_a = s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE)) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + ||(reg_b = s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE)) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL) return; keep_data_size = strlen (str) + 1; keep_data = xmalloc (keep_data_size * 2 + 14); memcpy (keep_data, str, keep_data_size); - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL ||reg_b == 0 - || s3_end_of_line (str) == (int) s3_FAIL) + || s3_end_of_line (str) == s3_FAIL) goto out; else if (s3_inst.reloc.exp.X_add_symbol == 0) { @@ -4530,14 +4530,14 @@ s3_do_macro_bcmp (char *str) if (s3_score_pic == s3_NO_PIC) { sprintf (append_str, "cmp! r%d, r%d", reg_a, reg_b); - if (s3_append_insn (append_str, true) == (int) s3_FAIL) + if (s3_append_insn (append_str, true) == s3_FAIL) goto out; if ((inst_main.instruction & 0x3e00007e) == 0x0000004c) memcpy (append_str, "beq ", 4); else memcpy (append_str, "bne ", 4); memmove (append_str + 4, keep_data, strlen (keep_data) + 1); - if (s3_append_insn (append_str, true) == (int) s3_FAIL) + if (s3_append_insn (append_str, true) == s3_FAIL) goto out; } else @@ -4562,7 +4562,7 @@ s3_do_macro_bcmp (char *str) if (s3_score_pic == s3_NO_PIC) { sprintf (append_str, "cmp! r%d, r%d", reg_a, reg_b); - if (s3_append_insn (append_str, false) == (int) s3_FAIL) + if (s3_append_insn (append_str, false) == s3_FAIL) goto out; memcpy (&inst_expand[0], &s3_inst, sizeof (struct s3_score_it)); @@ -4571,7 +4571,7 @@ s3_do_macro_bcmp (char *str) else memcpy (append_str, "bne ", 4); memmove (append_str + 4, keep_data, strlen (keep_data) + 1); - if (s3_append_insn (append_str, false) == (int) s3_FAIL) + if (s3_append_insn (append_str, false) == s3_FAIL) goto out; memcpy (&inst_expand[1], &s3_inst, sizeof (struct s3_score_it)); } @@ -4646,16 +4646,16 @@ s3_do_macro_bcmpz (char *str) memset (inst_expand, 0, sizeof inst_expand); s3_skip_whitespace (str); - if (( reg_a = s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE)) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL) + if (( reg_a = s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE)) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL) return; keep_data_size = strlen (str) + 1; keep_data = xmalloc (keep_data_size * 2 + 13); memcpy (keep_data, str, keep_data_size); - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) goto out; else if (s3_inst.reloc.exp.X_add_symbol == 0) { @@ -4680,14 +4680,14 @@ s3_do_macro_bcmpz (char *str) if (s3_score_pic == s3_NO_PIC) { sprintf (append_str, "cmpi! r%d, 0", reg_a); - if (s3_append_insn (append_str, true) == (int) s3_FAIL) + if (s3_append_insn (append_str, true) == s3_FAIL) goto out; if ((inst_main.instruction & 0x3e00007e) == 0x0000004c) memcpy (append_str, "beq ", 4); else memcpy (append_str, "bne ", 4); memmove (append_str + 4, keep_data, strlen (keep_data) + 1); - if (s3_append_insn (append_str, true) == (int) s3_FAIL) + if (s3_append_insn (append_str, true) == s3_FAIL) goto out; } else @@ -4712,7 +4712,7 @@ s3_do_macro_bcmpz (char *str) if (s3_score_pic == s3_NO_PIC) { sprintf (append_str, "cmpi! r%d, 0", reg_a); - if (s3_append_insn (append_str, false) == (int) s3_FAIL) + if (s3_append_insn (append_str, false) == s3_FAIL) goto out; memcpy (&inst_expand[0], &s3_inst, sizeof (struct s3_score_it)); if ((inst_main.instruction & 0x3e00007e) == 0x0000004c) @@ -4720,7 +4720,7 @@ s3_do_macro_bcmpz (char *str) else memcpy (append_str, "bne ", 4); memmove (append_str + 4, keep_data, strlen (keep_data) + 1); - if (s3_append_insn (append_str, false) == (int) s3_FAIL) + if (s3_append_insn (append_str, false) == s3_FAIL) goto out; memcpy (&inst_expand[1], &s3_inst, sizeof (struct s3_score_it)); } @@ -4798,7 +4798,7 @@ s3_nopic_need_relax (symbolS * sym, int before_relaxing) not be referenced off the $gp, although it appears as though they can. */ symname = S_GET_NAME (sym); - if (symname != (const char *)NULL + if (symname != NULL && (strcmp (symname, "eprol") == 0 || strcmp (symname, "etext") == 0 || strcmp (symname, "_gp") == 0 @@ -4811,13 +4811,15 @@ s3_nopic_need_relax (symbolS * sym, int before_relaxing) { return 1; } - else if ((!S_IS_DEFINED (sym) || S_IS_COMMON (sym)) && (0 - /* We must defer this decision until after the whole file has been read, - since there might be a .extern after the first use of this symbol. */ - || (before_relaxing - && S_GET_VALUE (sym) == 0) - || (S_GET_VALUE (sym) != 0 - && S_GET_VALUE (sym) <= s3_g_switch_value))) + else if ((!S_IS_DEFINED (sym) || S_IS_COMMON (sym)) + && (0 + /* We must defer this decision until after the + whole file has been read, since there might be a + .extern after the first use of this symbol. */ + || (before_relaxing + && S_GET_VALUE (sym) == 0) + || (S_GET_VALUE (sym) != 0 + && S_GET_VALUE (sym) <= s3_g_switch_value))) { return 0; } @@ -4861,7 +4863,7 @@ s3_build_lwst_pic (int reg_rd, expressionS exp, const char *insn_name) For an external symbol: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15) */ sprintf (tmp, "lw_pic r1, %s", S_GET_NAME (add_symbol)); - if (s3_append_insn (tmp, false) == (int) s3_FAIL) + if (s3_append_insn (tmp, false) == s3_FAIL) return; memcpy (&fix_insts[0], &s3_inst, sizeof (struct s3_score_it)); @@ -4873,7 +4875,7 @@ s3_build_lwst_pic (int reg_rd, expressionS exp, const char *insn_name) s3_inst.reloc.type = BFD_RELOC_SCORE_GOT15; memcpy (&var_insts[0], &s3_inst, sizeof (struct s3_score_it)); sprintf (tmp, "addi_s_pic r1, %s", S_GET_NAME (add_symbol)); - if (s3_append_insn (tmp, false) == (int) s3_FAIL) + if (s3_append_insn (tmp, false) == s3_FAIL) return; memcpy (&var_insts[1], &s3_inst, sizeof (struct s3_score_it)); @@ -4881,7 +4883,7 @@ s3_build_lwst_pic (int reg_rd, expressionS exp, const char *insn_name) /* Insn 2 or Insn 3: lw/st rD, [r1, constant] */ sprintf (tmp, "%s r%d, [r1, %d]", insn_name, reg_rd, add_number); - if (s3_append_insn (tmp, true) == (int) s3_FAIL) + if (s3_append_insn (tmp, true) == s3_FAIL) return; /* Set bwarn as -1, so macro instruction itself will not be generated frag. */ @@ -4917,10 +4919,10 @@ s3_do_macro_ldst_label (char *str) backup_str = verifystr; s3_skip_whitespace (backup_str); - if ((reg_rd = s3_reg_required_here (&backup_str, -1, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) + if ((reg_rd = s3_reg_required_here (&backup_str, -1, s3_REG_TYPE_SCORE)) == s3_FAIL) return; - if (s3_skip_past_comma (&backup_str) == (int) s3_FAIL) + if (s3_skip_past_comma (&backup_str) == s3_FAIL) return; label_str = backup_str; @@ -4937,18 +4939,18 @@ s3_do_macro_ldst_label (char *str) absolute_value = backup_str; s3_inst.type = Rd_rvalueRs_SI15; - if (s3_my_get_expression (&s3_inst.reloc.exp, &backup_str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &backup_str) == s3_FAIL) { s3_inst.error = _("expression error"); return; } else if ((s3_inst.reloc.exp.X_add_symbol == NULL) - && (s3_validate_immediate (s3_inst.reloc.exp.X_add_number, _VALUE, 0) == (int) s3_FAIL)) + && (s3_validate_immediate (s3_inst.reloc.exp.X_add_number, _VALUE, 0) == s3_FAIL)) { s3_inst.error = _("value not in range [0, 0x7fffffff]"); return; } - else if (s3_end_of_line (backup_str) == (int) s3_FAIL) + else if (s3_end_of_line (backup_str) == s3_FAIL) { s3_inst.error = _("end on line error"); return; @@ -4966,8 +4968,8 @@ s3_do_macro_ldst_label (char *str) /* Ld/st rD, label. */ s3_inst.type = Rd_rvalueRs_SI15; backup_str = absolute_value; - if ((s3_data_op2 (&backup_str, 1, _GP_IMM15) == (int) s3_FAIL) - || (s3_end_of_line (backup_str) == (int) s3_FAIL)) + if ((s3_data_op2 (&backup_str, 1, _GP_IMM15) == s3_FAIL) + || (s3_end_of_line (backup_str) == s3_FAIL)) { return; } @@ -5025,7 +5027,7 @@ s3_do_macro_ldst_label (char *str) ld/st rd, [r1, 0] */ for (i = 0; i < 3; i++) { - if (s3_append_insn (append_str[i], false) == (int) s3_FAIL) + if (s3_append_insn (append_str[i], false) == s3_FAIL) return; memcpy (&inst_expand[i], &s3_inst, sizeof (struct s3_score_it)); @@ -5118,10 +5120,10 @@ s3_do_lw_pic (char *str) int reg_rd; s3_skip_whitespace (str); - if (((reg_rd = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) - || (s3_skip_past_comma (&str) == (int) s3_FAIL) - || (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL) - || (s3_end_of_line (str) == (int) s3_FAIL)) + if (((reg_rd = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == s3_FAIL) + || (s3_skip_past_comma (&str) == s3_FAIL) + || (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL) + || (s3_end_of_line (str) == s3_FAIL)) { return; } @@ -5155,7 +5157,7 @@ s3_do_empty (char *str) return; } } - if (s3_end_of_line (str) == (int) s3_FAIL) + if (s3_end_of_line (str) == s3_FAIL) return; if (s3_inst.relax_inst != 0x8000) @@ -5184,8 +5186,8 @@ s3_do_jump (char *str) char *save_in; s3_skip_whitespace (str); - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; if (s3_inst.reloc.exp.X_add_symbol == 0) @@ -5211,8 +5213,8 @@ s3_do_jump (char *str) static void s3_do_branch (char *str) { - if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -5250,8 +5252,8 @@ s3_do_branch (char *str) static void s3_do16_branch (char *str) { - if ((s3_my_get_expression (&s3_inst.reloc.exp, &str) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL)) + if ((s3_my_get_expression (&s3_inst.reloc.exp, &str) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL)) { ; } @@ -5381,8 +5383,8 @@ s3_do16_dsp (char *str) s3_skip_whitespace (str); - if ((rd = s3_reglow_required_here (&str, 0)) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if ((rd = s3_reglow_required_here (&str, 0)) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -5405,10 +5407,10 @@ s3_do16_dsp2 (char *str) s3_skip_whitespace (str); - if (s3_reglow_required_here (&str, 4) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reglow_required_here (&str, 0) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reglow_required_here (&str, 4) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reglow_required_here (&str, 0) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -5432,10 +5434,10 @@ s3_do_dsp (char *str) s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; if ((s3_inst.relax_inst != 0x8000) && (((s3_inst.instruction >> 20) & 0x1f) == 3) ) @@ -5461,12 +5463,12 @@ s3_do_dsp2 (char *str) s3_skip_whitespace (str); - if ((reg = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if ((reg = s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE)) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 10, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) { return; } @@ -5510,10 +5512,10 @@ s3_do_dsp3 (char *str) s3_skip_whitespace (str); - if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_skip_past_comma (&str) == (int) s3_FAIL - || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == (int) s3_FAIL - || s3_end_of_line (str) == (int) s3_FAIL) + if (s3_reg_required_here (&str, 20, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_skip_past_comma (&str) == s3_FAIL + || s3_reg_required_here (&str, 15, s3_REG_TYPE_SCORE) == s3_FAIL + || s3_end_of_line (str) == s3_FAIL) return; if ((s3_inst.relax_inst != 0x8000) && (((s3_inst.instruction >> 20) & 0x1f) == 3) ) @@ -5551,7 +5553,7 @@ s3_s_change_sec (int sec) switch (sec) { case 'r': - seg = subseg_new (s3_RDATA_SECTION_NAME, (subsegT) get_absolute_expression ()); + seg = subseg_new (s3_RDATA_SECTION_NAME, get_absolute_expression ()); bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA)); if (strcmp (TARGET_OS, "elf") != 0) @@ -5559,7 +5561,7 @@ s3_s_change_sec (int sec) demand_empty_rest_of_line (); break; case 's': - seg = subseg_new (".sdata", (subsegT) get_absolute_expression ()); + seg = subseg_new (".sdata", get_absolute_expression ()); bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA | SEC_SMALL_DATA)); if (strcmp (TARGET_OS, "elf") != 0) @@ -5574,7 +5576,7 @@ s3_s_score_mask (int reg_type ATTRIBUTE_UNUSED) { long mask, off; - if (s3_cur_proc_ptr == (s3_procS *) NULL) + if (s3_cur_proc_ptr == NULL) { as_warn (_(".mask outside of .ent")); demand_empty_rest_of_line (); @@ -5601,7 +5603,7 @@ s3_get_symbol (void) symbolS *p; c = get_symbol_name (&name); - p = (symbolS *) symbol_find_or_make (name); + p = symbol_find_or_make (name); (void) restore_line_pointer (c); return p; } @@ -5708,7 +5710,7 @@ s3_s_score_frame (int ignore ATTRIBUTE_UNUSED) backupstr = input_line_pointer; #ifdef OBJ_ELF - if (s3_cur_proc_ptr == (s3_procS *) NULL) + if (s3_cur_proc_ptr == NULL) { as_warn (_(".frame outside of .ent")); demand_empty_rest_of_line (); @@ -5813,13 +5815,13 @@ s3_s_score_end (int x ATTRIBUTE_UNUSED) exp.X_add_number = 0; emit_expr (&exp, 4); fragp = frag_more (7 * 4); - md_number_to_chars (fragp, (valueT) s3_cur_proc_ptr->reg_mask, 4); - md_number_to_chars (fragp + 4, (valueT) s3_cur_proc_ptr->reg_offset, 4); - md_number_to_chars (fragp + 8, (valueT) s3_cur_proc_ptr->fpreg_mask, 4); - md_number_to_chars (fragp + 12, (valueT) s3_cur_proc_ptr->leaf, 4); - md_number_to_chars (fragp + 16, (valueT) s3_cur_proc_ptr->frame_offset, 4); - md_number_to_chars (fragp + 20, (valueT) s3_cur_proc_ptr->frame_reg, 4); - md_number_to_chars (fragp + 24, (valueT) s3_cur_proc_ptr->pc_reg, 4); + md_number_to_chars (fragp, s3_cur_proc_ptr->reg_mask, 4); + md_number_to_chars (fragp + 4, s3_cur_proc_ptr->reg_offset, 4); + md_number_to_chars (fragp + 8, s3_cur_proc_ptr->fpreg_mask, 4); + md_number_to_chars (fragp + 12, s3_cur_proc_ptr->leaf, 4); + md_number_to_chars (fragp + 16, s3_cur_proc_ptr->frame_offset, 4); + md_number_to_chars (fragp + 20, s3_cur_proc_ptr->frame_reg, 4); + md_number_to_chars (fragp + 24, s3_cur_proc_ptr->pc_reg, 4); subseg_set (saved_seg, saved_subseg); } @@ -5903,21 +5905,21 @@ s3_s_score_cpload (int ignore ATTRIBUTE_UNUSED) return; } - if ((reg = s3_reg_required_here (&input_line_pointer, -1, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) + if ((reg = s3_reg_required_here (&input_line_pointer, -1, s3_REG_TYPE_SCORE)) == s3_FAIL) return; demand_empty_rest_of_line (); sprintf (insn_str, "ld_i32hi r%d, %s", s3_GP, GP_DISP_LABEL); - if (s3_append_insn (insn_str, true) == (int) s3_FAIL) + if (s3_append_insn (insn_str, true) == s3_FAIL) return; sprintf (insn_str, "ld_i32lo r%d, %s", s3_GP, GP_DISP_LABEL); - if (s3_append_insn (insn_str, true) == (int) s3_FAIL) + if (s3_append_insn (insn_str, true) == s3_FAIL) return; sprintf (insn_str, "add r%d, r%d, r%d", s3_GP, s3_GP, reg); - if (s3_append_insn (insn_str, true) == (int) s3_FAIL) + if (s3_append_insn (insn_str, true) == s3_FAIL) return; } @@ -5938,8 +5940,8 @@ s3_s_score_cprestore (int ignore ATTRIBUTE_UNUSED) return; } - if ((reg = s3_reg_required_here (&input_line_pointer, -1, s3_REG_TYPE_SCORE)) == (int) s3_FAIL - || s3_skip_past_comma (&input_line_pointer) == (int) s3_FAIL) + if ((reg = s3_reg_required_here (&input_line_pointer, -1, s3_REG_TYPE_SCORE)) == s3_FAIL + || s3_skip_past_comma (&input_line_pointer) == s3_FAIL) { return; } @@ -5949,7 +5951,7 @@ s3_s_score_cprestore (int ignore ATTRIBUTE_UNUSED) if (cprestore_offset <= 0x3fff) { sprintf (insn_str, "sw r%d, [r%d, %d]", s3_GP, reg, cprestore_offset); - if (s3_append_insn (insn_str, true) == (int) s3_FAIL) + if (s3_append_insn (insn_str, true) == s3_FAIL) return; } else @@ -5960,15 +5962,15 @@ s3_s_score_cprestore (int ignore ATTRIBUTE_UNUSED) s3_nor1 = 0; sprintf (insn_str, "li r1, %d", cprestore_offset); - if (s3_append_insn (insn_str, true) == (int) s3_FAIL) + if (s3_append_insn (insn_str, true) == s3_FAIL) return; sprintf (insn_str, "add r1, r1, r%d", reg); - if (s3_append_insn (insn_str, true) == (int) s3_FAIL) + if (s3_append_insn (insn_str, true) == s3_FAIL) return; sprintf (insn_str, "sw r%d, [r1]", s3_GP); - if (s3_append_insn (insn_str, true) == (int) s3_FAIL) + if (s3_append_insn (insn_str, true) == s3_FAIL) return; s3_nor1 = r1_bak; @@ -6018,7 +6020,7 @@ s3_s_score_cpadd (int ignore ATTRIBUTE_UNUSED) return; } - if ((reg = s3_reg_required_here (&input_line_pointer, -1, s3_REG_TYPE_SCORE)) == (int) s3_FAIL) + if ((reg = s3_reg_required_here (&input_line_pointer, -1, s3_REG_TYPE_SCORE)) == s3_FAIL) { return; } @@ -6026,7 +6028,7 @@ s3_s_score_cpadd (int ignore ATTRIBUTE_UNUSED) /* Add $gp to the register named as an argument. */ sprintf (insn_str, "add r%d, r%d, r%d", reg, reg, s3_GP); - if (s3_append_insn (insn_str, true) == (int) s3_FAIL) + if (s3_append_insn (insn_str, true) == s3_FAIL) return; } @@ -6189,7 +6191,7 @@ s3_s_score_lcomm (int bytes_p) symbol_get_frag (symbolP)->fr_symbol = NULL; symbol_set_frag (symbolP, frag_now); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, (offsetT) temp, NULL); + pfrag = frag_var (rs_org, 1, 1, 0, symbolP, temp, NULL); *pfrag = 0; @@ -6449,7 +6451,7 @@ s3_begin (void) s3_build_dependency_insn_hsh (); - for (i = (int)s3_REG_TYPE_FIRST; i < (int)s3_REG_TYPE_MAX; i++) + for (i = s3_REG_TYPE_FIRST; i < s3_REG_TYPE_MAX; i++) s3_build_reg_hsh (s3_all_reg_maps + i); /* Initialize dependency vector. */ @@ -6458,7 +6460,7 @@ s3_begin (void) bfd_set_arch_mach (stdoutput, TARGET_ARCH, 0); seg = now_seg; subseg = now_subseg; - s3_pdr_seg = subseg_new (".pdr", (subsegT) 0); + s3_pdr_seg = subseg_new (".pdr", 0); bfd_set_section_flags (s3_pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING); bfd_set_section_alignment (s3_pdr_seg, 2); subseg_set (seg, subseg); @@ -6477,17 +6479,16 @@ s3_number_to_chars (char *buf, valueT val, int n) } static valueT -s3_normal_chars_to_number (char *buf, int n) +s3_normal_chars_to_number (const char *buf, int n) { valueT result = 0; - unsigned char *where = (unsigned char *)buf; if (target_big_endian) { while (n--) { result <<= 8; - result |= (*where++ & 255); + result |= (*buf++ & 255); } } else @@ -6495,7 +6496,7 @@ s3_normal_chars_to_number (char *buf, int n) while (n--) { result <<= 8; - result |= (where[n] & 255); + result |= (buf[n] & 255); } } @@ -6505,7 +6506,7 @@ s3_normal_chars_to_number (char *buf, int n) static void s3_number_to_chars_littleendian (void *p, valueT data, int n) { - char *buf = (char *) p; + char *buf = p; switch (n) { @@ -6528,7 +6529,7 @@ s3_number_to_chars_littleendian (void *p, valueT data, int n) static valueT s3_chars_to_number_littleendian (const void *p, int n) { - char *buf = (char *) p; + const char *buf = p; valueT result = 0; switch (n) @@ -6614,19 +6615,19 @@ s3_atof (int type, char *litP, int *sizeP) if (target_big_endian) { for (i = 0; i < prec; i++) - { - s3_md_number_to_chars (litP, (valueT) words[i], 2); - litP += 2; - } + { + s3_md_number_to_chars (litP, words[i], 2); + litP += 2; + } } else { for (i = 0; i < prec; i += 2) - { - s3_md_number_to_chars (litP, (valueT) words[i + 1], 2); - s3_md_number_to_chars (litP + 2, (valueT) words[i], 2); - litP += 4; - } + { + s3_md_number_to_chars (litP, words[i + 1], 2); + s3_md_number_to_chars (litP + 2, words[i], 2); + litP += 4; + } } return 0; @@ -6768,7 +6769,7 @@ s3_relax_branch_inst16 (fragS * fragp) if (s == NULL) frag_addr = 0; else - symbol_address = (addressT) symbol_get_frag (s)->fr_address; + symbol_address = symbol_get_frag (s)->fr_address; inst_value = s3_md_chars_to_number (fragp->fr_literal, s3_INSN16_SIZE); offset = (inst_value & 0x1ff) << 1; @@ -6811,7 +6812,7 @@ s3_relax_cmpbranch_inst32 (fragS * fragp) if (s == NULL) frag_addr = 0; else - symbol_address = (addressT) symbol_get_frag (s)->fr_address; + symbol_address = symbol_get_frag (s)->fr_address; inst_value = s3_md_chars_to_number (fragp->fr_literal, s3_INSN_SIZE); offset = (inst_value & 0x1) diff --git a/gas/config/tc-score7.c b/gas/config/tc-score7.c index b11f69f..7b6b685 100644 --- a/gas/config/tc-score7.c +++ b/gas/config/tc-score7.c @@ -90,7 +90,7 @@ static void s7_do_lw_pic (char *); #define s7_GP 28 #define s7_PIC_CALL_REG 29 #define s7_MAX_LITERAL_POOL_SIZE 1024 -#define s7_FAIL 0x80000000 +#define s7_FAIL -2147483648 #define s7_SUCCESS 0 #define s7_INSN_SIZE 4 #define s7_INSN16_SIZE 2 @@ -1102,7 +1102,7 @@ s7_end_of_line (char *str) s7_skip_whitespace (str); if (*str != '\0') { - retval = (int) s7_FAIL; + retval = s7_FAIL; if (!s7_inst.error) s7_inst.error = s7_BAD_GARBAGE; @@ -1121,7 +1121,7 @@ s7_score_reg_parse (char **ccp, htab_t htab) p = start; if (!ISALPHA (*p) || !is_name_beginner (*p)) - return (int) s7_FAIL; + return s7_FAIL; c = *p++; @@ -1137,7 +1137,7 @@ s7_score_reg_parse (char **ccp, htab_t htab) *ccp = p; return reg->number; } - return (int) s7_FAIL; + return s7_FAIL; } /* If shift <= 0, only return reg. */ @@ -1145,10 +1145,10 @@ static int s7_reg_required_here (char **str, int shift, enum s7_score_reg_type reg_type) { static char buff[s7_MAX_LITERAL_POOL_SIZE]; - int reg = (int) s7_FAIL; + int reg = s7_FAIL; char *start = *str; - if ((reg = s7_score_reg_parse (str, s7_all_reg_maps[reg_type].htab)) != (int) s7_FAIL) + if ((reg = s7_score_reg_parse (str, s7_all_reg_maps[reg_type].htab)) != s7_FAIL) { if (reg_type == s7_REG_TYPE_SCORE) { @@ -1193,18 +1193,18 @@ s7_skip_past_comma (char **str) if (c == ',' && comma++) { s7_inst.error = s7_BAD_SKIP_COMMA; - return (int) s7_FAIL; + return s7_FAIL; } } if ((c == '\0') || (comma == 0)) { s7_inst.error = s7_BAD_SKIP_COMMA; - return (int) s7_FAIL; + return s7_FAIL; } *str = p; - return comma ? s7_SUCCESS : (int) s7_FAIL; + return comma ? s7_SUCCESS : s7_FAIL; } static void @@ -1212,12 +1212,12 @@ s7_do_rdrsrs (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) { return; } @@ -1271,7 +1271,7 @@ s7_my_get_expression (expressionS * ep, char **str) *str = input_line_pointer; input_line_pointer = save_in; s7_inst.error = _("illegal expression"); - return (int) s7_FAIL; + return s7_FAIL; } /* Get rid of any bignums now, so that we don't generate an error for which we can't establish a line number later on. Big numbers are never valid @@ -1284,7 +1284,7 @@ s7_my_get_expression (expressionS * ep, char **str) s7_inst.error = _("invalid constant"); *str = input_line_pointer; input_line_pointer = save_in; - return (int) s7_FAIL; + return s7_FAIL; } if ((ep->X_add_symbol != NULL) @@ -1300,7 +1300,7 @@ s7_my_get_expression (expressionS * ep, char **str) s7_inst.error = s7_BAD_ARGS; *str = input_line_pointer; input_line_pointer = save_in; - return (int) s7_FAIL; + return s7_FAIL; } *str = input_line_pointer; @@ -1340,14 +1340,14 @@ s7_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) { if (!(val >= -0x800 && val <= 0xfff)) { - return (int) s7_FAIL; + return s7_FAIL; } } else { if (!(val >= -2048 && val <= 2047)) { - return (int) s7_FAIL; + return s7_FAIL; } } @@ -1359,14 +1359,14 @@ s7_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) { if (!(val >= -0x2000 && val <= 0x3fff)) { - return (int) s7_FAIL; + return s7_FAIL; } } else { if (!(val >= -8192 && val <= 8191)) { - return (int) s7_FAIL; + return s7_FAIL; } } @@ -1378,14 +1378,14 @@ s7_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) { if (!(val >= -0x4000 && val <= 0x7fff)) { - return (int) s7_FAIL; + return s7_FAIL; } } else { if (!(val >= -16384 && val <= 16383)) { - return (int) s7_FAIL; + return s7_FAIL; } } @@ -1397,14 +1397,14 @@ s7_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) { if (!(val >= -0x8000 && val <= 0xffff)) { - return (int) s7_FAIL; + return s7_FAIL; } } else { if (!(val >= -32768 && val <= 32767)) { - return (int) s7_FAIL; + return s7_FAIL; } } @@ -1416,14 +1416,14 @@ s7_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) { if (!(val >= -0x7fff && val <= 0xffff && val != 0x8000)) { - return (int) s7_FAIL; + return s7_FAIL; } } else { if (!(val >= -32767 && val <= 32768)) { - return (int) s7_FAIL; + return s7_FAIL; } } @@ -1438,7 +1438,7 @@ s7_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) } else { - return (int) s7_FAIL; + return s7_FAIL; } default: @@ -1452,7 +1452,7 @@ s7_validate_immediate (bfd_signed_vma val, unsigned int data_type, int hex_p) break; } - return (int) s7_FAIL; + return s7_FAIL; } static int @@ -1483,18 +1483,18 @@ s7_data_op2 (char **str, int shift, enum score_data_type data_type) if (*dataptr == '|') /* process PCE */ { - if (s7_my_get_expression (&s7_inst.reloc.exp, &pp) == (int) s7_FAIL) - return (int) s7_FAIL; + if (s7_my_get_expression (&s7_inst.reloc.exp, &pp) == s7_FAIL) + return s7_FAIL; s7_end_of_line (pp); if (s7_inst.error != 0) - return (int) s7_FAIL; /* to ouptut_inst to printf out the error */ + return s7_FAIL; /* to ouptut_inst to printf out the error */ *str = dataptr; } else /* process 16 bit */ { - if (s7_my_get_expression (&s7_inst.reloc.exp, str) == (int) s7_FAIL) + if (s7_my_get_expression (&s7_inst.reloc.exp, str) == s7_FAIL) { - return (int) s7_FAIL; + return s7_FAIL; } dataptr = (char *) data_exp; @@ -1546,7 +1546,7 @@ s7_data_op2 (char **str, int shift, enum score_data_type data_type) || ((*dataptr == '-') && (*(dataptr + 1) != '0')))) { s7_inst.error = s7_BAD_ARGS; - return (int) s7_FAIL; + return s7_FAIL; } } @@ -1564,7 +1564,7 @@ s7_data_op2 (char **str, int shift, enum score_data_type data_type) || (data_type == _IMM4))) { s7_inst.error = s7_BAD_ARGS; - return (int) s7_FAIL; + return s7_FAIL; } if (s7_inst.reloc.exp.X_add_symbol) @@ -1572,7 +1572,7 @@ s7_data_op2 (char **str, int shift, enum score_data_type data_type) switch (data_type) { case _SIMM16_LA: - return (int) s7_FAIL; + return s7_FAIL; case _VALUE_HI16: s7_inst.reloc.type = BFD_RELOC_HI16_S; s7_inst.reloc.pc_rel = 0; @@ -1607,7 +1607,7 @@ s7_data_op2 (char **str, int shift, enum score_data_type data_type) if (data_type == _SIMM16_LA && s7_inst.reloc.exp.X_unsigned == 1) { value = s7_validate_immediate (s7_inst.reloc.exp.X_add_number, _SIMM16_LA_POS, hex_p); - if (value == (int) s7_FAIL) /* for advance to check if this is ldis */ + if (value == s7_FAIL) /* for advance to check if this is ldis */ if ((s7_inst.reloc.exp.X_add_number & 0xffff) == 0) { s7_inst.instruction |= 0x8000000; @@ -1620,7 +1620,7 @@ s7_data_op2 (char **str, int shift, enum score_data_type data_type) value = s7_validate_immediate (s7_inst.reloc.exp.X_add_number, data_type, hex_p); } - if (value == (int) s7_FAIL) + if (value == s7_FAIL) { if ((data_type != _SIMM14_NEG) && (data_type != _SIMM16_NEG) && (data_type != _IMM16_NEG)) { @@ -1638,7 +1638,7 @@ s7_data_op2 (char **str, int shift, enum score_data_type data_type) } s7_inst.error = s7_err_msg; - return (int) s7_FAIL; + return s7_FAIL; } if ((s7_score_df_range[data_type].range[0] != 0) || (data_type == _IMM5_RANGE_8_31)) @@ -1673,7 +1673,7 @@ s7_data_op2 (char **str, int shift, enum score_data_type data_type) && (((s7_inst.instruction >> 20) & 0x1F) != 0x1f)) { s7_inst.error = _("invalid constant: bit expression not defined"); - return (int) s7_FAIL; + return s7_FAIL; } } @@ -1687,10 +1687,10 @@ s7_do_rdsi16 (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_data_op2 (&str, 1, _SIMM16) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_data_op2 (&str, 1, _SIMM16) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) return; /* ldi. */ @@ -1720,9 +1720,9 @@ s7_do_sub_rdsi16 (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_data_op2 (&str, 1, _SIMM16_NEG) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_data_op2 (&str, 1, _SIMM16_NEG) != s7_FAIL) s7_end_of_line (str); } @@ -1734,10 +1734,10 @@ s7_do_rdrssi14 (char *str) /* -(2^13)~((2^13)-1) */ { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL) s7_data_op2 (&str, 1, _SIMM14); } @@ -1748,11 +1748,11 @@ s7_do_sub_rdrssi14 (char *str) /* -(2^13)~((2^13)-1) */ { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_data_op2 (&str, 1, _SIMM14_NEG) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_data_op2 (&str, 1, _SIMM14_NEG) != s7_FAIL) s7_end_of_line (str); } @@ -1763,12 +1763,12 @@ s7_do_rdrsi5 (char *str) /* 0~((2^14)-1) */ { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_data_op2 (&str, 10, _IMM5) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_data_op2 (&str, 10, _IMM5) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) return; if ((((s7_inst.instruction >> 20) & 0x1f) == ((s7_inst.instruction >> 15) & 0x1f)) @@ -1788,11 +1788,11 @@ s7_do_rdrsi14 (char *str) /* 0 ~ ((2^14)-1) */ { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_data_op2 (&str, 1, _IMM14) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_data_op2 (&str, 1, _IMM14) != s7_FAIL) s7_end_of_line (str); } @@ -1803,10 +1803,10 @@ s7_do_xrsi5 (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_data_op2 (&str, 10, _IMM5) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_data_op2 (&str, 10, _IMM5) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) return; if ((s7_inst.relax_inst != 0x8000) && (((s7_inst.instruction >> 15) & 0x10) == 0)) @@ -1825,10 +1825,10 @@ s7_do_rdi16 (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_data_op2 (&str, 1, _IMM16) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_data_op2 (&str, 1, _IMM16) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) return; } @@ -1838,8 +1838,8 @@ s7_do_macro_rdi32hi (char *str) s7_skip_whitespace (str); /* Do not handle s7_end_of_line(). */ - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL) s7_data_op2 (&str, 1, _VALUE_HI16); } @@ -1849,8 +1849,8 @@ s7_do_macro_rdi32lo (char *str) s7_skip_whitespace (str); /* Do not handle s7_end_of_line(). */ - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL) s7_data_op2 (&str, 1, _VALUE_LO16); } @@ -1861,9 +1861,9 @@ s7_do_rdi16_pic (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_data_op2 (&str, 1, _IMM16_pic) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_data_op2 (&str, 1, _IMM16_pic) != s7_FAIL) s7_end_of_line (str); } @@ -1874,9 +1874,9 @@ s7_do_addi_s_pic (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_data_op2 (&str, 1, _SIMM16_pic) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_data_op2 (&str, 1, _SIMM16_pic) != s7_FAIL) s7_end_of_line (str); } @@ -1887,9 +1887,9 @@ s7_do_addi_u_pic (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_data_op2 (&str, 1, _IMM16_LO16_pic) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_data_op2 (&str, 1, _IMM16_LO16_pic) != s7_FAIL) s7_end_of_line (str); } @@ -1900,7 +1900,7 @@ s7_do_rd (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL) s7_end_of_line (str); } @@ -1909,8 +1909,8 @@ s7_do_rs (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) return; if ((s7_inst.relax_inst != 0x8000) && (((s7_inst.instruction >> 15) & 0x10) == 0)) @@ -1927,7 +1927,7 @@ s7_do_i15 (char *str) { s7_skip_whitespace (str); - if (s7_data_op2 (&str, 10, _IMM15) != (int) s7_FAIL) + if (s7_data_op2 (&str, 10, _IMM15) != s7_FAIL) s7_end_of_line (str); } @@ -1936,7 +1936,7 @@ s7_do_xi5x (char *str) { s7_skip_whitespace (str); - if (s7_data_op2 (&str, 15, _IMM5) == (int) s7_FAIL || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_data_op2 (&str, 15, _IMM5) == s7_FAIL || s7_end_of_line (str) == s7_FAIL) return; if (s7_inst.relax_inst != 0x8000) @@ -1951,10 +1951,10 @@ s7_do_rdrs (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) return; if (s7_inst.relax_inst != 0x8000) @@ -2005,9 +2005,9 @@ s7_do_rdcrs (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE_CR) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE_CR) != s7_FAIL) s7_end_of_line (str); } @@ -2021,15 +2021,15 @@ s7_do_rdsrs (char *str) /* mfsr */ if ((s7_inst.instruction & 0xff) == 0x50) { - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE_SR) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE_SR) != s7_FAIL) s7_end_of_line (str); } else { - if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL) + if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL) s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE_SR); } } @@ -2041,10 +2041,10 @@ s7_do_rdxrs (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) return; if ((s7_inst.relax_inst != 0x8000) && (((s7_inst.instruction >> 10) & 0x10) == 0) @@ -2063,10 +2063,10 @@ s7_do_rsrs (char *str) { s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) return; if ((s7_inst.relax_inst != 0x8000) && (((s7_inst.instruction >> 20) & 0x1f) == 3) @@ -2087,23 +2087,23 @@ s7_do_ceinst (char *str) strbak = str; s7_skip_whitespace (str); - if (s7_data_op2 (&str, 20, _IMM5) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_data_op2 (&str, 5, _IMM5) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_data_op2 (&str, 0, _IMM5) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_data_op2 (&str, 20, _IMM5) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_data_op2 (&str, 5, _IMM5) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_data_op2 (&str, 0, _IMM5) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) { return; } else { str = strbak; - if (s7_data_op2 (&str, 0, _IMM25) == (int) s7_FAIL) + if (s7_data_op2 (&str, 0, _IMM25) == s7_FAIL) return; } } @@ -2115,7 +2115,7 @@ s7_reglow_required_here (char **str, int shift) int reg; char *start = *str; - if ((reg = s7_score_reg_parse (str, s7_all_reg_maps[s7_REG_TYPE_SCORE].htab)) != (int) s7_FAIL) + if ((reg = s7_score_reg_parse (str, s7_all_reg_maps[s7_REG_TYPE_SCORE].htab)) != s7_FAIL) { if ((reg == 1) && (s7_nor1 == 1) && (s7_inst.bwarn == 0)) { @@ -2135,7 +2135,7 @@ s7_reglow_required_here (char **str, int shift) *str = start; sprintf (buff, _("low register(r0-r15)expected, not '%.100s'"), start); s7_inst.error = buff; - return (int) s7_FAIL; + return s7_FAIL; } /* Handle addc!/add!/and!/cmp!/neg!/not!/or!/sll!/srl!/sra!/xor!/sub!. */ @@ -2145,10 +2145,10 @@ s7_do16_rdrs (char *str) { s7_skip_whitespace (str); - if (s7_reglow_required_here (&str, 8) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reglow_required_here (&str, 4) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reglow_required_here (&str, 8) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reglow_required_here (&str, 4) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) { return; } @@ -2185,8 +2185,8 @@ s7_do16_rs (char *str) s7_skip_whitespace (str); - if ((rd = s7_reglow_required_here (&str, 4)) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if ((rd = s7_reglow_required_here (&str, 4)) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) { return; } @@ -2204,7 +2204,7 @@ s7_do16_xrs (char *str) { s7_skip_whitespace (str); - if (s7_reglow_required_here (&str, 4) == (int) s7_FAIL || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reglow_required_here (&str, 4) == s7_FAIL || s7_end_of_line (str) == s7_FAIL) { return; } @@ -2223,7 +2223,7 @@ s7_reghigh_required_here (char **str, int shift) int reg; char *start = *str; - if ((reg = s7_score_reg_parse (str, s7_all_reg_maps[s7_REG_TYPE_SCORE].htab)) != (int) s7_FAIL) + if ((reg = s7_score_reg_parse (str, s7_all_reg_maps[s7_REG_TYPE_SCORE].htab)) != s7_FAIL) { if (15 < reg && reg < 32) { @@ -2237,7 +2237,7 @@ s7_reghigh_required_here (char **str, int shift) *str = start; sprintf (buff, _("high register(r16-r31)expected, not '%.100s'"), start); s7_inst.error = buff; - return (int) s7_FAIL; + return s7_FAIL; } /* Handle mhfl!. */ @@ -2247,10 +2247,10 @@ s7_do16_hrdrs (char *str) { s7_skip_whitespace (str); - if (s7_reghigh_required_here (&str, 8) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_reglow_required_here (&str, 4) != (int) s7_FAIL - && s7_end_of_line (str) != (int) s7_FAIL) + if (s7_reghigh_required_here (&str, 8) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_reglow_required_here (&str, 4) != s7_FAIL + && s7_end_of_line (str) != s7_FAIL) { s7_inst.relax_inst |= ((((s7_inst.instruction >> 8) & 0xf) | 0x10) << 20) | (((s7_inst.instruction >> 4) & 0xf) << 15) | (0xf << 10); @@ -2265,10 +2265,10 @@ s7_do16_rdhrs (char *str) { s7_skip_whitespace (str); - if (s7_reglow_required_here (&str, 8) != (int) s7_FAIL - && s7_skip_past_comma (&str) != (int) s7_FAIL - && s7_reghigh_required_here (&str, 4) != (int) s7_FAIL - && s7_end_of_line (str) != (int) s7_FAIL) + if (s7_reglow_required_here (&str, 8) != s7_FAIL + && s7_skip_past_comma (&str) != s7_FAIL + && s7_reghigh_required_here (&str, 4) != s7_FAIL + && s7_end_of_line (str) != s7_FAIL) { s7_inst.relax_inst |= (((s7_inst.instruction >> 8) & 0xf) << 20) | ((((s7_inst.instruction >> 4) & 0xf) | 0x10) << 15) | (0xf << 10); @@ -2544,7 +2544,7 @@ s7_handle_dependency (struct s7_score_it *theinst) static enum insn_class s7_get_insn_class_from_type (enum score_insn_type type) { - enum insn_class retval = (int) s7_FAIL; + enum insn_class retval = s7_FAIL; switch (type) { @@ -2826,7 +2826,7 @@ s7_append_insn (char *str, bool gen_frag_p) if (s7_inst.error) { - retval = (int) s7_FAIL; + retval = s7_FAIL; as_bad (_("%s -- `%s'"), s7_inst.error, s7_inst.str); s7_inst.error = NULL; } @@ -2847,10 +2847,10 @@ s7_do16_mv_rdrs (char *str) backupstr = str; s7_skip_whitespace (str); - if ((reg_rd = s7_reg_required_here (&str, 8, s7_REG_TYPE_SCORE)) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || (reg_rs = s7_reg_required_here (&str, 4, s7_REG_TYPE_SCORE)) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if ((reg_rd = s7_reg_required_here (&str, 8, s7_REG_TYPE_SCORE)) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || (reg_rs = s7_reg_required_here (&str, 4, s7_REG_TYPE_SCORE)) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) { return; } @@ -2870,7 +2870,7 @@ s7_do16_mv_rdrs (char *str) char append_str[s7_MAX_LITERAL_POOL_SIZE]; sprintf (append_str, "mlfh! %s", backupstr); - if (s7_append_insn (append_str, true) == (int) s7_FAIL) + if (s7_append_insn (append_str, true) == s7_FAIL) return; /* Set bwarn as -1, so macro instruction itself will not be generated frag. */ s7_inst.bwarn = -1; @@ -2889,7 +2889,7 @@ s7_do16_mv_rdrs (char *str) char append_str[s7_MAX_LITERAL_POOL_SIZE]; sprintf (append_str, "mhfl! %s", backupstr); - if (s7_append_insn (append_str, true) == (int) s7_FAIL) + if (s7_append_insn (append_str, true) == s7_FAIL) return; /* Set bwarn as -1, so macro instruction itself will not be generated frag. */ @@ -2904,10 +2904,10 @@ s7_do16_rdi4 (char *str) { s7_skip_whitespace (str); - if (s7_reglow_required_here (&str, 8) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_data_op2 (&str, 3, _IMM4) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reglow_required_here (&str, 8) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_data_op2 (&str, 3, _IMM4) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) { return; } @@ -2947,10 +2947,10 @@ s7_do16_rdi5 (char *str) { s7_skip_whitespace (str); - if (s7_reglow_required_here (&str, 8) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_data_op2 (&str, 3, _IMM5) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_reglow_required_here (&str, 8) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_data_op2 (&str, 3, _IMM5) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) return; else { @@ -2967,7 +2967,7 @@ s7_do16_xi5 (char *str) { s7_skip_whitespace (str); - if (s7_data_op2 (&str, 3, _IMM5) == (int) s7_FAIL || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_data_op2 (&str, 3, _IMM5) == s7_FAIL || s7_end_of_line (str) == s7_FAIL) return; else { @@ -2987,7 +2987,7 @@ s7_validate_immediate_align (int val, unsigned int data_type) if (val % 2) { s7_inst.error = _("address offset must be half word alignment"); - return (int) s7_FAIL; + return s7_FAIL; } } else if ((data_type == _IMM5_RSHIFT_2) || (data_type == _IMM10_RSHIFT_2)) @@ -2995,7 +2995,7 @@ s7_validate_immediate_align (int val, unsigned int data_type) if (val % 4) { s7_inst.error = _("address offset must be word alignment"); - return (int) s7_FAIL; + return s7_FAIL; } } @@ -3035,19 +3035,19 @@ s7_exp_ldst_offset (char **str, int shift, unsigned int data_type) } } - if (s7_my_get_expression (&s7_inst.reloc.exp, str) == (int) s7_FAIL) - return (int) s7_FAIL; + if (s7_my_get_expression (&s7_inst.reloc.exp, str) == s7_FAIL) + return s7_FAIL; if (s7_inst.reloc.exp.X_op == O_constant) { /* Need to check the immediate align. */ int value = s7_validate_immediate_align (s7_inst.reloc.exp.X_add_number, data_type); - if (value == (int) s7_FAIL) - return (int) s7_FAIL; + if (value == s7_FAIL) + return s7_FAIL; value = s7_validate_immediate (s7_inst.reloc.exp.X_add_number, data_type, hex_p); - if (value == (int) s7_FAIL) + if (value == s7_FAIL) { if (data_type < 30) sprintf (s7_err_msg, @@ -3060,7 +3060,7 @@ s7_exp_ldst_offset (char **str, int shift, unsigned int data_type) s7_score_df_range[data_type - 24].bits, s7_score_df_range[data_type - 24].range[0], s7_score_df_range[data_type - 24].range[1]); s7_inst.error = s7_err_msg; - return (int) s7_FAIL; + return s7_FAIL; } if (data_type == _IMM5_RSHIFT_1) @@ -3102,8 +3102,8 @@ s7_do_ldst_insn (char *str) s7_skip_whitespace (str); - if (((conflict_reg = s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) - || (s7_skip_past_comma (&str) == (int) s7_FAIL)) + if (((conflict_reg = s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE)) == s7_FAIL) + || (s7_skip_past_comma (&str) == s7_FAIL)) return; /* ld/sw rD, [rA, simm15] ld/sw rD, [rA]+, simm12 ld/sw rD, [rA, simm12]+. */ @@ -3112,7 +3112,7 @@ s7_do_ldst_insn (char *str) str++; s7_skip_whitespace (str); - if ((reg = s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) + if ((reg = s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE)) == s7_FAIL) return; /* Conflicts can occur on stores as well as loads. */ @@ -3130,8 +3130,8 @@ s7_do_ldst_insn (char *str) /* ld/sw rD, [rA]+, simm12. */ if (s7_skip_past_comma (&str) == s7_SUCCESS) { - if ((s7_exp_ldst_offset (&str, 3, _SIMM12) == (int) s7_FAIL) - || (s7_end_of_line (str) == (int) s7_FAIL)) + if ((s7_exp_ldst_offset (&str, 3, _SIMM12) == s7_FAIL) + || (s7_end_of_line (str) == s7_FAIL)) return; if (conflict_reg) @@ -3183,7 +3183,7 @@ s7_do_ldst_insn (char *str) else { s7_SET_INSN_ERROR (NULL); - if (s7_end_of_line (str) == (int) s7_FAIL) + if (s7_end_of_line (str) == s7_FAIL) { return; } @@ -3202,7 +3202,7 @@ s7_do_ldst_insn (char *str) /* ld/sw rD, [rA] convert to ld/sw rD, [rA, simm15]. */ else { - if (s7_end_of_line (str) == (int) s7_FAIL) + if (s7_end_of_line (str) == s7_FAIL) return; ldst_idx = s7_inst.instruction & OPC_PSEUDOLDST_MASK; @@ -3259,13 +3259,13 @@ s7_do_ldst_insn (char *str) /* ld/sw rD, [rA, simm15] ld/sw rD, [rA, simm12]+. */ else { - if (s7_skip_past_comma (&str) == (int) s7_FAIL) + if (s7_skip_past_comma (&str) == s7_FAIL) { s7_inst.error = _("pre-indexed expression expected"); return; } - if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == (int) s7_FAIL) + if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == s7_FAIL) return; s7_skip_whitespace (str); @@ -3297,7 +3297,7 @@ s7_do_ldst_insn (char *str) } } - if (s7_end_of_line (str) == (int) s7_FAIL) + if (s7_end_of_line (str) == s7_FAIL) return; if (s7_inst.reloc.exp.X_op == O_constant) @@ -3336,7 +3336,7 @@ s7_do_ldst_insn (char *str) } value = s7_validate_immediate (s7_inst.reloc.exp.X_add_number, data_type, hex_p); - if (value == (int) s7_FAIL) + if (value == s7_FAIL) { if (data_type < 30) sprintf (s7_err_msg, @@ -3606,7 +3606,7 @@ s7_do_cache (char *str) { s7_skip_whitespace (str); - if ((s7_data_op2 (&str, 20, _IMM5) == (int) s7_FAIL) || (s7_skip_past_comma (&str) == (int) s7_FAIL)) + if ((s7_data_op2 (&str, 20, _IMM5) == s7_FAIL) || (s7_skip_past_comma (&str) == s7_FAIL)) { return; } @@ -3623,13 +3623,13 @@ s7_do_cache (char *str) str++; s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == s7_FAIL) return; s7_skip_whitespace (str); /* cache op, [rA] */ - if (s7_skip_past_comma (&str) == (int) s7_FAIL) + if (s7_skip_past_comma (&str) == s7_FAIL) { s7_SET_INSN_ERROR (NULL); if (*str != ']') @@ -3642,7 +3642,7 @@ s7_do_cache (char *str) /* cache op, [rA, simm15] */ else { - if (s7_exp_ldst_offset (&str, 0, _SIMM15) == (int) s7_FAIL) + if (s7_exp_ldst_offset (&str, 0, _SIMM15) == s7_FAIL) { return; } @@ -3655,7 +3655,7 @@ s7_do_cache (char *str) } } - if (s7_end_of_line (str) == (int) s7_FAIL) + if (s7_end_of_line (str) == s7_FAIL) return; } else @@ -3672,21 +3672,21 @@ s7_do_crdcrscrsimm5 (char *str) strbak = str; s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE_CR) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE_CR) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL - || s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE_CR) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE_CR) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE_CR) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL + || s7_reg_required_here (&str, 10, s7_REG_TYPE_SCORE_CR) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL) { str = strbak; /* cop1 cop_code20. */ - if (s7_data_op2 (&str, 5, _IMM20) == (int) s7_FAIL) + if (s7_data_op2 (&str, 5, _IMM20) == s7_FAIL) return; } else { - if (s7_data_op2 (&str, 5, _IMM5) == (int) s7_FAIL) + if (s7_data_op2 (&str, 5, _IMM5) == s7_FAIL) return; } @@ -3699,8 +3699,8 @@ s7_do_ldst_cop (char *str) { s7_skip_whitespace (str); - if ((s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE_CR) == (int) s7_FAIL) - || (s7_skip_past_comma (&str) == (int) s7_FAIL)) + if ((s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE_CR) == s7_FAIL) + || (s7_skip_past_comma (&str) == s7_FAIL)) return; if (*str == '[') @@ -3708,14 +3708,14 @@ s7_do_ldst_cop (char *str) str++; s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == s7_FAIL) return; s7_skip_whitespace (str); if (*str++ != ']') { - if (s7_exp_ldst_offset (&str, 5, _IMM10_RSHIFT_2) == (int) s7_FAIL) + if (s7_exp_ldst_offset (&str, 5, _IMM10_RSHIFT_2) == s7_FAIL) return; s7_skip_whitespace (str); @@ -3737,7 +3737,7 @@ s7_do16_ldst_insn (char *str) { s7_skip_whitespace (str); - if ((s7_reglow_required_here (&str, 8) == (int) s7_FAIL) || (s7_skip_past_comma (&str) == (int) s7_FAIL)) + if ((s7_reglow_required_here (&str, 8) == s7_FAIL) || (s7_skip_past_comma (&str) == s7_FAIL)) return; if (*str == '[') @@ -3747,13 +3747,13 @@ s7_do16_ldst_insn (char *str) str++; s7_skip_whitespace (str); - if ((reg = s7_reglow_required_here (&str, 4)) == (int) s7_FAIL) + if ((reg = s7_reglow_required_here (&str, 4)) == s7_FAIL) return; s7_skip_whitespace (str); if (*str++ == ']') { - if (s7_end_of_line (str) == (int) s7_FAIL) + if (s7_end_of_line (str) == s7_FAIL) return; else { @@ -3782,13 +3782,13 @@ s7_do16_ldst_imm_insn (char *str) int reg_rd; char *dataptr = NULL, *pp = NULL; int cnt = 0; - int assign_data = (int) s7_FAIL; + int assign_data = s7_FAIL; unsigned int ldst_func; s7_skip_whitespace (str); - if (((reg_rd = s7_reglow_required_here (&str, 8)) == (int) s7_FAIL) - || (s7_skip_past_comma (&str) == (int) s7_FAIL)) + if (((reg_rd = s7_reglow_required_here (&str, 8)) == s7_FAIL) + || (s7_skip_past_comma (&str) == s7_FAIL)) return; s7_skip_whitespace (str); @@ -3816,7 +3816,7 @@ s7_do16_ldst_imm_insn (char *str) else assign_data = s7_exp_ldst_offset (&pp, 3, _IMM5); - if ((assign_data == (int) s7_FAIL) || (s7_end_of_line (pp) == (int) s7_FAIL)) + if ((assign_data == s7_FAIL) || (s7_end_of_line (pp) == s7_FAIL)) return; else { @@ -3855,8 +3855,8 @@ s7_do16_push_pop (char *str) int H_bit_mask = 0; s7_skip_whitespace (str); - if (((reg_rd = s7_reg_required_here (&str, 8, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) - || (s7_skip_past_comma (&str) == (int) s7_FAIL)) + if (((reg_rd = s7_reg_required_here (&str, 8, s7_REG_TYPE_SCORE)) == s7_FAIL) + || (s7_skip_past_comma (&str) == s7_FAIL)) return; if (reg_rd >= 16) @@ -3873,7 +3873,7 @@ s7_do16_push_pop (char *str) str++; s7_skip_whitespace (str); - if ((reg = s7_reg_required_here (&str, 4, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) + if ((reg = s7_reg_required_here (&str, 4, s7_REG_TYPE_SCORE)) == s7_FAIL) return; else if (reg > 7) { @@ -3884,7 +3884,7 @@ s7_do16_push_pop (char *str) } s7_skip_whitespace (str); - if ((*str++ != ']') || (s7_end_of_line (str) == (int) s7_FAIL)) + if ((*str++ != ']') || (s7_end_of_line (str) == s7_FAIL)) { if (!s7_inst.error) s7_inst.error = _("missing ]"); @@ -3948,7 +3948,7 @@ s7_do_ldst_unalign (char *str) str++; s7_skip_whitespace (str); - if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == (int) s7_FAIL) + if (s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE) == s7_FAIL) return; if (*str++ == ']') @@ -3965,14 +3965,14 @@ s7_do_ldst_unalign (char *str) return; } - if (s7_end_of_line (str) == (int) s7_FAIL) + if (s7_end_of_line (str) == s7_FAIL) return; } /* lcw/lce/scb/sce rD, [rA]+. */ else { - if (((conflict_reg = s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) - || (s7_skip_past_comma (&str) == (int) s7_FAIL)) + if (((conflict_reg = s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE)) == s7_FAIL) + || (s7_skip_past_comma (&str) == s7_FAIL)) { return; } @@ -3983,7 +3983,7 @@ s7_do_ldst_unalign (char *str) int reg; s7_skip_whitespace (str); - if ((reg = s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) + if ((reg = s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE)) == s7_FAIL) { return; } @@ -4010,7 +4010,7 @@ s7_do_ldst_unalign (char *str) return; } - if (s7_end_of_line (str) == (int) s7_FAIL) + if (s7_end_of_line (str) == s7_FAIL) return; } else @@ -4040,8 +4040,8 @@ s7_do_ldst_atomic (char *str) s7_skip_whitespace (str); - if ((s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == (int) s7_FAIL) - || (s7_skip_past_comma (&str) == (int) s7_FAIL)) + if ((s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE) == s7_FAIL) + || (s7_skip_past_comma (&str) == s7_FAIL)) { return; } @@ -4054,7 +4054,7 @@ s7_do_ldst_atomic (char *str) int reg; s7_skip_whitespace (str); - if ((reg = s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) + if ((reg = s7_reg_required_here (&str, 15, s7_REG_TYPE_SCORE)) == s7_FAIL) { return; } @@ -4199,7 +4199,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) For an external symbol: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15 or BFD_RELOC_SCORE_CALL15) */ sprintf (tmp, "lw_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); - if (s7_append_insn (tmp, false) == (int) s7_FAIL) + if (s7_append_insn (tmp, false) == s7_FAIL) return; if (reg_rd == s7_PIC_CALL_REG) @@ -4213,7 +4213,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) s7_inst.reloc.type = BFD_RELOC_SCORE_GOT15; memcpy (&var_insts[0], &s7_inst, sizeof (struct s7_score_it)); sprintf (tmp, "addi_s_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); - if (s7_append_insn (tmp, false) == (int) s7_FAIL) + if (s7_append_insn (tmp, false) == s7_FAIL) return; memcpy (&var_insts[1], &s7_inst, sizeof (struct s7_score_it)); @@ -4223,7 +4223,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) { /* Insn 1: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15) */ sprintf (tmp, "lw_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); - if (s7_append_insn (tmp, true) == (int) s7_FAIL) + if (s7_append_insn (tmp, true) == s7_FAIL) return; /* Insn 2 */ @@ -4232,7 +4232,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) /* Fix part For an external symbol: addi rD, <constant> */ sprintf (tmp, "addi r%d, %d", reg_rd, (int) add_number); - if (s7_append_insn (tmp, false) == (int) s7_FAIL) + if (s7_append_insn (tmp, false) == s7_FAIL) return; memcpy (&fix_insts[0], &s7_inst, sizeof (struct s7_score_it)); @@ -4241,7 +4241,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) For a local symbol: addi rD, <sym>+<constant> (BFD_RELOC_GOT_LO16) */ sprintf (tmp, "addi_s_pic r%d, %s + %d", reg_rd, S_GET_NAME (add_symbol), (int) add_number); - if (s7_append_insn (tmp, false) == (int) s7_FAIL) + if (s7_append_insn (tmp, false) == s7_FAIL) return; memcpy (&var_insts[0], &s7_inst, sizeof (struct s7_score_it)); @@ -4254,7 +4254,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) /* Insn 1: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15) */ sprintf (tmp, "lw_pic r%d, %s", reg_rd, S_GET_NAME (add_symbol)); - if (s7_append_insn (tmp, true) == (int) s7_FAIL) + if (s7_append_insn (tmp, true) == s7_FAIL) return; /* Insn 2 */ @@ -4263,7 +4263,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) /* Fix part For an external symbol: ldis r1, HI%<constant> */ sprintf (tmp, "ldis r1, %d", hi); - if (s7_append_insn (tmp, false) == (int) s7_FAIL) + if (s7_append_insn (tmp, false) == s7_FAIL) return; memcpy (&fix_insts[0], &s7_inst, sizeof (struct s7_score_it)); @@ -4276,7 +4276,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) hi += 1; } sprintf (tmp, "ldis_pic r1, %d", hi); - if (s7_append_insn (tmp, false) == (int) s7_FAIL) + if (s7_append_insn (tmp, false) == s7_FAIL) return; memcpy (&var_insts[0], &s7_inst, sizeof (struct s7_score_it)); @@ -4288,7 +4288,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) /* Fix part For an external symbol: ori r1, LO%<constant> */ sprintf (tmp, "ori r1, %d", lo); - if (s7_append_insn (tmp, false) == (int) s7_FAIL) + if (s7_append_insn (tmp, false) == s7_FAIL) return; memcpy (&fix_insts[0], &s7_inst, sizeof (struct s7_score_it)); @@ -4296,7 +4296,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) /* Var part For a local symbol: addi r1, <sym>+LO%<constant> (BFD_RELOC_GOT_LO16) */ sprintf (tmp, "addi_u_pic r1, %s + %d", S_GET_NAME (add_symbol), lo); - if (s7_append_insn (tmp, false) == (int) s7_FAIL) + if (s7_append_insn (tmp, false) == s7_FAIL) return; memcpy (&var_insts[0], &s7_inst, sizeof (struct s7_score_it)); @@ -4304,7 +4304,7 @@ s7_build_la_pic (int reg_rd, expressionS exp) /* Insn 4: add rD, rD, r1 */ sprintf (tmp, "add r%d, r%d, r1", reg_rd, reg_rd); - if (s7_append_insn (tmp, true) == (int) s7_FAIL) + if (s7_append_insn (tmp, true) == s7_FAIL) return; /* Set bwarn as -1, so macro instruction itself will not be generated frag. */ @@ -4322,8 +4322,8 @@ s7_do_macro_la_rdi32 (char *str) int reg_rd; s7_skip_whitespace (str); - if ((reg_rd = s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE)) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL) + if ((reg_rd = s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE)) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL) { return; } @@ -4333,13 +4333,13 @@ s7_do_macro_la_rdi32 (char *str) char *keep_data = str; /* Check immediate value. */ - if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == (int) s7_FAIL) + if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == s7_FAIL) { s7_inst.error = _("expression error"); return; } else if ((s7_inst.reloc.exp.X_add_symbol == NULL) - && (s7_validate_immediate (s7_inst.reloc.exp.X_add_number, _IMM32, 0) == (int) s7_FAIL)) + && (s7_validate_immediate (s7_inst.reloc.exp.X_add_number, _IMM32, 0) == s7_FAIL)) { s7_inst.error = _("value not in range [0, 0xffffffff]"); return; @@ -4349,7 +4349,7 @@ s7_do_macro_la_rdi32 (char *str) str = keep_data; /* la rd, simm16. */ - if (s7_data_op2 (&str, 1, _SIMM16_LA) != (int) s7_FAIL) + if (s7_data_op2 (&str, 1, _SIMM16_LA) != s7_FAIL) { s7_end_of_line (str); return; @@ -4359,8 +4359,8 @@ s7_do_macro_la_rdi32 (char *str) { s7_SET_INSN_ERROR (NULL); str = keep_data; - if ((s7_data_op2 (&str, 1, _VALUE_HI16) == (int) s7_FAIL) - || (s7_end_of_line (str) == (int) s7_FAIL)) + if ((s7_data_op2 (&str, 1, _VALUE_HI16) == s7_FAIL) + || (s7_end_of_line (str) == s7_FAIL)) { return; } @@ -4369,11 +4369,11 @@ s7_do_macro_la_rdi32 (char *str) if ((s7_score_pic == s7_NO_PIC) || (!s7_inst.reloc.exp.X_add_symbol)) { sprintf (append_str, "ld_i32hi r%d, %s", reg_rd, keep_data); - if (s7_append_insn (append_str, true) == (int) s7_FAIL) + if (s7_append_insn (append_str, true) == s7_FAIL) return; sprintf (append_str, "ld_i32lo r%d, %s", reg_rd, keep_data); - if (s7_append_insn (append_str, true) == (int) s7_FAIL) + if (s7_append_insn (append_str, true) == s7_FAIL) return; } else @@ -4397,8 +4397,8 @@ s7_do_macro_li_rdi32 (char *str) int reg_rd; s7_skip_whitespace (str); - if ((reg_rd = s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE)) == (int) s7_FAIL - || s7_skip_past_comma (&str) == (int) s7_FAIL) + if ((reg_rd = s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE)) == s7_FAIL + || s7_skip_past_comma (&str) == s7_FAIL) { return; } @@ -4407,7 +4407,7 @@ s7_do_macro_li_rdi32 (char *str) char *keep_data = str; /* Check immediate value. */ - if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == (int) s7_FAIL) + if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == s7_FAIL) { s7_inst.error = _("expression error"); return; @@ -4423,7 +4423,7 @@ s7_do_macro_li_rdi32 (char *str) str = keep_data; /* li rd, simm16. */ - if (s7_data_op2 (&str, 1, _SIMM16_LA) != (int) s7_FAIL) + if (s7_data_op2 (&str, 1, _SIMM16_LA) != s7_FAIL) { s7_end_of_line (str); return; @@ -4435,8 +4435,8 @@ s7_do_macro_li_rdi32 (char *str) str = keep_data; - if ((s7_data_op2 (&str, 1, _VALUE_HI16) == (int) s7_FAIL) - || (s7_end_of_line (str) == (int) s7_FAIL)) + if ((s7_data_op2 (&str, 1, _VALUE_HI16) == s7_FAIL) + || (s7_end_of_line (str) == s7_FAIL)) { return; } @@ -4449,12 +4449,12 @@ s7_do_macro_li_rdi32 (char *str) { sprintf (append_str, "ld_i32hi r%d, %s", reg_rd, keep_data); - if (s7_append_insn (append_str, true) == (int) s7_FAIL) + if (s7_append_insn (append_str, true) == s7_FAIL) return; else { sprintf (append_str, "ld_i32lo r%d, %s", reg_rd, keep_data); - if (s7_append_insn (append_str, true) == (int) s7_FAIL) + if (s7_append_insn (append_str, true) == s7_FAIL) return; /* Set bwarn as -1, so macro instruction itself will not be generated frag. */ @@ -4482,15 +4482,15 @@ s7_do_macro_mul_rdrsrs (char *str) strcpy (append_str, str); backupstr = append_str; s7_skip_whitespace (backupstr); - if (((reg_rd = s7_reg_required_here (&backupstr, -1, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) - || (s7_skip_past_comma (&backupstr) == (int) s7_FAIL) - || ((reg_rs1 = s7_reg_required_here (&backupstr, -1, s7_REG_TYPE_SCORE)) == (int) s7_FAIL)) + if (((reg_rd = s7_reg_required_here (&backupstr, -1, s7_REG_TYPE_SCORE)) == s7_FAIL) + || (s7_skip_past_comma (&backupstr) == s7_FAIL) + || ((reg_rs1 = s7_reg_required_here (&backupstr, -1, s7_REG_TYPE_SCORE)) == s7_FAIL)) { s7_inst.error = s7_BAD_ARGS; return; } - if (s7_skip_past_comma (&backupstr) == (int) s7_FAIL) + if (s7_skip_past_comma (&backupstr) == s7_FAIL) { /* rem/remu rA, rB is error format. */ if (strcmp (s7_inst.name, "rem") == 0 || strcmp (s7_inst.name, "remu") == 0) @@ -4507,8 +4507,8 @@ s7_do_macro_mul_rdrsrs (char *str) else { s7_SET_INSN_ERROR (NULL); - if (((reg_rs2 = s7_reg_required_here (&backupstr, -1, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) - || (s7_end_of_line (backupstr) == (int) s7_FAIL)) + if (((reg_rs2 = s7_reg_required_here (&backupstr, -1, s7_REG_TYPE_SCORE)) == s7_FAIL) + || (s7_end_of_line (backupstr) == s7_FAIL)) { return; } @@ -4533,11 +4533,11 @@ s7_do_macro_mul_rdrsrs (char *str) } /* Output mul/mulu or div/divu or rem/remu. */ - if (s7_append_insn (append_str, true) == (int) s7_FAIL) + if (s7_append_insn (append_str, true) == s7_FAIL) return; /* Output mfcel or mfceh. */ - if (s7_append_insn (append_str1, true) == (int) s7_FAIL) + if (s7_append_insn (append_str1, true) == s7_FAIL) return; /* Set bwarn as -1, so macro instruction itself will not be generated frag. */ @@ -4563,11 +4563,11 @@ s7_exp_macro_ldst_abs (char *str) strcpy (verifystr, str); backupstr = verifystr; s7_skip_whitespace (backupstr); - if ((reg_rd = s7_reg_required_here (&backupstr, -1, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) + if ((reg_rd = s7_reg_required_here (&backupstr, -1, s7_REG_TYPE_SCORE)) == s7_FAIL) return; tmp = backupstr; - if (s7_skip_past_comma (&backupstr) == (int) s7_FAIL) + if (s7_skip_past_comma (&backupstr) == s7_FAIL) return; backupstr = tmp; @@ -4661,7 +4661,7 @@ s7_build_lwst_pic (int reg_rd, expressionS exp, const char *insn_name) For an external symbol: lw rD, <sym>($gp) (BFD_RELOC_SCORE_GOT15) */ sprintf (tmp, "lw_pic r1, %s", S_GET_NAME (add_symbol)); - if (s7_append_insn (tmp, false) == (int) s7_FAIL) + if (s7_append_insn (tmp, false) == s7_FAIL) return; memcpy (&fix_insts[0], &s7_inst, sizeof (struct s7_score_it)); @@ -4673,7 +4673,7 @@ s7_build_lwst_pic (int reg_rd, expressionS exp, const char *insn_name) s7_inst.reloc.type = BFD_RELOC_SCORE_GOT15; memcpy (&var_insts[0], &s7_inst, sizeof (struct s7_score_it)); sprintf (tmp, "addi_s_pic r1, %s", S_GET_NAME (add_symbol)); - if (s7_append_insn (tmp, false) == (int) s7_FAIL) + if (s7_append_insn (tmp, false) == s7_FAIL) return; memcpy (&var_insts[1], &s7_inst, sizeof (struct s7_score_it)); @@ -4681,7 +4681,7 @@ s7_build_lwst_pic (int reg_rd, expressionS exp, const char *insn_name) /* Insn 2 or Insn 3: lw/st rD, [r1, constant] */ sprintf (tmp, "%s r%d, [r1, %d]", insn_name, reg_rd, add_number); - if (s7_append_insn (tmp, true) == (int) s7_FAIL) + if (s7_append_insn (tmp, true) == s7_FAIL) return; /* Set bwarn as -1, so macro instruction itself will not be generated frag. */ @@ -4717,10 +4717,10 @@ s7_do_macro_ldst_label (char *str) backup_str = verifystr; s7_skip_whitespace (backup_str); - if ((reg_rd = s7_reg_required_here (&backup_str, -1, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) + if ((reg_rd = s7_reg_required_here (&backup_str, -1, s7_REG_TYPE_SCORE)) == s7_FAIL) return; - if (s7_skip_past_comma (&backup_str) == (int) s7_FAIL) + if (s7_skip_past_comma (&backup_str) == s7_FAIL) return; label_str = backup_str; @@ -4737,18 +4737,18 @@ s7_do_macro_ldst_label (char *str) absolute_value = backup_str; s7_inst.type = Rd_rvalueRs_SI15; - if (s7_my_get_expression (&s7_inst.reloc.exp, &backup_str) == (int) s7_FAIL) + if (s7_my_get_expression (&s7_inst.reloc.exp, &backup_str) == s7_FAIL) { s7_inst.error = _("expression error"); return; } else if ((s7_inst.reloc.exp.X_add_symbol == NULL) - && (s7_validate_immediate (s7_inst.reloc.exp.X_add_number, _VALUE, 0) == (int) s7_FAIL)) + && (s7_validate_immediate (s7_inst.reloc.exp.X_add_number, _VALUE, 0) == s7_FAIL)) { s7_inst.error = _("value not in range [0, 0x7fffffff]"); return; } - else if (s7_end_of_line (backup_str) == (int) s7_FAIL) + else if (s7_end_of_line (backup_str) == s7_FAIL) { s7_inst.error = _("end on line error"); return; @@ -4766,8 +4766,8 @@ s7_do_macro_ldst_label (char *str) /* Ld/st rD, label. */ s7_inst.type = Rd_rvalueRs_SI15; backup_str = absolute_value; - if ((s7_data_op2 (&backup_str, 1, _GP_IMM15) == (int) s7_FAIL) - || (s7_end_of_line (backup_str) == (int) s7_FAIL)) + if ((s7_data_op2 (&backup_str, 1, _GP_IMM15) == s7_FAIL) + || (s7_end_of_line (backup_str) == s7_FAIL)) { return; } @@ -4825,7 +4825,7 @@ s7_do_macro_ldst_label (char *str) ld/st rd, [r1, 0] */ for (i = 0; i < 3; i++) { - if (s7_append_insn (append_str[i], false) == (int) s7_FAIL) + if (s7_append_insn (append_str[i], false) == s7_FAIL) return; memcpy (&inst_expand[i], &s7_inst, sizeof (struct s7_score_it)); @@ -4903,10 +4903,10 @@ s7_do_lw_pic (char *str) int reg_rd; s7_skip_whitespace (str); - if (((reg_rd = s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) - || (s7_skip_past_comma (&str) == (int) s7_FAIL) - || (s7_my_get_expression (&s7_inst.reloc.exp, &str) == (int) s7_FAIL) - || (s7_end_of_line (str) == (int) s7_FAIL)) + if (((reg_rd = s7_reg_required_here (&str, 20, s7_REG_TYPE_SCORE)) == s7_FAIL) + || (s7_skip_past_comma (&str) == s7_FAIL) + || (s7_my_get_expression (&s7_inst.reloc.exp, &str) == s7_FAIL) + || (s7_end_of_line (str) == s7_FAIL)) { return; } @@ -4940,7 +4940,7 @@ s7_do_empty (char *str) return; } } - if (s7_end_of_line (str) == (int) s7_FAIL) + if (s7_end_of_line (str) == s7_FAIL) return; if (s7_inst.relax_inst != 0x8000) @@ -4962,8 +4962,8 @@ s7_do_jump (char *str) char *save_in; s7_skip_whitespace (str); - if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) return; if (s7_inst.reloc.exp.X_add_symbol == 0) @@ -4990,8 +4990,8 @@ static void s7_do16_jump (char *str) { s7_skip_whitespace (str); - if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) { return; } @@ -5016,8 +5016,8 @@ s7_do_branch (char *str) { unsigned long abs_value = 0; - if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL) + if (s7_my_get_expression (&s7_inst.reloc.exp, &str) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL) { return; } @@ -5055,8 +5055,8 @@ s7_do_branch (char *str) static void s7_do16_branch (char *str) { - if ((s7_my_get_expression (&s7_inst.reloc.exp, &str) == (int) s7_FAIL - || s7_end_of_line (str) == (int) s7_FAIL)) + if ((s7_my_get_expression (&s7_inst.reloc.exp, &str) == s7_FAIL + || s7_end_of_line (str) == s7_FAIL)) { ; } @@ -5130,14 +5130,13 @@ static valueT s7_md_chars_to_number (char *buf, int n) { valueT result = 0; - unsigned char *where = (unsigned char *) buf; if (target_big_endian) { while (n--) { result <<= 8; - result |= (*where++ & 255); + result |= (*buf++ & 255); } } else @@ -5145,7 +5144,7 @@ s7_md_chars_to_number (char *buf, int n) while (n--) { result <<= 8; - result |= (where[n] & 255); + result |= (buf[n] & 255); } } @@ -5252,7 +5251,7 @@ s7_b32_relax_to_b16 (fragS * fragp) if (s == NULL) frag_addr = 0; else - symbol_address = (addressT) symbol_get_frag (s)->fr_address; + symbol_address = symbol_get_frag (s)->fr_address; value = s7_md_chars_to_number (fragp->fr_literal, s7_INSN_SIZE); @@ -5391,7 +5390,7 @@ s7_s_change_sec (int sec) switch (sec) { case 'r': - seg = subseg_new (s7_RDATA_SECTION_NAME, (subsegT) get_absolute_expression ()); + seg = subseg_new (s7_RDATA_SECTION_NAME, get_absolute_expression ()); bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_READONLY | SEC_RELOC | SEC_DATA)); if (strcmp (TARGET_OS, "elf") != 0) @@ -5399,7 +5398,7 @@ s7_s_change_sec (int sec) demand_empty_rest_of_line (); break; case 's': - seg = subseg_new (".sdata", (subsegT) get_absolute_expression ()); + seg = subseg_new (".sdata", get_absolute_expression ()); bfd_set_section_flags (seg, (SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_DATA | SEC_SMALL_DATA)); if (strcmp (TARGET_OS, "elf") != 0) @@ -5441,7 +5440,7 @@ s7_get_symbol (void) symbolS *p; c = get_symbol_name (&name); - p = (symbolS *) symbol_find_or_make (name); + p = symbol_find_or_make (name); (void) restore_line_pointer (c); return p; } @@ -5655,13 +5654,13 @@ s7_s_score_end (int x ATTRIBUTE_UNUSED) exp.X_add_number = 0; emit_expr (&exp, 4); fragp = frag_more (7 * 4); - s7_number_to_chars (fragp, (valueT) s7_cur_proc_ptr->reg_mask, 4); - s7_number_to_chars (fragp + 4, (valueT) s7_cur_proc_ptr->reg_offset, 4); - s7_number_to_chars (fragp + 8, (valueT) s7_cur_proc_ptr->fpreg_mask, 4); - s7_number_to_chars (fragp + 12, (valueT) s7_cur_proc_ptr->leaf, 4); - s7_number_to_chars (fragp + 16, (valueT) s7_cur_proc_ptr->frame_offset, 4); - s7_number_to_chars (fragp + 20, (valueT) s7_cur_proc_ptr->frame_reg, 4); - s7_number_to_chars (fragp + 24, (valueT) s7_cur_proc_ptr->pc_reg, 4); + s7_number_to_chars (fragp, s7_cur_proc_ptr->reg_mask, 4); + s7_number_to_chars (fragp + 4, s7_cur_proc_ptr->reg_offset, 4); + s7_number_to_chars (fragp + 8, s7_cur_proc_ptr->fpreg_mask, 4); + s7_number_to_chars (fragp + 12, s7_cur_proc_ptr->leaf, 4); + s7_number_to_chars (fragp + 16, s7_cur_proc_ptr->frame_offset, 4); + s7_number_to_chars (fragp + 20, s7_cur_proc_ptr->frame_reg, 4); + s7_number_to_chars (fragp + 24, s7_cur_proc_ptr->pc_reg, 4); subseg_set (saved_seg, saved_subseg); } @@ -5679,7 +5678,7 @@ s7_s_score_set (int x ATTRIBUTE_UNUSED) while (!is_end_of_stmt (*input_line_pointer)) { - name[i] = (char) * input_line_pointer; + name[i] = *input_line_pointer; i++; ++input_line_pointer; } @@ -5747,21 +5746,21 @@ s7_s_score_cpload (int ignore ATTRIBUTE_UNUSED) return; } - if ((reg = s7_reg_required_here (&input_line_pointer, -1, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) + if ((reg = s7_reg_required_here (&input_line_pointer, -1, s7_REG_TYPE_SCORE)) == s7_FAIL) return; demand_empty_rest_of_line (); sprintf (insn_str, "ld_i32hi r%d, %s", s7_GP, GP_DISP_LABEL); - if (s7_append_insn (insn_str, true) == (int) s7_FAIL) + if (s7_append_insn (insn_str, true) == s7_FAIL) return; sprintf (insn_str, "ld_i32lo r%d, %s", s7_GP, GP_DISP_LABEL); - if (s7_append_insn (insn_str, true) == (int) s7_FAIL) + if (s7_append_insn (insn_str, true) == s7_FAIL) return; sprintf (insn_str, "add r%d, r%d, r%d", s7_GP, s7_GP, reg); - if (s7_append_insn (insn_str, true) == (int) s7_FAIL) + if (s7_append_insn (insn_str, true) == s7_FAIL) return; } @@ -5783,8 +5782,8 @@ s7_s_score_cprestore (int ignore ATTRIBUTE_UNUSED) return; } - if ((reg = s7_reg_required_here (&input_line_pointer, -1, s7_REG_TYPE_SCORE)) == (int) s7_FAIL - || s7_skip_past_comma (&input_line_pointer) == (int) s7_FAIL) + if ((reg = s7_reg_required_here (&input_line_pointer, -1, s7_REG_TYPE_SCORE)) == s7_FAIL + || s7_skip_past_comma (&input_line_pointer) == s7_FAIL) { return; } @@ -5794,7 +5793,7 @@ s7_s_score_cprestore (int ignore ATTRIBUTE_UNUSED) if (cprestore_offset <= 0x3fff) { sprintf (insn_str, "sw r%d, [r%d, %d]", s7_GP, reg, cprestore_offset); - if (s7_append_insn (insn_str, true) == (int) s7_FAIL) + if (s7_append_insn (insn_str, true) == s7_FAIL) return; } else @@ -5805,15 +5804,15 @@ s7_s_score_cprestore (int ignore ATTRIBUTE_UNUSED) s7_nor1 = 0; sprintf (insn_str, "li r1, %d", cprestore_offset); - if (s7_append_insn (insn_str, true) == (int) s7_FAIL) + if (s7_append_insn (insn_str, true) == s7_FAIL) return; sprintf (insn_str, "add r1, r1, r%d", reg); - if (s7_append_insn (insn_str, true) == (int) s7_FAIL) + if (s7_append_insn (insn_str, true) == s7_FAIL) return; sprintf (insn_str, "sw r%d, [r1]", s7_GP); - if (s7_append_insn (insn_str, true) == (int) s7_FAIL) + if (s7_append_insn (insn_str, true) == s7_FAIL) return; s7_nor1 = r1_bak; @@ -5844,7 +5843,7 @@ s7_s_score_gpword (int ignore ATTRIBUTE_UNUSED) ignore_rest_of_line (); } p = frag_more (4); - s7_number_to_chars (p, (valueT) 0, 4); + s7_number_to_chars (p, 0, 4); fix_new_exp (frag_now, p - frag_now->fr_literal, 4, &ex, false, BFD_RELOC_GPREL32); demand_empty_rest_of_line (); } @@ -5865,7 +5864,7 @@ s7_s_score_cpadd (int ignore ATTRIBUTE_UNUSED) return; } - if ((reg = s7_reg_required_here (&input_line_pointer, -1, s7_REG_TYPE_SCORE)) == (int) s7_FAIL) + if ((reg = s7_reg_required_here (&input_line_pointer, -1, s7_REG_TYPE_SCORE)) == s7_FAIL) { return; } @@ -5873,7 +5872,7 @@ s7_s_score_cpadd (int ignore ATTRIBUTE_UNUSED) /* Add $gp to the register named as an argument. */ sprintf (insn_str, "add r%d, r%d, r%d", reg, reg, s7_GP); - if (s7_append_insn (insn_str, true) == (int) s7_FAIL) + if (s7_append_insn (insn_str, true) == s7_FAIL) return; } @@ -6036,7 +6035,7 @@ s7_s_score_lcomm (int bytes_p) symbol_get_frag (symbolP)->fr_symbol = NULL; symbol_set_frag (symbolP, frag_now); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, (offsetT) temp, NULL); + pfrag = frag_var (rs_org, 1, 1, 0, symbolP, temp, NULL); *pfrag = 0; @@ -6081,7 +6080,7 @@ s7_begin (void) s7_build_dependency_insn_hsh (); - for (i = (int) REG_TYPE_FIRST; i < (int) s7_REG_TYPE_MAX; i++) + for (i = REG_TYPE_FIRST; i < s7_REG_TYPE_MAX; i++) s7_build_reg_hsh (s7_all_reg_maps + i); /* Initialize dependency vector. */ @@ -6090,7 +6089,7 @@ s7_begin (void) bfd_set_arch_mach (stdoutput, TARGET_ARCH, 0); seg = now_seg; subseg = now_subseg; - s7_pdr_seg = subseg_new (".pdr", (subsegT) 0); + s7_pdr_seg = subseg_new (".pdr", 0); bfd_set_section_flags (s7_pdr_seg, SEC_READONLY | SEC_RELOC | SEC_DEBUGGING); bfd_set_section_alignment (s7_pdr_seg, 2); subseg_set (seg, subseg); @@ -6184,19 +6183,19 @@ s7_atof (int type, char *litP, int *sizeP) if (target_big_endian) { for (i = 0; i < prec; i++) - { - s7_number_to_chars (litP, (valueT) words[i], 2); - litP += 2; - } + { + s7_number_to_chars (litP, words[i], 2); + litP += 2; + } } else { for (i = 0; i < prec; i += 2) - { - s7_number_to_chars (litP, (valueT) words[i + 1], 2); - s7_number_to_chars (litP + 2, (valueT) words[i], 2); - litP += 4; - } + { + s7_number_to_chars (litP, words[i + 1], 2); + s7_number_to_chars (litP + 2, words[i], 2); + litP += 4; + } } return 0; diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c index c37306f..5653583 100644 --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -445,7 +445,7 @@ sh_elf_cons (int nbytes) do { expression (&exp); - emit_expr (&exp, (unsigned int) nbytes); + emit_expr (&exp, nbytes); } while (*input_line_pointer++ == ','); @@ -605,7 +605,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) if (l1 == '1') { if (src[2] >= '0' && src[2] <= '5' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_REG_N; *reg = 10 + src[2] - '0'; @@ -613,26 +613,26 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } } if (l1 >= '0' && l1 <= '9' - && ! IDENT_CHAR ((unsigned char) src[2])) + && ! IDENT_CHAR (src[2])) { *mode = A_REG_N; *reg = (l1 - '0'); return 2; } if (l1 >= '0' && l1 <= '7' && strncasecmp (&src[2], "_bank", 5) == 0 - && ! IDENT_CHAR ((unsigned char) src[7])) + && ! IDENT_CHAR (src[7])) { *mode = A_REG_B; *reg = (l1 - '0'); return 7; } - if (l1 == 'e' && ! IDENT_CHAR ((unsigned char) src[2])) + if (l1 == 'e' && ! IDENT_CHAR (src[2])) { *mode = A_RE; return 2; } - if (l1 == 's' && ! IDENT_CHAR ((unsigned char) src[2])) + if (l1 == 's' && ! IDENT_CHAR (src[2])) { *mode = A_RS; return 2; @@ -643,13 +643,13 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) { if (l1 == '0') { - if (! IDENT_CHAR ((unsigned char) src[2])) + if (! IDENT_CHAR (src[2])) { *mode = DSP_REG_N; *reg = A_A0_NUM; return 2; } - if (TOLOWER (src[2]) == 'g' && ! IDENT_CHAR ((unsigned char) src[3])) + if (TOLOWER (src[2]) == 'g' && ! IDENT_CHAR (src[3])) { *mode = DSP_REG_N; *reg = A_A0G_NUM; @@ -658,13 +658,13 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } if (l1 == '1') { - if (! IDENT_CHAR ((unsigned char) src[2])) + if (! IDENT_CHAR (src[2])) { *mode = DSP_REG_N; *reg = A_A1_NUM; return 2; } - if (TOLOWER (src[2]) == 'g' && ! IDENT_CHAR ((unsigned char) src[3])) + if (TOLOWER (src[2]) == 'g' && ! IDENT_CHAR (src[3])) { *mode = DSP_REG_N; *reg = A_A1G_NUM; @@ -673,21 +673,21 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } if (l1 == 'x' && src[2] >= '0' && src[2] <= '1' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_REG_N; *reg = 4 + (l1 - '0'); return 3; } if (l1 == 'y' && src[2] >= '0' && src[2] <= '1' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_REG_N; *reg = 6 + (l1 - '0'); return 3; } if (l1 == 's' && src[2] >= '0' && src[2] <= '3' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { int n = l1 - '0'; @@ -697,7 +697,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } } - if (l0 == 'i' && l1 && ! IDENT_CHAR ((unsigned char) src[2])) + if (l0 == 'i' && l1 && ! IDENT_CHAR (src[2])) { if (l1 == 's') { @@ -720,7 +720,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } if (l0 == 'x' && l1 >= '0' && l1 <= '1' - && ! IDENT_CHAR ((unsigned char) src[2])) + && ! IDENT_CHAR (src[2])) { *mode = DSP_REG_N; *reg = A_X0_NUM + l1 - '0'; @@ -728,7 +728,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } if (l0 == 'y' && l1 >= '0' && l1 <= '1' - && ! IDENT_CHAR ((unsigned char) src[2])) + && ! IDENT_CHAR (src[2])) { *mode = DSP_REG_N; *reg = A_Y0_NUM + l1 - '0'; @@ -736,7 +736,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } if (l0 == 'm' && l1 >= '0' && l1 <= '1' - && ! IDENT_CHAR ((unsigned char) src[2])) + && ! IDENT_CHAR (src[2])) { *mode = DSP_REG_N; *reg = l1 == '0' ? A_M0_NUM : A_M1_NUM; @@ -745,59 +745,59 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) if (l0 == 's' && l1 == 's' - && TOLOWER (src[2]) == 'r' && ! IDENT_CHAR ((unsigned char) src[3])) + && TOLOWER (src[2]) == 'r' && ! IDENT_CHAR (src[3])) { *mode = A_SSR; return 3; } if (l0 == 's' && l1 == 'p' && TOLOWER (src[2]) == 'c' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_SPC; return 3; } if (l0 == 's' && l1 == 'g' && TOLOWER (src[2]) == 'r' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_SGR; return 3; } if (l0 == 'd' && l1 == 's' && TOLOWER (src[2]) == 'r' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_DSR; return 3; } if (l0 == 'd' && l1 == 'b' && TOLOWER (src[2]) == 'r' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_DBR; return 3; } - if (l0 == 's' && l1 == 'r' && ! IDENT_CHAR ((unsigned char) src[2])) + if (l0 == 's' && l1 == 'r' && ! IDENT_CHAR (src[2])) { *mode = A_SR; return 2; } - if (l0 == 's' && l1 == 'p' && ! IDENT_CHAR ((unsigned char) src[2])) + if (l0 == 's' && l1 == 'p' && ! IDENT_CHAR (src[2])) { *mode = A_REG_N; *reg = 15; return 2; } - if (l0 == 'p' && l1 == 'r' && ! IDENT_CHAR ((unsigned char) src[2])) + if (l0 == 'p' && l1 == 'r' && ! IDENT_CHAR (src[2])) { *mode = A_PR; return 2; } - if (l0 == 'p' && l1 == 'c' && ! IDENT_CHAR ((unsigned char) src[2])) + if (l0 == 'p' && l1 == 'c' && ! IDENT_CHAR (src[2])) { /* Don't use A_DISP_PC here - that would accept stuff like 'mova pc,r0' and use an uninitialized immediate. */ @@ -805,26 +805,26 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) return 2; } if (l0 == 'g' && l1 == 'b' && TOLOWER (src[2]) == 'r' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_GBR; return 3; } if (l0 == 'v' && l1 == 'b' && TOLOWER (src[2]) == 'r' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_VBR; return 3; } if (l0 == 't' && l1 == 'b' && TOLOWER (src[2]) == 'r' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_TBR; return 3; } if (l0 == 'm' && l1 == 'a' && TOLOWER (src[2]) == 'c' - && ! IDENT_CHAR ((unsigned char) src[4])) + && ! IDENT_CHAR (src[4])) { if (TOLOWER (src[3]) == 'l') { @@ -838,7 +838,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } } if (l0 == 'm' && l1 == 'o' && TOLOWER (src[2]) == 'd' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = A_MOD; return 3; @@ -848,7 +848,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) if (src[2] == '1') { if (src[3] >= '0' && src[3] <= '5' - && ! IDENT_CHAR ((unsigned char) src[4])) + && ! IDENT_CHAR (src[4])) { *mode = F_REG_N; *reg = 10 + src[3] - '0'; @@ -856,7 +856,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } } if (src[2] >= '0' && src[2] <= '9' - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = F_REG_N; *reg = (src[2] - '0'); @@ -868,7 +868,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) if (src[2] == '1') { if (src[3] >= '0' && src[3] <= '4' && ! ((src[3] - '0') & 1) - && ! IDENT_CHAR ((unsigned char) src[4])) + && ! IDENT_CHAR (src[4])) { *mode = D_REG_N; *reg = 10 + src[3] - '0'; @@ -876,7 +876,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } } if (src[2] >= '0' && src[2] <= '8' && ! ((src[2] - '0') & 1) - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = D_REG_N; *reg = (src[2] - '0'); @@ -888,7 +888,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) if (src[2] == '1') { if (src[3] >= '0' && src[3] <= '4' && ! ((src[3] - '0') & 1) - && ! IDENT_CHAR ((unsigned char) src[4])) + && ! IDENT_CHAR (src[4])) { *mode = X_REG_N; *reg = 11 + src[3] - '0'; @@ -896,7 +896,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } } if (src[2] >= '0' && src[2] <= '8' && ! ((src[2] - '0') & 1) - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = X_REG_N; *reg = (src[2] - '0') + 1; @@ -905,14 +905,14 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } if (l0 == 'f' && l1 == 'v') { - if (src[2] == '1'&& src[3] == '2' && ! IDENT_CHAR ((unsigned char) src[4])) + if (src[2] == '1'&& src[3] == '2' && ! IDENT_CHAR (src[4])) { *mode = V_REG_N; *reg = 12; return 4; } if ((src[2] == '0' || src[2] == '4' || src[2] == '8') - && ! IDENT_CHAR ((unsigned char) src[3])) + && ! IDENT_CHAR (src[3])) { *mode = V_REG_N; *reg = (src[2] - '0'); @@ -921,7 +921,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) } if (l0 == 'f' && l1 == 'p' && TOLOWER (src[2]) == 'u' && TOLOWER (src[3]) == 'l' - && ! IDENT_CHAR ((unsigned char) src[4])) + && ! IDENT_CHAR (src[4])) { *mode = FPUL_N; return 4; @@ -929,7 +929,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) if (l0 == 'f' && l1 == 'p' && TOLOWER (src[2]) == 's' && TOLOWER (src[3]) == 'c' - && TOLOWER (src[4]) == 'r' && ! IDENT_CHAR ((unsigned char) src[5])) + && TOLOWER (src[4]) == 'r' && ! IDENT_CHAR (src[5])) { *mode = FPSCR_N; return 5; @@ -937,7 +937,7 @@ parse_reg_without_prefix (char *src, sh_arg_type *mode, int *reg) if (l0 == 'x' && l1 == 'm' && TOLOWER (src[2]) == 't' && TOLOWER (src[3]) == 'r' - && TOLOWER (src[4]) == 'x' && ! IDENT_CHAR ((unsigned char) src[5])) + && TOLOWER (src[4]) == 'x' && ! IDENT_CHAR (src[5])) { *mode = XMTRX_M4; return 5; @@ -2871,7 +2871,7 @@ struct sh_count_relocs static void sh_count_relocs (bfd *abfd ATTRIBUTE_UNUSED, segT sec, void *data) { - struct sh_count_relocs *info = (struct sh_count_relocs *) data; + struct sh_count_relocs *info = data; segment_info_type *seginfo; symbolS *sym; fixS *fix; @@ -3206,8 +3206,7 @@ sh_cons_align (int nbytes) return; } - frag_var (rs_align_test, 1, 1, (relax_substateT) 0, - (symbolS *) NULL, (offsetT) nalign, (char *) NULL); + frag_var (rs_align_test, 1, 1, 0, NULL, nalign, NULL); record_alignment (now_seg, nalign); } @@ -3704,8 +3703,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) if (val >= 0) val >>= shift; else - val = ((val >> shift) - | ((long) -1 & ~ ((long) -1 >> shift))); + val = (val >> shift) | (-1L & ~ (-1L >> shift)); } /* Extend sign for 64-bit host. */ @@ -3817,7 +3815,7 @@ long md_pcrel_from_section (fixS *fixP, segT sec) { if (! sh_local_pcrel (fixP) - && fixP->fx_addsy != (symbolS *) NULL + && fixP->fx_addsy != NULL && (generic_force_reloc (fixP) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) { diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c index 6db8481..0dd9205 100644 --- a/gas/config/tc-sparc.c +++ b/gas/config/tc-sparc.c @@ -805,8 +805,8 @@ struct priv_reg_entry v9a_asr_table[] = static int cmp_reg_entry (const void *parg, const void *qarg) { - const struct priv_reg_entry *p = (const struct priv_reg_entry *) parg; - const struct priv_reg_entry *q = (const struct priv_reg_entry *) qarg; + const struct priv_reg_entry *p = parg; + const struct priv_reg_entry *q = qarg; if (p->name == q->name) return 0; @@ -921,8 +921,8 @@ struct perc_entry perc_table[NUM_PERC_ENTRIES]; static int cmp_perc_entry (const void *parg, const void *qarg) { - const struct perc_entry *p = (const struct perc_entry *) parg; - const struct perc_entry *q = (const struct perc_entry *) qarg; + const struct perc_entry *p = parg; + const struct perc_entry *q = qarg; if (p->name == q->name) return 0; @@ -1254,7 +1254,7 @@ synthetize_setuw (const struct sparc_opcode *insn) && (the_insn.exp.X_add_number < -(offsetT) U0x80000000 || the_insn.exp.X_add_number > (offsetT) U0xffffffff)) as_warn (_("set: number not in -2147483648..4294967295 range")); - the_insn.exp.X_add_number = (int) the_insn.exp.X_add_number; + the_insn.exp.X_add_number = (int32_t) the_insn.exp.X_add_number; } } @@ -3402,9 +3402,9 @@ output_insn (const struct sparc_opcode *insn, struct sparc_it *theinsn) /* Put out the opcode. */ if (INSN_BIG_ENDIAN) - number_to_chars_bigendian (toP, (valueT) theinsn->opcode, 4); + number_to_chars_bigendian (toP, theinsn->opcode, 4); else - number_to_chars_littleendian (toP, (valueT) theinsn->opcode, 4); + number_to_chars_littleendian (toP, theinsn->opcode, 4); /* Put out the symbol-dependent stuff. */ if (theinsn->reloc != BFD_RELOC_NONE) @@ -3544,9 +3544,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT segment ATTRIBUTE_UNUSED) /* It's a relocation against an instruction. */ if (INSN_BIG_ENDIAN) - insn = bfd_getb32 ((unsigned char *) buf); + insn = bfd_getb32 (buf); else - insn = bfd_getl32 ((unsigned char *) buf); + insn = bfd_getl32 (buf); switch (fixP->fx_r_type) { @@ -3588,9 +3588,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT segment ATTRIBUTE_UNUSED) then we can optimize if the call destination is near by changing the call into a branch always. */ if (INSN_BIG_ENDIAN) - delay = bfd_getb32 ((unsigned char *) buf + 4); + delay = bfd_getb32 (buf + 4); else - delay = bfd_getl32 ((unsigned char *) buf + 4); + delay = bfd_getl32 (buf + 4); if ((insn & OP (~0)) != OP (1) || (delay & OP (~0)) != OP (2)) break; if ((delay & OP3 (~0)) != OP3 (0x3d) /* Restore. */ @@ -3624,9 +3624,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT segment ATTRIBUTE_UNUSED) int reg; if (INSN_BIG_ENDIAN) - setter = bfd_getb32 ((unsigned char *) buf - 4); + setter = bfd_getb32 (buf - 4); else - setter = bfd_getl32 ((unsigned char *) buf - 4); + setter = bfd_getl32 (buf - 4); if ((setter & (0xffffffff ^ RD (~0))) != (INSN_OR | RS1 (O7) | RS2 (G0))) break; @@ -3643,9 +3643,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT segment ATTRIBUTE_UNUSED) break; if (INSN_BIG_ENDIAN) - bfd_putb32 (INSN_NOP, (unsigned char *) buf + 4); + bfd_putb32 (INSN_NOP, buf + 4); else - bfd_putl32 (INSN_NOP, (unsigned char *) buf + 4); + bfd_putl32 (INSN_NOP, buf + 4); } } break; @@ -3820,9 +3820,9 @@ md_apply_fix (fixS *fixP, valueT *valP, segT segment ATTRIBUTE_UNUSED) } if (INSN_BIG_ENDIAN) - bfd_putb32 (insn, (unsigned char *) buf); + bfd_putb32 (insn, buf); else - bfd_putl32 (insn, (unsigned char *) buf); + bfd_putl32 (insn, buf); } /* Are we finished with this relocation now? */ @@ -4219,8 +4219,7 @@ s_reserve (int ignore ATTRIBUTE_UNUSED) symbol_get_frag (symbolP)->fr_symbol = NULL; symbol_set_frag (symbolP, frag_now); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, - (offsetT) size, (char *) 0); + pfrag = frag_var (rs_org, 1, 1, 0, symbolP, size, NULL); *pfrag = 0; S_SET_SEGMENT (symbolP, bss_section); @@ -4336,8 +4335,7 @@ s_common (int ignore ATTRIBUTE_UNUSED) if (S_GET_SEGMENT (symbolP) == bss_section) symbol_get_frag (symbolP)->fr_symbol = 0; symbol_set_frag (symbolP, frag_now); - p = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, - (offsetT) size, (char *) 0); + p = frag_var (rs_org, 1, 1, 0, symbolP, size, NULL); *p = 0; S_SET_SEGMENT (symbolP, bss_section); S_CLEAR_EXTERNAL (symbolP); @@ -4347,7 +4345,7 @@ s_common (int ignore ATTRIBUTE_UNUSED) else { allocate_common: - S_SET_VALUE (symbolP, (valueT) size); + S_SET_VALUE (symbolP, size); S_SET_ALIGN (symbolP, temp); S_SET_SIZE (symbolP, size); S_SET_EXTERNAL (symbolP); @@ -4553,7 +4551,7 @@ s_register (int ignore ATTRIBUTE_UNUSED) if (! (flags & (BSF_GLOBAL|BSF_LOCAL|BSF_WEAK))) flags |= BSF_GLOBAL; symbol_get_bfdsym (globals[reg])->flags = flags; - S_SET_VALUE (globals[reg], (valueT) reg); + S_SET_VALUE (globals[reg], reg); S_SET_ALIGN (globals[reg], reg); S_SET_SIZE (globals[reg], 0); /* Although we actually want undefined_section here, @@ -4635,8 +4633,7 @@ sparc_cons_align (int nbytes) return; } - frag_var (rs_align_test, 1, 1, (relax_substateT) 0, - (symbolS *) NULL, (offsetT) nalign, (char *) NULL); + frag_var (rs_align_test, 1, 1, 0, NULL, nalign, NULL); record_alignment (now_seg, nalign); } @@ -4937,7 +4934,7 @@ cons_fix_new_sparc (fragS *frag, } } - fix_new_exp (frag, where, (int) nbytes, exp, 0, r); + fix_new_exp (frag, where, nbytes, exp, 0, r); } void diff --git a/gas/config/tc-spu.c b/gas/config/tc-spu.c index 1c8f7c5..5da4e00 100644 --- a/gas/config/tc-spu.c +++ b/gas/config/tc-spu.c @@ -298,7 +298,7 @@ md_assemble (char *op) insn.reloc[i] = BFD_RELOC_NONE; } insn.opcode = format->opcode; - insn.tag = (enum spu_insns) (format - spu_opcodes); + insn.tag = format - spu_opcodes; syntax_error_arg = 0; syntax_error_param = 0; @@ -569,7 +569,7 @@ get_reg (const char *param, struct spu_insn *insn, int arg, int accept_expr) char *save_ptr; expressionS ex; save_ptr = input_line_pointer; - input_line_pointer = (char *)param; + input_line_pointer = (char *) param; expression (&ex); param = input_line_pointer; input_line_pointer = save_ptr; @@ -721,16 +721,11 @@ md_create_short_jump (char *ptr, fragS *frag, symbolS *to_symbol) { - ptr[0] = (char) 0xc0; + ptr[0] = 0xc0; ptr[1] = 0x00; ptr[2] = 0x00; ptr[3] = 0x00; - fix_new (frag, - ptr - frag->fr_literal, - 4, - to_symbol, - (offsetT) 0, - 0, + fix_new (frag, ptr - frag->fr_literal, 4, to_symbol, 0, 0, BFD_RELOC_SPU_PCREL16); } @@ -743,16 +738,11 @@ md_create_long_jump (char *ptr, fragS *frag, symbolS *to_symbol) { - ptr[0] = (char) 0xc0; + ptr[0] = 0xc0; ptr[1] = 0x00; ptr[2] = 0x00; ptr[3] = 0x00; - fix_new (frag, - ptr - frag->fr_literal, - 4, - to_symbol, - (offsetT) 0, - 0, + fix_new (frag, ptr - frag->fr_literal, 4, to_symbol, 0, 0, BFD_RELOC_SPU_PCREL16); } #endif @@ -872,7 +862,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixp) *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixp->fx_file, fixp->fx_line, _("reloc %d not supported by object file format"), @@ -950,7 +940,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) valueT val = *valP; char *place = fixP->fx_where + fixP->fx_frag->fr_literal; - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) { /* We can't actually support subtracting a symbol. */ as_bad_subtract (fixP); diff --git a/gas/config/tc-tic30.c b/gas/config/tc-tic30.c index 87cf09a..2c80f97 100644 --- a/gas/config/tc-tic30.c +++ b/gas/config/tc-tic30.c @@ -598,7 +598,7 @@ tic30_operand (char *token) current_op->immediate.s_number = current_op->immediate.imm_expr.X_add_number; current_op->immediate.u_number - = (unsigned int) current_op->immediate.imm_expr.X_add_number; + = current_op->immediate.imm_expr.X_add_number; current_op->immediate.resolved = 1; } } @@ -610,8 +610,8 @@ tic30_operand (char *token) current_op->immediate.decimal_found = 1; current_op->immediate.label = xstrdup (token); current_op->immediate.f_number = (float) atof (token); - current_op->immediate.s_number = (int) atoi (token); - current_op->immediate.u_number = (unsigned int) atoi (token); + current_op->immediate.s_number = atoi (token); + current_op->immediate.u_number = atoi (token); current_op->immediate.resolved = 1; } current_op->op_type = Disp | Abs24 | Imm16 | Imm24; @@ -1061,7 +1061,7 @@ tic30_parallel_insn (char *token) char *p; p = frag_more (INSN_SIZE); - md_number_to_chars (p, (valueT) p_insn.opcode, INSN_SIZE); + md_number_to_chars (p, p_insn.opcode, INSN_SIZE); } { @@ -1151,7 +1151,7 @@ symbolS * md_undefined_symbol (char *name ATTRIBUTE_UNUSED) { debug ("In md_undefined_symbol()\n"); - return (symbolS *) 0; + return NULL; } valueT @@ -1279,7 +1279,7 @@ md_atof (int what_statement_type, if (mant == 0) { mant |= 0x00800000; - exp = (long) exp - 0x01000000; + exp = exp - 0x01000000; } } tmsfloat = exp | mant; @@ -1672,7 +1672,7 @@ md_assemble (char *line) insn.opcode |= insn.addressing_mode; p = frag_more (INSN_SIZE); - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else { @@ -1723,12 +1723,12 @@ md_assemble (char *line) into instruction word, and output. */ insn.opcode |= (insn.operand_type[am_insn]->direct.address & 0x0000FFFF); - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else { /* Unresolved direct addressing mode instruction. */ - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); fix_new_exp (frag_now, p + 2 - (frag_now->fr_literal), 2, & insn.operand_type[am_insn]->direct.direct_expr, 0, 0); @@ -1748,7 +1748,7 @@ md_assemble (char *line) { case Imm_Float: debug ("Floating point first operand\n"); - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); keeploc = input_line_pointer; input_line_pointer = @@ -1771,7 +1771,7 @@ md_assemble (char *line) as_warn (_("only lower 16-bits of first operand are used")); insn.opcode |= (insn.operand_type[0]->immediate.u_number & 0x0000FFFFL); - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); break; case Imm_SInt: @@ -1788,7 +1788,7 @@ md_assemble (char *line) } insn.opcode |= (insn.operand_type[0]->immediate.s_number & 0x0000FFFFL); - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); break; } } @@ -1797,7 +1797,7 @@ md_assemble (char *line) /* Unresolved immediate label. */ if (insn.operands > 1) insn.opcode |= (insn.operand_type[1]->reg.opcode << 16); - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); fix_new_exp (frag_now, p + 2 - (frag_now->fr_literal), 2, & insn.operand_type[0]->immediate.imm_expr, 0, 0); @@ -1814,7 +1814,7 @@ md_assemble (char *line) { insn.opcode |= (insn.operand_type[0]->reg.opcode); insn.opcode |= PC_Register; - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else { @@ -1823,11 +1823,11 @@ md_assemble (char *line) { insn.opcode |= (insn.operand_type[0]->immediate.s_number & 0x0000FFFF); - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else { - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); fix_new_exp (frag_now, p + 2 - (frag_now->fr_literal), 2, & insn.operand_type[0]->immediate.imm_expr, 1, 0); @@ -1842,7 +1842,7 @@ md_assemble (char *line) { insn.opcode |= (insn.operand_type[1]->reg.opcode); insn.opcode |= PC_Register; - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else if (insn.operand_type[1]->immediate.resolved == 1) { @@ -1859,12 +1859,12 @@ md_assemble (char *line) } insn.opcode |= (insn.operand_type[1]->immediate.s_number); insn.opcode |= PC_Relative; - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else { insn.opcode |= PC_Relative; - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); fix_new_exp (frag_now, p + 2 - frag_now->fr_literal, 2, & insn.operand_type[1]->immediate.imm_expr, 1, 0); @@ -1882,14 +1882,14 @@ md_assemble (char *line) as_bad (_("interrupt vector for trap instruction out of range")); return; } - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else if (insn.tm->opcode_modifier == StackOp || insn.tm->opcode_modifier == Rotate) { /* Push, Pop and Rotate instructions. */ insn.opcode |= (insn.operand_type[0]->reg.opcode << 16); - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else if ((insn.tm->operand_types[0] & (Abs24 | Direct)) == (Abs24 | Direct)) @@ -1903,13 +1903,13 @@ md_assemble (char *line) /* Direct addressing uses lower 8 bits of direct address. */ insn.opcode |= (insn.operand_type[0]->direct.address & 0x00FF0000) >> 16; - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else { fixS *fix; - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); fix = fix_new_exp (frag_now, p + 3 - (frag_now->fr_literal), 1, &insn.operand_type[0]->direct.direct_expr, 0, 0); /* Ensure that the assembler doesn't complain @@ -1929,12 +1929,12 @@ md_assemble (char *line) } insn.opcode |= ((insn.operand_type[0]->immediate.u_number & 0x00FF0000) >> 16); - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else { fixS *fix; - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); fix = fix_new_exp (frag_now, p + 3 - (frag_now->fr_literal), 1, &insn.operand_type[0]->immediate.imm_expr, 0, 0); @@ -1951,22 +1951,22 @@ md_assemble (char *line) as_warn (_("first operand is too large for a 24-bit displacement")); insn.opcode |= (insn.operand_type[0]->immediate.u_number & 0x00FFFFFF); - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } else { - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); fix_new_exp (frag_now, p + 1 - (frag_now->fr_literal), 3, & insn.operand_type[0]->immediate.imm_expr, 0, 0); } } else if (insn.tm->operand_types[0] & NotReq) /* Check for NOP instruction without arguments. */ - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); else if (insn.tm->operands == 0) /* Check for instructions without operands. */ - md_number_to_chars (p, (valueT) insn.opcode, INSN_SIZE); + md_number_to_chars (p, insn.opcode, INSN_SIZE); } debug ("Addressing mode: %08X\n", insn.addressing_mode); { diff --git a/gas/config/tc-tic4x.c b/gas/config/tc-tic4x.c index 167a94f..3a3123c 100644 --- a/gas/config/tc-tic4x.c +++ b/gas/config/tc-tic4x.c @@ -695,9 +695,7 @@ tic4x_seg_alloc (char *name ATTRIBUTE_UNUSED, { char *p; - p = frag_var (rs_fill, 1, 1, (relax_substateT) 0, - (symbolS *) symbolP, - size * OCTETS_PER_BYTE, (char *) 0); + p = frag_var (rs_fill, 1, 1, 0, symbolP, size * OCTETS_PER_BYTE, NULL); *p = 0; } } @@ -772,8 +770,7 @@ tic4x_bss (int x ATTRIBUTE_UNUSED) symbol_set_frag (symbolP, frag_now); - p = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, - size * OCTETS_PER_BYTE, (char *) 0); + p = frag_var (rs_org, 1, 1, 0, symbolP, size * OCTETS_PER_BYTE, NULL); *p = 0; /* Fill char. */ S_SET_SEGMENT (symbolP, bss_section); @@ -2584,15 +2581,13 @@ md_atof (int type, char *litP, int *sizeP) for (wordP = words; wordP<(words+prec) ; wordP+=2) { if (wordP < (words + prec - 1)) /* Dump wordP[1] (if we have one). */ - { - md_number_to_chars (litP, (valueT) (wordP[1]), - sizeof (LITTLENUM_TYPE)); - litP += sizeof (LITTLENUM_TYPE); - } + { + md_number_to_chars (litP, wordP[1], sizeof (LITTLENUM_TYPE)); + litP += sizeof (LITTLENUM_TYPE); + } /* Dump wordP[0] */ - md_number_to_chars (litP, (valueT) (wordP[0]), - sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, wordP[0], sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } return NULL; @@ -2819,7 +2814,7 @@ md_undefined_symbol (char *name) char *s = name + 1; int lab = 0; - while (ISDIGIT ((unsigned char) *s)) + while (ISDIGIT (*s)) { lab = lab * 10 + *s - '0'; s++; @@ -3003,7 +2998,7 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UNUSED, fixS *fixP) reloc->address = fixP->fx_frag->fr_address + fixP->fx_where; reloc->address /= OCTETS_PER_BYTE; reloc->howto = bfd_reloc_type_lookup (stdoutput, fixP->fx_r_type); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixP->fx_file, fixP->fx_line, _("Reloc %d not supported by object file format"), diff --git a/gas/config/tc-tic54x.c b/gas/config/tc-tic54x.c index db3def4..515b843 100644 --- a/gas/config/tc-tic54x.c +++ b/gas/config/tc-tic54x.c @@ -478,7 +478,7 @@ tic54x_bss (int x ATTRIBUTE_UNUSED) char c; char *name; char *p; - int words; + offsetT words; segT current_seg; subsegT current_subseg; symbolS *symbolP; @@ -504,7 +504,7 @@ tic54x_bss (int x ATTRIBUTE_UNUSED) words = get_absolute_expression (); if (words < 0) { - as_bad (_(".bss size %d < 0!"), words); + as_bad (_(".bss size %d < 0!"), (int) words); ignore_rest_of_line (); return; } @@ -533,11 +533,10 @@ tic54x_bss (int x ATTRIBUTE_UNUSED) symbolP = symbol_find_or_make (name); if (S_GET_SEGMENT (symbolP) == bss_section) - symbol_get_frag (symbolP)->fr_symbol = (symbolS *) NULL; + symbol_get_frag (symbolP)->fr_symbol = NULL; symbol_set_frag (symbolP, frag_now); - p = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, - (offsetT) (words * OCTETS_PER_BYTE), (char *) 0); + p = frag_var (rs_org, 1, 1, 0, symbolP, words * OCTETS_PER_BYTE, NULL); *p = 0; /* Fill char. */ S_SET_SEGMENT (symbolP, bss_section); @@ -574,11 +573,11 @@ stag_add_field_symbols (struct stag *stag, /* Construct a symbol for every field contained within this structure including fields within structure fields. */ - prefix = concat (path, *path ? "." : "", NULL); + prefix = concat (path, *path ? "." : "", (const char *) NULL); while (field != NULL) { - char *name = concat (prefix, field->name, NULL); + char *name = concat (prefix, field->name, (const char *) NULL); char *freename = name; if (rootsym == NULL) @@ -594,7 +593,8 @@ stag_add_field_symbols (struct stag *stag, { subsym_ent_t *ent = xmalloc (sizeof (*ent)); ent->u.s = concat (S_GET_NAME (rootsym), "+", root_stag_name, - name + strlen (S_GET_NAME (rootsym)), NULL); + name + strlen (S_GET_NAME (rootsym)), + (const char *) NULL); ent->freekey = 1; ent->freeval = 1; ent->isproc = 0; @@ -860,7 +860,7 @@ tic54x_tag (int ignore ATTRIBUTE_UNUSED) static void tic54x_struct_field (int type) { - int size; + unsigned int size; int count = 1; int new_bitfield_offset = 0; int field_align = current_stag->current_bitfield_offset != 0; @@ -964,12 +964,12 @@ tic54x_struct_field (int type) if (current_stag->is_union) { /* Note we treat the element as if it were an array of COUNT. */ - if (current_stag->size < (unsigned) size * count) + if (current_stag->size < size * count) current_stag->size = size * count; } else { - abs_section_offset += (unsigned) size * count; + abs_section_offset += size * count; current_stag->current_bitfield_offset = new_bitfield_offset; } line_label = NULL; @@ -1149,7 +1149,7 @@ tic54x_global (int type) static void free_subsym_ent (void *ent) { - string_tuple_t *tuple = (string_tuple_t *) ent; + string_tuple_t *tuple = ent; subsym_ent_t *val = (void *) tuple->value; if (val->freekey) free ((void *) tuple->key); @@ -1169,7 +1169,7 @@ subsym_htab_create (void) static void free_local_label_ent (void *ent) { - string_tuple_t *tuple = (string_tuple_t *) ent; + string_tuple_t *tuple = ent; free ((void *) tuple->key); free ((void *) tuple->value); free (ent); @@ -1295,10 +1295,8 @@ tic54x_space (int arg) bi->seg = now_seg; bi->type = bes; bi->sym = label; - p = frag_var (rs_machine_dependent, - 65536 * 2, 1, (relax_substateT) 0, - make_expr_symbol (&expn), (offsetT) 0, - (char *) bi); + p = frag_var (rs_machine_dependent, 65536 * 2, 1, 0, + make_expr_symbol (&expn), 0, (char *) bi); if (p) *p = 0; @@ -1362,9 +1360,7 @@ tic54x_space (int arg) } if (!need_pass_2) - p = frag_var (rs_fill, 1, 1, - (relax_substateT) 0, (symbolS *) 0, - (offsetT) octets, (char *) 0); + p = frag_var (rs_fill, 1, 1, 0, NULL, octets, NULL); /* Make note of how many bits of this word we've allocated so far. */ frag_now->tc_frag_data = bit_offset; @@ -1470,9 +1466,7 @@ tic54x_usect (int x ATTRIBUTE_UNUSED) seg_info (seg)->bss = 1; /* Uninitialized data. */ - p = frag_var (rs_fill, 1, 1, - (relax_substateT) 0, (symbolS *) line_label, - size * OCTETS_PER_BYTE, (char *) 0); + p = frag_var (rs_fill, 1, 1, 0, line_label, size * OCTETS_PER_BYTE, NULL); *p = 0; if (blocking_flag) @@ -1808,10 +1802,8 @@ tic54x_field (int ignore ATTRIBUTE_UNUSED) bi->seg = now_seg; bi->type = TYPE_FIELD; bi->value = value; - p = frag_var (rs_machine_dependent, - 4, 1, (relax_substateT) 0, - make_expr_symbol (&size_exp), (offsetT) 0, - (char *) bi); + p = frag_var (rs_machine_dependent, 4, 1, 0, + make_expr_symbol (&size_exp), 0, (char *) bi); goto getout; } else if (bit_offset == 0 || bit_offset + size > 16) @@ -1839,7 +1831,7 @@ tic54x_field (int ignore ATTRIBUTE_UNUSED) /* OR in existing value. */ if (alloc_frag->tc_frag_data) - value |= ((unsigned short) p[1] << 8) | p[0]; + value |= ((uint16_t) p[1] << 8) | p[0]; md_number_to_chars (p, value, 2); alloc_frag->tc_frag_data += size; if (alloc_frag->tc_frag_data == 16) @@ -2379,7 +2371,7 @@ tic54x_mlib (int ignore ATTRIBUTE_UNUSED) /* Write to a temporary file, then use s_include to include it a bit of a hack. */ ftmp = fopen (fname, "w+b"); - fwrite ((void *) buf, size, 1, ftmp); + fwrite (buf, size, 1, ftmp); if (size == 0 || buf[size - 1] != '\n') fwrite ("\n", 1, 1, ftmp); fclose (ftmp); @@ -3945,16 +3937,14 @@ encode_operand (tic54x_insn *insn, enum optype type, struct opstruct *operand) if (strcasecmp (operand->buf, "st0") == 0 || strcasecmp (operand->buf, "st1") == 0) { - insn->opcode[0].word |= - ((unsigned short) (operand->buf[2] - '0')) << 9; + insn->opcode[0].word |= ((uint16_t) (operand->buf[2] - '0')) << 9; return 1; } else if (operand->exp.X_op == O_constant && (operand->exp.X_add_number == 0 || operand->exp.X_add_number == 1)) { - insn->opcode[0].word |= - ((unsigned short) (operand->exp.X_add_number)) << 9; + insn->opcode[0].word |= ((uint16_t) (operand->exp.X_add_number)) << 9; return 1; } as_bad (_("Invalid status register \"%s\""), operand->buf); @@ -4009,7 +3999,7 @@ emit_insn (tic54x_insn *insn) char *p = frag_more (size); if (size == 2) - md_number_to_chars (p, (valueT) insn->opcode[i].word, 2); + md_number_to_chars (p, insn->opcode[i].word, 2); else md_number_to_chars (p, (valueT) insn->opcode[i].word << 16, 4); @@ -5277,7 +5267,7 @@ tic54x_relax_frag (fragS *frag, long stretch ATTRIBUTE_UNUSED) valueT value = bi->value; value <<= available - size; - value |= ((unsigned short) p[1] << 8) | p[0]; + value |= ((uint16_t) p[1] << 8) | p[0]; md_number_to_chars (p, value, 2); if ((prev_frag->tc_frag_data += size) == 16) prev_frag->tc_frag_data = 0; diff --git a/gas/config/tc-tic6x.c b/gas/config/tc-tic6x.c index aeb2239..7862236 100644 --- a/gas/config/tc-tic6x.c +++ b/gas/config/tc-tic6x.c @@ -659,8 +659,7 @@ s_tic6x_scomm (int ignore ATTRIBUTE_UNUSED) symbol_set_frag (symbolP, frag_now); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, size, - (char *) 0); + pfrag = frag_var (rs_org, 1, 1, 0, symbolP, size, NULL); *pfrag = 0; S_SET_SIZE (symbolP, size); S_SET_SEGMENT (symbolP, sbss_section); @@ -669,7 +668,7 @@ s_tic6x_scomm (int ignore ATTRIBUTE_UNUSED) } else { - S_SET_VALUE (symbolP, (valueT) size); + S_SET_VALUE (symbolP, size); S_SET_ALIGN (symbolP, 1 << align2); S_SET_EXTERNAL (symbolP); S_SET_SEGMENT (symbolP, &scom_section); @@ -3084,14 +3083,13 @@ static valueT md_chars_to_number (char *buf, int n) { valueT result = 0; - unsigned char *p = (unsigned char *) buf; if (target_big_endian) { while (n--) { result <<= 8; - result |= (*p++ & 0xff); + result |= (*buf++ & 0xff); } } else @@ -3099,7 +3097,7 @@ md_chars_to_number (char *buf, int n) while (n--) { result <<= 8; - result |= (p[n] & 0xff); + result |= (buf[n] & 0xff); } } @@ -3527,7 +3525,7 @@ md_assemble (char *str) bool found_match = false; for (i = 0; i < TIC6X_NUM_PREFER; i++) - opc_rank[i] = (unsigned int) -1; + opc_rank[i] = -1u; min_rank = TIC6X_NUM_PREFER - 1; max_rank = 0; @@ -3576,7 +3574,7 @@ md_assemble (char *str) if (rank > max_rank) max_rank = rank; - if (opc_rank[rank] == (unsigned int) -1) + if (opc_rank[rank] == -1u) opc_rank[rank] = i; else /* The opcode table should provide a total ordering @@ -3607,7 +3605,7 @@ md_assemble (char *str) { fix_needed = false; - if (opc_rank[try_rank] == (unsigned int) -1) + if (opc_rank[try_rank] == -1u) continue; opcode_value = tic6x_try_encode (opcm[opc_rank[try_rank]], operands, @@ -4468,7 +4466,7 @@ tic6x_pcrel_from_section (fixS *fixp, segT sec) && (!S_IS_DEFINED (fixp->fx_addsy) || S_GET_SEGMENT (fixp->fx_addsy) != sec)) return 0; - return (fixp->fx_where + fixp->fx_frag->fr_address) & ~(long) 0x1f; + return (fixp->fx_where + fixp->fx_frag->fr_address) & ~0x1fULL; } /* Round up a section size to the appropriate boundary. */ diff --git a/gas/config/tc-tilegx.c b/gas/config/tc-tilegx.c index f70388c..84daf05 100644 --- a/gas/config/tc-tilegx.c +++ b/gas/config/tc-tilegx.c @@ -441,25 +441,25 @@ apply_special_operator (operatorT op, offsetT num, const char *file, check_shift = 0; /* Fall through. */ case O_hw0: - ret = (signed short)num; + ret = (int16_t) num; break; case O_hw1_last: check_shift = 16; /* Fall through. */ case O_hw1: - ret = (signed short)(num >> 16); + ret = (int16_t) (num >> 16); break; case O_hw2_last: check_shift = 32; /* Fall through. */ case O_hw2: - ret = (signed short)(num >> 32); + ret = (int16_t) (num >> 32); break; case O_hw3: - ret = (signed short)(num >> 48); + ret = (int16_t) (num >> 48); break; default: @@ -959,10 +959,8 @@ tilegx_flush_bundle (void) /* Figure out what pipe the fnop must be in via arithmetic. * p0 + p1 + p2 must sum to the sum of TILEGX_PIPELINE_Y[012]. */ current_bundle[0].pipe = - (tilegx_pipeline)((TILEGX_PIPELINE_Y0 - + TILEGX_PIPELINE_Y1 - + TILEGX_PIPELINE_Y2) - - (current_bundle[1].pipe + current_bundle[2].pipe)); + (TILEGX_PIPELINE_Y0 + TILEGX_PIPELINE_Y1 + TILEGX_PIPELINE_Y2 + - current_bundle[1].pipe - current_bundle[2].pipe); } check_illegal_reg_writes (); @@ -1351,7 +1349,7 @@ md_atof (int type, char *litP, int *sizeP) the bigendian 386. */ for (wordP = words + prec - 1; prec--;) { - md_number_to_chars (litP, (valueT) (*wordP--), sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, *wordP--, sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } return 0; @@ -1467,7 +1465,7 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED) || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY) return; - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) { /* We can't actually support subtracting a symbol. */ as_bad_subtract (fixP); @@ -1678,7 +1676,7 @@ md_apply_fix (fixS *fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED) ORing in values is OK since we know the existing bits for this operand are zero. */ for (; bits != 0; bits >>= 8) - *p++ |= (char)bits; + *p++ |= bits; } else { diff --git a/gas/config/tc-tilepro.c b/gas/config/tc-tilepro.c index 738b24a..8c90217 100644 --- a/gas/config/tc-tilepro.c +++ b/gas/config/tc-tilepro.c @@ -387,13 +387,13 @@ apply_special_operator (operatorT op, int num) switch (op) { case O_lo16: - return (signed short)num; + return (int16_t) num; case O_hi16: - return (signed short)(num >> 16); + return (int16_t) (num >> 16); case O_ha16: - return (signed short)((num + 0x8000) >> 16); + return (int16_t) ((num + 0x8000) >> 16); default: abort (); @@ -846,10 +846,8 @@ tilepro_flush_bundle (void) /* Figure out what pipe the fnop must be in via arithmetic. * p0 + p1 + p2 must sum to the sum of TILEPRO_PIPELINE_Y[012]. */ current_bundle[0].pipe = - (tilepro_pipeline)((TILEPRO_PIPELINE_Y0 - + TILEPRO_PIPELINE_Y1 - + TILEPRO_PIPELINE_Y2) - - (current_bundle[1].pipe + current_bundle[2].pipe)); + (TILEPRO_PIPELINE_Y0 + TILEPRO_PIPELINE_Y1 + TILEPRO_PIPELINE_Y2 + - current_bundle[1].pipe - current_bundle[2].pipe); } check_illegal_reg_writes (); @@ -878,8 +876,8 @@ tilepro_flush_bundle (void) f); } - number_to_chars_littleendian (f, (unsigned int)bits, 4); - number_to_chars_littleendian (f + 4, (unsigned int)(bits >> 32), 4); + number_to_chars_littleendian (f, bits, 4); + number_to_chars_littleendian (f + 4, bits >> 32, 4); current_bundle_index = 0; /* Emit DWARF2 debugging information. */ @@ -1227,7 +1225,7 @@ md_atof (int type, char *litP, int *sizeP) the bigendian 386. */ for (wordP = words + prec - 1; prec--;) { - md_number_to_chars (litP, (valueT) (*wordP--), sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, *wordP--, sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } return 0; diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c index b344005..8a86b1d 100644 --- a/gas/config/tc-v850.c +++ b/gas/config/tc-v850.c @@ -247,8 +247,7 @@ v850_offset (int ignore ATTRIBUTE_UNUSED) char *pfrag; int temp = get_absolute_expression (); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT)0, (symbolS *)0, - (offsetT) temp, (char *) 0); + pfrag = frag_var (rs_org, 1, 1, 0, NULL, temp, NULL); *pfrag = 0; demand_empty_rest_of_line (); @@ -412,8 +411,7 @@ v850_comm (int area) } symbol_set_frag (symbolP, frag_now); - pfrag = frag_var (rs_org, 1, 1, (relax_substateT) 0, symbolP, - (offsetT) size, (char *) 0); + pfrag = frag_var (rs_org, 1, 1, 0, symbolP, size, NULL); *pfrag = 0; S_SET_SIZE (symbolP, size); @@ -1958,7 +1956,7 @@ md_begin (void) { if (strcmp (prev_name, op->name)) { - prev_name = (char *) op->name; + prev_name = op->name; str_hash_insert (v850_hash, op->name, op, 0); } op++; @@ -3070,7 +3068,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 6, 2, SUBYPTE_LOOP_16_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f+4, 0, 4); } @@ -3087,7 +3085,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 4, 2, SUBYPTE_UNCOND_9_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 2); } @@ -3096,7 +3094,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 6, 4, SUBYPTE_UNCOND_9_22_32, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 4); } @@ -3113,7 +3111,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 8, 6, SUBYPTE_SA_9_17_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 6); } @@ -3122,7 +3120,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 6, 4, SUBYPTE_COND_9_17_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 4); } @@ -3134,7 +3132,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 8, 6, SUBYPTE_SA_9_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 6); } @@ -3143,7 +3141,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 6, 4, SUBYPTE_COND_9_22, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 4); } @@ -3158,7 +3156,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 10, 8, SUBYPTE_SA_9_17_22_32, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 8); } @@ -3167,7 +3165,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 8, 6, SUBYPTE_COND_9_17_22_32, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 6); } @@ -3179,7 +3177,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 10, 8, SUBYPTE_SA_9_22_32, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 8); } @@ -3188,7 +3186,7 @@ md_assemble (char *str) f = frag_var (rs_machine_dependent, 8, 6, SUBYPTE_COND_9_22_32, fixups[0].exp.X_add_symbol, fixups[0].exp.X_add_number, - (char *)(size_t) fixups[0].opindex); + (char *)(intptr_t) fixups[0].opindex); md_number_to_chars (f, insn, insn_size); md_number_to_chars (f + 2, 0, 6); } @@ -3312,8 +3310,7 @@ md_assemble (char *str) f - frag_now->fr_literal, 4, & fixups[i].exp, (operand->flags & V850_PCREL) != 0, - (bfd_reloc_code_real_type) (fixups[i].opindex - + (int) BFD_RELOC_UNUSED)); + fixups[i].opindex + BFD_RELOC_UNUSED); } } @@ -3396,7 +3393,7 @@ v850_pcrel_from_section (fixS *fixp, segT section) /* If the symbol is undefined, or in a section other than our own, or it is weak (in which case it may well be in another section, then let the linker figure it out. */ - if (fixp->fx_addsy != (symbolS *) NULL + if (fixp->fx_addsy != NULL && (! S_IS_DEFINED (fixp->fx_addsy) || S_IS_WEAK (fixp->fx_addsy) || (S_GET_SEGMENT (fixp->fx_addsy) != section))) @@ -3420,7 +3417,7 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) return; } - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_addnumber = value, fixP->fx_done = 1; @@ -3430,7 +3427,7 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) else { value = fixP->fx_offset; - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) { if (S_GET_SEGMENT (fixP->fx_subsy) == absolute_section) value -= S_GET_VALUE (fixP->fx_subsy); @@ -3441,14 +3438,14 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) fixP->fx_addnumber = value; } - if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + if (fixP->fx_r_type >= BFD_RELOC_UNUSED) { int opindex; const struct v850_operand *operand; unsigned long insn; const char *errmsg = NULL; - opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + opindex = fixP->fx_r_type - BFD_RELOC_UNUSED; operand = &v850_operands[opindex]; /* Fetch the instruction, insert the fully resolved operand @@ -3459,9 +3456,9 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) where = fixP->fx_frag->fr_literal + fixP->fx_where; if (fixP->fx_size > 2) - insn = bfd_getl32 ((unsigned char *) where); + insn = bfd_getl32 (where); else - insn = bfd_getl16 ((unsigned char *) where); + insn = bfd_getl16 (where); /* When inserting loop offsets a backwards displacement is encoded as a positive value. */ @@ -3474,9 +3471,9 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) as_warn_where (fixP->fx_file, fixP->fx_line, "%s", errmsg); if (fixP->fx_size > 2) - bfd_putl32 ((bfd_vma) insn, (unsigned char *) where); + bfd_putl32 (insn, where); else - bfd_putl16 ((bfd_vma) insn, (unsigned char *) where); + bfd_putl16 (insn, where); if (fixP->fx_done) /* Nothing else to do here. */ @@ -3512,7 +3509,7 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) && ((struct v850_operand *) fixP->tc_fix_data)->insert != NULL) { const char * message = NULL; - struct v850_operand * operand = (struct v850_operand *) fixP->tc_fix_data; + struct v850_operand * operand = fixP->tc_fix_data; unsigned long insn; /* The variable "where" currently points at the exact point inside @@ -3525,14 +3522,14 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) else if (fixP->fx_size == 1) where -= 3; - insn = bfd_getl32 ((unsigned char *) where); + insn = bfd_getl32 (where); /* Use the operand's insertion procedure, if present, in order to make sure that the value is correctly stored in the insn. */ insn = operand->insert (insn, (offsetT) value, & message); /* Ignore message even if it is set. */ - bfd_putl32 ((bfd_vma) insn, (unsigned char *) where); + bfd_putl32 (insn, where); } else { @@ -3540,17 +3537,17 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) { case BFD_RELOC_V850_32_ABS: case BFD_RELOC_V850_32_PCREL: - bfd_putl32 (value & 0xfffffffe, (unsigned char *) where); + bfd_putl32 (value & 0xfffffffe, where); break; case BFD_RELOC_32: - bfd_putl32 (value, (unsigned char *) where); + bfd_putl32 (value, where); break; case BFD_RELOC_V850_23: bfd_putl32 (((value & 0x7f) << 4) | ((value & 0x7fff80) << (16-7)) | (bfd_getl32 (where) & ~((0x7f << 4) | (0xffff << 16))), - (unsigned char *) where); + where); break; case BFD_RELOC_16: @@ -3561,7 +3558,7 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) case BFD_RELOC_V850_SDA_16_16_OFFSET: case BFD_RELOC_V850_TDA_16_16_OFFSET: case BFD_RELOC_V850_CALLT_16_16_OFFSET: - bfd_putl16 (value & 0xffff, (unsigned char *) where); + bfd_putl16 (value & 0xffff, where); break; case BFD_RELOC_8: @@ -3580,7 +3577,7 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) case BFD_RELOC_V850_16_PCREL: bfd_putl16 ((-value & 0xfffe) | (bfd_getl16 (where + 2) & 0x0001), - (unsigned char *) (where + 2)); + where + 2); break; case BFD_RELOC_V850_22_PCREL: @@ -3592,7 +3589,7 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) case BFD_RELOC_V850_LO16_S1: case BFD_RELOC_V850_ZDA_15_16_OFFSET: case BFD_RELOC_V850_SDA_15_16_OFFSET: - bfd_putl16 (value & 0xfffe, (unsigned char *) where); + bfd_putl16 (value & 0xfffe, where); break; case BFD_RELOC_V850_16_SPLIT_OFFSET: @@ -3748,7 +3745,7 @@ v850_md_finish (void) /* Write the note type. */ p = frag_more (4); - md_number_to_chars (p, (valueT) id, 4); + md_number_to_chars (p, id, 4); /* Write the name field. */ p = frag_more (4); diff --git a/gas/config/tc-vax.c b/gas/config/tc-vax.c index e256d08..1705380 100644 --- a/gas/config/tc-vax.c +++ b/gas/config/tc-vax.c @@ -278,7 +278,7 @@ md_apply_fix (fixS *fixP, valueT *valueP, segT seg ATTRIBUTE_UNUSED) { valueT value = * valueP; - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); if (fixP->fx_addsy == NULL) @@ -332,8 +332,7 @@ bignum_copy (LITTLENUM_TYPE *in, LITTLENUM_TYPE *p; /* -> most significant (non-zero) input littlenum. */ - memcpy ((void *) out, (void *) in, - (unsigned int) out_length << LITTLENUM_SHIFT); + memcpy (out, in, (unsigned int) out_length << LITTLENUM_SHIFT); for (p = in + in_length - 1; p >= in; --p) { if (*p) @@ -346,11 +345,10 @@ bignum_copy (LITTLENUM_TYPE *in, } else { - memcpy ((char *) out, (char *) in, - (unsigned int) in_length << LITTLENUM_SHIFT); + memcpy (out, in, (unsigned int) in_length << LITTLENUM_SHIFT); if (out_length > in_length) - memset ((char *) (out + in_length), '\0', + memset (out + in_length, 0, (unsigned int) (out_length - in_length) << LITTLENUM_SHIFT); significant_littlenums_dropped = 0; @@ -3356,7 +3354,7 @@ vax_cons_fix_new (fragS *frag, int where, unsigned int nbytes, expressionS *exp, : nbytes == 2 ? BFD_RELOC_16 : BFD_RELOC_32); - fix_new_exp (frag, where, (int) nbytes, exp, 0, r); + fix_new_exp (frag, where, nbytes, exp, 0, r); } const char * diff --git a/gas/config/tc-visium.c b/gas/config/tc-visium.c index 93c108f..01767f3 100644 --- a/gas/config/tc-visium.c +++ b/gas/config/tc-visium.c @@ -201,7 +201,7 @@ md_section_align (asection *seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } void @@ -412,10 +412,9 @@ relaxed_symbol_addr (fragS *fragp, long stretch) if (f->fr_type == rs_align || f->fr_type == rs_align_code) { if (stretch < 0) - stretch = - ((- stretch) - & ~ ((1 << (int) f->fr_offset) - 1)); + stretch = -(-stretch & ~((1ul << f->fr_offset) - 1)); else - stretch &= ~ ((1 << (int) f->fr_offset) - 1); + stretch &= ~((1ul << f->fr_offset) - 1); if (stretch == 0) break; } @@ -493,7 +492,7 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, segT sec ATTRIBUTE_UNUSED, long visium_pcrel_from_section (fixS *fixP, segT sec) { - if (fixP->fx_addsy != (symbolS *) NULL + if (fixP->fx_addsy != NULL && (!S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) { @@ -634,7 +633,7 @@ md_apply_fix (fixS * fixP, valueT * value, segT segment) break; default: /* It's a relocation against an instruction. */ - insn = bfd_getb32 ((unsigned char *) buf); + insn = bfd_getb32 (buf); switch (fixP->fx_r_type) { @@ -683,11 +682,11 @@ md_apply_fix (fixS * fixP, valueT * value, segT segment) default: as_bad_where (fixP->fx_file, fixP->fx_line, "bad or unhandled relocation type: 0x%02x", - fixP->fx_r_type); + (unsigned int) fixP->fx_r_type); break; } - bfd_putb32 (insn, (unsigned char *) buf); + bfd_putb32 (insn, buf); visium_update_parity_bit (buf); break; } @@ -831,8 +830,7 @@ md_atof (int type, char *litP, int *sizeP) { for (i = 0; i < prec; i++) { - md_number_to_chars (litP, (valueT) words[i], - sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, words[i], sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } } @@ -840,8 +838,7 @@ md_atof (int type, char *litP, int *sizeP) { for (i = prec - 1; i >= 0; i--) { - md_number_to_chars (litP, (valueT) words[i], - sizeof (LITTLENUM_TYPE)); + md_number_to_chars (litP, words[i], sizeof (LITTLENUM_TYPE)); litP += sizeof (LITTLENUM_TYPE); } } @@ -1375,9 +1372,8 @@ md_assemble (char *str0) if (imm < 0 || imm > 31) as_bad ("immediate value out of range"); - opcode |= - (r1 << 10) | (r2 << 16) | (1 << 9) | ((imm & 0x1f) << - 4); + opcode |= ((r1 << 10) | (r2 << 16) | (1 << 9) + | ((imm & 0x1f) << 4)); } else { @@ -1891,9 +1887,8 @@ md_assemble (char *str0) if (finst < 0 || finst > 15) as_bad ("finst out of range"); - opcode |= - ((finst & 0xf) << 27) | (r1 << 10) | (r2 << 16) | (r3 << - 4); + opcode |= (((finst & 0xf) << 27) + | (r1 << 10) | (r2 << 16) | (r3 << 4)); } else { @@ -1957,9 +1952,8 @@ md_assemble (char *str0) if (finst < 0 || finst > 15) as_bad ("finst out of range"); - opcode |= - ((finst & 0xf) << 27) | (r1 << 10) | (r2 << 16) | (r3 << - 4); + opcode |= (((finst & 0xf) << 27) + | (r1 << 10) | (r2 << 16) | (r3 << 4)); } else { diff --git a/gas/config/tc-wasm32.c b/gas/config/tc-wasm32.c index 066255f..23d2b43 100644 --- a/gas/config/tc-wasm32.c +++ b/gas/config/tc-wasm32.c @@ -178,7 +178,7 @@ valueT md_section_align (asection * seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } /* Apply a fixup, return TRUE if done (and no relocation is diff --git a/gas/config/tc-xgate.c b/gas/config/tc-xgate.c index 239310d..0823ecd 100644 --- a/gas/config/tc-xgate.c +++ b/gas/config/tc-xgate.c @@ -104,7 +104,7 @@ static void get_default_target (void); static char *extract_word (char *, char *, int); static struct xgate_opcode *xgate_find_match (struct xgate_opcode_handle *, int, s_operand [], unsigned int); -static int cmp_opcode (struct xgate_opcode *, struct xgate_opcode *); +static int cmp_opcode (const void *, const void *); static void xgate_print_table (void); static unsigned int xgate_get_operands (char *, s_operand []); static register_id reg_name_search (char *); @@ -308,7 +308,7 @@ md_begin (void) xgate_op_table[i] = xgate_opcode_ptr[i]; qsort (xgate_op_table, xgate_num_opcodes, sizeof (struct xgate_opcode), - (int (*)(const void *, const void *)) cmp_opcode); + cmp_opcode); /* Calculate number of handles since this will be smaller than the raw number of opcodes in the table. */ @@ -466,7 +466,7 @@ valueT md_section_align (asection * seg, valueT addr) { int align = bfd_section_alignment (seg); - return ((addr + (1 << align) - 1) & -(1 << align)); + return (addr + ((valueT) 1 << align) - 1) & -((valueT) 1 << align); } void @@ -621,7 +621,7 @@ tc_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp) else reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); - if (reloc->howto == (reloc_howto_type *) NULL) + if (reloc->howto == NULL) { as_bad_where (fixp->fx_file, fixp->fx_line, _ ("Relocation %d is not supported by object file format."), @@ -652,11 +652,11 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED) /* If the fixup is done mark it done so no further symbol resolution will take place. */ - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; /* We don't actually support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); where = fixP->fx_frag->fr_literal + fixP->fx_where; @@ -705,7 +705,7 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED) _("Value out of 16-bit range.")); value >>= 8; value &= 0x00ff; - bfd_putb16 ((bfd_vma) value | opcode, (void *) where); + bfd_putb16 (value | opcode, where); break; case BFD_RELOC_XGATE_24: case BFD_RELOC_XGATE_IMM8_LO: @@ -713,7 +713,7 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED) as_bad_where (fixP->fx_file, fixP->fx_line, _("Value out of 16-bit range.")); value &= 0x00ff; - bfd_putb16 ((bfd_vma) value | opcode, (void *) where); + bfd_putb16 (value | opcode, where); break; case BFD_RELOC_XGATE_IMM3: if (value < 0 || value > 7) @@ -737,13 +737,13 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED) number_to_chars_bigendian (where, (opcode | value), 2); break; case BFD_RELOC_8: - ((bfd_byte *) where)[0] = (bfd_byte) value; + *where = value & 0xff; break; case BFD_RELOC_32: - bfd_putb32 ((bfd_vma) value, (unsigned char *) where); + bfd_putb32 (value, where); break; case BFD_RELOC_16: - bfd_putb16 ((bfd_vma) value, (unsigned char *) where); + bfd_putb16 (value, where); break; default: as_fatal (_("Line %d: unknown relocation type: 0x%x."), fixP->fx_line, @@ -896,8 +896,10 @@ xgate_parse_exp (char *s, expressionS * op) } static int -cmp_opcode (struct xgate_opcode *op1, struct xgate_opcode *op2) +cmp_opcode (const void *p1, const void *p2) { + const struct xgate_opcode *op1 = p1; + const struct xgate_opcode *op2 = p2; return strcmp (op1->name, op2->name); } diff --git a/gas/config/tc-xstormy16.c b/gas/config/tc-xstormy16.c index 83bf873..7a90316 100644 --- a/gas/config/tc-xstormy16.c +++ b/gas/config/tc-xstormy16.c @@ -331,7 +331,7 @@ md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, long md_pcrel_from_section (fixS * fixP, segT sec) { - if ((fixP->fx_addsy != (symbolS *) NULL + if ((fixP->fx_addsy != NULL && (! S_IS_DEFINED (fixP->fx_addsy) || S_GET_SEGMENT (fixP->fx_addsy) != sec)) || xstormy16_force_relocation (fixP)) @@ -474,16 +474,16 @@ xstormy16_md_apply_fix (fixS * fixP, break; } - if (fixP->fx_addsy == (symbolS *) NULL) + if (fixP->fx_addsy == NULL) fixP->fx_done = 1; /* We don't actually support subtracting a symbol. */ - if (fixP->fx_subsy != (symbolS *) NULL) + if (fixP->fx_subsy != NULL) as_bad_subtract (fixP); - if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + if (fixP->fx_r_type >= BFD_RELOC_UNUSED) { - int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + int opindex = fixP->fx_r_type - BFD_RELOC_UNUSED; const CGEN_OPERAND *operand = cgen_operand_lookup_by_num (cd, opindex); const char *errmsg; bfd_reloc_code_real_type reloc_type; @@ -496,7 +496,7 @@ xstormy16_md_apply_fix (fixS * fixP, CGEN_FIELDS *fields = xmalloc (CGEN_CPU_SIZEOF_FIELDS (cd)); CGEN_CPU_SET_FIELDS_BITSIZE (cd) (fields, CGEN_INSN_BITSIZE (insn)); - CGEN_CPU_SET_VMA_OPERAND (cd) (cd, opindex, fields, (bfd_vma) value); + CGEN_CPU_SET_VMA_OPERAND (cd) (cd, opindex, fields, value); #if CGEN_INT_INSN_P { @@ -507,7 +507,7 @@ xstormy16_md_apply_fix (fixS * fixP, /* ??? 0 is passed for `pc'. */ errmsg = CGEN_CPU_INSERT_OPERAND (cd) (cd, opindex, fields, - &insn_value, (bfd_vma) 0); + &insn_value, 0); cgen_put_insn_value (cd, (unsigned char *) where, CGEN_INSN_BITSIZE (insn), insn_value, gas_cgen_cpu_desc->insn_endian); @@ -516,7 +516,7 @@ xstormy16_md_apply_fix (fixS * fixP, /* ??? 0 is passed for `pc'. */ errmsg = CGEN_CPU_INSERT_OPERAND (cd) (cd, opindex, fields, (unsigned char *) where, - (bfd_vma) 0); + 0); #endif if (errmsg) as_bad_where (fixP->fx_file, fixP->fx_line, "%s", errmsg); diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c index 1889608..af1154e 100644 --- a/gas/config/tc-xtensa.c +++ b/gas/config/tc-xtensa.c @@ -1312,7 +1312,7 @@ get_directive (directiveE *directive, bool *negated) if (strncmp (directive_string, directive_info[i].name, len) == 0) { input_line_pointer += len; - *directive = (directiveE) i; + *directive = i; if (*negated && !directive_info[i].can_be_negated) as_bad (_("directive %s cannot be negated"), directive_info[i].name); @@ -1321,7 +1321,7 @@ get_directive (directiveE *directive, bool *negated) } as_bad (_("unknown directive")); - *directive = (directiveE) XTENSA_UNDEFINED; + *directive = XTENSA_UNDEFINED; } @@ -1705,7 +1705,7 @@ xtensa_elf_cons (int nbytes) as_bad (_("invalid use of %s relocation"), reloc_howto->name); else { - char *p = frag_more ((int) nbytes); + char *p = frag_more (nbytes); xtensa_set_frag_assembly_state (frag_now); fix_new_exp (frag_now, p - frag_now->fr_literal, nbytes, &exp, reloc_howto->pc_relative, reloc); @@ -1714,7 +1714,7 @@ xtensa_elf_cons (int nbytes) else { xtensa_set_frag_assembly_state (frag_now); - emit_expr (&exp, (unsigned int) nbytes); + emit_expr (&exp, nbytes); } } while (*input_line_pointer++ == ','); @@ -1869,7 +1869,7 @@ expression_end (const char *name) } -#define ERROR_REG_NUM ((unsigned) -1) +#define ERROR_REG_NUM (-1u) static unsigned tc_get_register (const char *prefix) @@ -1903,7 +1903,7 @@ tc_get_register (const char *prefix) return ERROR_REG_NUM; } - if (!ISDIGIT ((unsigned char) *input_line_pointer)) + if (!ISDIGIT (*input_line_pointer)) { as_bad (_("bad register number: %s"), input_line_pointer); return ERROR_REG_NUM; @@ -1911,7 +1911,7 @@ tc_get_register (const char *prefix) reg = 0; - while (ISDIGIT ((int) *input_line_pointer)) + while (ISDIGIT (*input_line_pointer)) reg = reg * 10 + *input_line_pointer++ - '0'; if (!(next_expr = expression_end (input_line_pointer))) @@ -1961,7 +1961,7 @@ expression_maybe_register (xtensa_opcode opc, int opnd, expressionS *tok) case BFD_RELOC_HI16: if (tok->X_op == O_constant) { - tok->X_add_number = ((unsigned) tok->X_add_number) >> 16; + tok->X_add_number = ((uint32_t) tok->X_add_number) >> 16; return; } break; @@ -2522,7 +2522,7 @@ xg_translate_idioms (char **popname, int *pnum_args, char **arg_strings) { if (*pnum_args == 0) { - arg_strings[0] = (char *) xmalloc (2); + arg_strings[0] = xmalloc (2); strcpy (arg_strings[0], "0"); *pnum_args = 1; } @@ -5378,7 +5378,7 @@ xtensa_frob_label (symbolS *sym) /* Since the label was already attached to a frag associated with the previous basic block, it now needs to be reset to the current frag. */ symbol_set_frag (sym, frag_now); - S_SET_VALUE (sym, (valueT) frag_now_fix ()); + S_SET_VALUE (sym, frag_now_fix ()); if (generating_literals) xtensa_add_literal_sym (sym); @@ -9001,15 +9001,15 @@ xtensa_add_config_info (void) /* Follow the standard note section layout: First write the length of the name string. */ p = frag_more (4); - md_number_to_chars (p, (valueT) XTINFO_NAMESZ, 4); + md_number_to_chars (p, XTINFO_NAMESZ, 4); /* Next comes the length of the "descriptor", i.e., the actual data. */ p = frag_more (4); - md_number_to_chars (p, (valueT) sz, 4); + md_number_to_chars (p, sz, 4); /* Write the note type. */ p = frag_more (4); - md_number_to_chars (p, (valueT) XTINFO_TYPE, 4); + md_number_to_chars (p, XTINFO_TYPE, 4); /* Write the name field. */ p = frag_more (XTINFO_NAMESZ); @@ -10321,7 +10321,7 @@ relax_frag_immed (segT segP, min_steps, stretch); gas_assert (num_steps >= min_steps && num_steps <= RELAX_IMMED_MAXSTEPS); - fragP->tc_frag_data.slot_subtypes[slot] = (int) RELAX_IMMED + num_steps; + fragP->tc_frag_data.slot_subtypes[slot] = RELAX_IMMED + num_steps; /* Figure out the number of bytes needed. */ num_literal_bytes = get_num_stack_literal_bytes (&istack); @@ -10350,8 +10350,7 @@ relax_frag_immed (segT segP, min_steps, stretch + old_size); gas_assert (num_steps >= min_steps && num_steps <= RELAX_IMMED_MAXSTEPS); - fragP->tc_frag_data.slot_subtypes[slot] - = (int) RELAX_IMMED + num_steps; + fragP->tc_frag_data.slot_subtypes[slot] = RELAX_IMMED + num_steps; num_literal_bytes = get_num_stack_literal_bytes (&istack); literal_diff diff --git a/gas/config/tc-z80.c b/gas/config/tc-z80.c index 3abc026..e7f014c 100644 --- a/gas/config/tc-z80.c +++ b/gas/config/tc-z80.c @@ -2966,10 +2966,10 @@ emit_lea (char prefix, char opcode, const char * args) switch (rnum) { case REG_IX: - opcode = (opcode == (char)0x33) ? 0x55 : (opcode|0x00); + opcode = opcode == 0x33 ? 0x55 : opcode | 0x00; break; case REG_IY: - opcode = (opcode == (char)0x32) ? 0x54 : (opcode|0x01); + opcode = opcode == 0x32 ? 0x54 : opcode | 0x01; } q = frag_more (2); @@ -3420,7 +3420,7 @@ assemble_suffix (const char **suffix) i = 0x40; break; } - *frag_more (1) = (char)i; + *frag_more (1) = i; switch (i) { case 0x40: inst_mode = INST_MODE_FORCED | INST_MODE_S | INST_MODE_IS; break; @@ -3720,7 +3720,7 @@ is_overflow (long value, unsigned bitsize) { if (value < 0) return signed_overflow (value, bitsize); - return unsigned_overflow ((unsigned long)value, bitsize); + return unsigned_overflow (value, bitsize); } void @@ -4064,8 +4064,8 @@ str_to_zeda32(char *litP, int *sizeP) else if (!sign) mantissa &= (1ull << 23) - 1; for (i = 0; i < 24; i += 8) - *litP++ = (char)(mantissa >> i); - *litP = (char)(0x80 + exponent); + *litP++ = mantissa >> i; + *litP = 0x80 + exponent; return NULL; } @@ -4111,9 +4111,9 @@ str_to_float48(char *litP, int *sizeP) return _("overflow"); if (!sign) mantissa &= (1ull << 39) - 1; - *litP++ = (char)(0x80 + exponent); + *litP++ = 0x80 + exponent; for (i = 0; i < 40; i += 8) - *litP++ = (char)(mantissa >> i); + *litP++ = mantissa >> i; return NULL; } diff --git a/gas/config/tc-z8k.c b/gas/config/tc-z8k.c index 9947fe1..2980cff 100644 --- a/gas/config/tc-z8k.c +++ b/gas/config/tc-z8k.c @@ -164,7 +164,7 @@ md_begin (void) opcode_entry_type *fake_opcode; fake_opcode = XNEW (opcode_entry_type); fake_opcode->name = md_pseudo_table[idx].poc_name; - fake_opcode->func = (void *) (md_pseudo_table + idx); + fake_opcode->p = md_pseudo_table + idx; fake_opcode->opcode = 250; str_hash_insert (opcode_hash_control, fake_opcode->name, fake_opcode, 0); } @@ -1248,7 +1248,7 @@ md_assemble (char *str) if (opcode->opcode == 250) { - pseudo_typeS *p; + const pseudo_typeS *p; char oc; char *old = input_line_pointer; @@ -1260,7 +1260,7 @@ md_assemble (char *str) *old = '\n'; while (is_whitespace (*input_line_pointer)) input_line_pointer++; - p = (pseudo_typeS *) (opcode->func); + p = opcode->p; (p->poc_handler) (p->poc_val); input_line_pointer = old; diff --git a/gas/config/te-vms.c b/gas/config/te-vms.c index c88fbbe..8e6f7e7 100644 --- a/gas/config/te-vms.c +++ b/gas/config/te-vms.c @@ -169,7 +169,7 @@ vms_file_stats_name (const char *dirname, return 0; } - fullname = concat (dirname, filename, NULL); + fullname = concat (dirname, filename, (const char *) NULL); tryfile = to_vms_file_spec (fullname); /* Allocate and initialize a FAB and NAM structures. */ @@ -278,7 +278,7 @@ vms_file_stats_name (const char *dirname, struct tm *ts; long long gmtoff, secs, nsecs; - fullname = concat (dirname, filename, NULL); + fullname = concat (dirname, filename, (const char *) NULL); if ((stat (fullname, &buff)) != 0) { diff --git a/gas/debug.c b/gas/debug.c index 794dc4c..9fe9a30 100644 --- a/gas/debug.c +++ b/gas/debug.c @@ -22,7 +22,8 @@ #include "as.h" #include "subsegs.h" -dmp_frags () +void +dmp_frags (void) { asection *s; frchainS *chp; @@ -48,9 +49,8 @@ dmp_frags () } } -dmp_frag (fp, indent) - struct frag *fp; - char *indent; +void +dmp_frag (struct frag *fp, char *indent) { for (; fp; fp = fp->fr_next) { @@ -90,9 +90,8 @@ dmp_frag (fp, indent) } } -var_chars (fp, n) - struct frag *fp; - int n; +void +var_chars (struct frag *fp, int n) { unsigned char *p; diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi index d7e9c95..acfa003 100644 --- a/gas/doc/c-aarch64.texi +++ b/gas/doc/c-aarch64.texi @@ -299,6 +299,8 @@ automatically cause those extensions to be disabled. @tab Enable SME2. @item @code{sme2p1} @tab @code{sme2} @tab Enable SME2.1. +@item @code{sme2p2} @tab @code{sme2p1} + @tab Enable SME2.2. @item @code{ssbs} @tab @tab Enable Speculative Store Bypassing Safe state read and write. @item @code{ssve-fp8dot2} @tab @code{sme2}, @code{fp8} @@ -327,6 +329,8 @@ automatically cause those extensions to be disabled. @tab Enable the SVE2 SM4 Extension. @item @code{sve2p1} @tab @code{sve2} @tab Enable SVE2.1. +@item @code{sve2p2} @tab @code{sve2p1} + @tab Enable SVE2.2. @item @code{the} @tab @tab Enable the Translation Hardening Extension. @item @code{tme} @tab diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c index a21ae32..5eb8a5d 100644 --- a/gas/dw2gencfi.c +++ b/gas/dw2gencfi.c @@ -236,7 +236,7 @@ get_debugseg_name (segT seg, const char *base_name) { if (!strcmp (base_name, ".eh_frame_entry") && strcmp (name, ".text") != 0) - return notes_concat (base_name, ".", name, NULL); + return notes_concat (base_name, ".", name, (const char *) NULL); name = ""; } @@ -249,7 +249,7 @@ get_debugseg_name (segT seg, const char *base_name) else name = dollar; - return notes_concat (base_name, name, NULL); + return notes_concat (base_name, name, (const char *) NULL); } /* Allocate a dwcfi_seg_list structure. */ diff --git a/gas/ecoff.c b/gas/ecoff.c index b5d811c..7411595 100644 --- a/gas/ecoff.c +++ b/gas/ecoff.c @@ -813,8 +813,8 @@ typedef struct varray { #endif #define INIT_VARRAY(type) { /* macro to initialize a varray */ \ - (vlinks_t *)0, /* first */ \ - (vlinks_t *)0, /* last */ \ + 0, /* first */ \ + 0, /* last */ \ 0, /* num_allocated */ \ sizeof (type), /* object_size */ \ OBJECTS_PER_PAGE (type), /* objects_per_page */ \ @@ -980,22 +980,22 @@ static const efdr_t init_file = { 0, /* cbLine: size of lines for this file */ }, - (FDR *)0, /* orig_fdr: original file header pointer */ - (char *)0, /* name: pointer to filename */ + 0, /* orig_fdr: original file header pointer */ + 0, /* name: pointer to filename */ 0, /* fake: whether this is a faked .file */ 0, /* void_type: ptr to aux node for void type */ 0, /* int_type: ptr to aux node for int type */ - (scope_t *)0, /* cur_scope: current scope being processed */ + 0, /* cur_scope: current scope being processed */ 0, /* file_index: current file # */ 0, /* nested_scopes: # nested scopes */ INIT_VARRAY (char), /* strings: local string varray */ - INIT_VARRAY (localsym_t), /* symbols: local symbols varray */ + INIT_VARRAY (localsym_t), /* symbols: local symbols varray */ INIT_VARRAY (proc_t), /* procs: procedure varray */ INIT_VARRAY (aux_t), /* aux_syms: auxiliary symbols varray */ - (struct efdr *)0, /* next_file: next file structure */ + 0, /* next_file: next file structure */ - (htab_t)0, /* str_hash: string hash table */ + 0, /* str_hash: string hash table */ { 0 }, /* thash_head: type hash table */ }; @@ -1379,17 +1379,17 @@ static const st_t map_coff_sym_type[] = { }; /* Keep track of different sized allocation requests. */ -static alloc_info_t alloc_counts[(int) alloc_type_last]; +static alloc_info_t alloc_counts[alloc_type_last]; /* Record whether we have seen any debugging information. */ int ecoff_debugging_seen = 0; /* Various statics. */ -static efdr_t *cur_file_ptr = (efdr_t *) 0; /* current file desc. header */ -static proc_t *cur_proc_ptr = (proc_t *) 0; /* current procedure header */ -static proc_t *first_proc_ptr = (proc_t *) 0; /* first procedure header */ -static thead_t *top_tag_head = (thead_t *) 0; /* top level tag head */ -static thead_t *cur_tag_head = (thead_t *) 0; /* current tag head */ +static efdr_t *cur_file_ptr = 0; /* current file desc. header */ +static proc_t *cur_proc_ptr = 0; /* current procedure header */ +static proc_t *first_proc_ptr = 0; /* first procedure header */ +static thead_t *top_tag_head = 0; /* top level tag head */ +static thead_t *cur_tag_head = 0; /* current tag head */ #ifdef ECOFF_DEBUG static int debug = 0; /* trace functions */ #endif @@ -1478,8 +1478,8 @@ ecoff_read_begin_hook (void) { tag_hash = str_htab_create (); top_tag_head = allocate_thead (); - top_tag_head->first_tag = (tag_t *) NULL; - top_tag_head->free = (thead_t *) NULL; + top_tag_head->first_tag = NULL; + top_tag_head->free = NULL; top_tag_head->prev = cur_tag_head; cur_tag_head = top_tag_head; } @@ -1496,9 +1496,9 @@ ecoff_symbol_new_hook (symbolS *symbolP) symbol created by md_begin which may required special handling at some point. Creating a dummy file with a dummy name is certainly wrong. */ - if (cur_file_ptr == (efdr_t *) NULL + if (cur_file_ptr == NULL && seen_at_least_1_file ()) - add_file ((const char *) NULL, 0, 1); + add_file (NULL, 0, 1); obj = symbol_get_obj (symbolP); obj->ecoff_file = cur_file_ptr; obj->ecoff_symbol = NULL; @@ -1524,18 +1524,18 @@ add_varray_page (varray_t *vp /* varray to add page to */) #ifdef MALLOC_CHECK if (vp->object_size > 1) - new_links->datum = (page_type *) xcalloc (1, vp->object_size); + new_links->datum = xcalloc (1, vp->object_size); else #endif new_links->datum = allocate_page (); - alloc_counts[(int) alloc_type_varray].total_alloc++; - alloc_counts[(int) alloc_type_varray].total_pages++; + alloc_counts[alloc_type_varray].total_alloc++; + alloc_counts[alloc_type_varray].total_pages++; new_links->start_index = vp->num_allocated; vp->objects_last_page = 0; - if (vp->first == (vlinks_t *) NULL) /* first allocation? */ + if (vp->first == NULL) /* first allocation? */ vp->first = vp->last = new_links; else { /* 2nd or greater allocation */ @@ -1583,7 +1583,7 @@ add_string (varray_t *vp, /* string obstack */ as_fatal (_("duplicate %s"), str); } - if (ret_hash != (shash_t **) NULL) + if (ret_hash != NULL) *ret_hash = hash_ptr; return hash_ptr->indx; @@ -1607,9 +1607,9 @@ add_ecoff_symbol (const char *str, /* symbol name */ tag_t *ptag_next; varray_t *vp; int scope_delta = 0; - shash_t *hash_ptr = (shash_t *) NULL; + shash_t *hash_ptr = NULL; - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) as_fatal (_("no current file pointer")); vp = &cur_file_ptr->symbols; @@ -1619,32 +1619,32 @@ add_ecoff_symbol (const char *str, /* symbol name */ psym = &vp->last->datum->sym[vp->objects_last_page++]; - if (str == (const char *) NULL && sym_value != (symbolS *) NULL) + if (str == NULL && sym_value != NULL) psym->name = S_GET_NAME (sym_value); else psym->name = str; psym->as_sym = sym_value; - if (sym_value != (symbolS *) NULL) + if (sym_value != NULL) symbol_get_obj (sym_value)->ecoff_symbol = psym; psym->addend = addend; psym->file_ptr = cur_file_ptr; psym->proc_ptr = cur_proc_ptr; - psym->begin_ptr = (localsym_t *) NULL; - psym->index_ptr = (aux_t *) NULL; - psym->forward_ref = (forward_t *) NULL; + psym->begin_ptr = NULL; + psym->index_ptr = NULL; + psym->forward_ref = NULL; psym->sym_index = -1; memset (&psym->ecoff_sym, 0, sizeof (EXTR)); psym->ecoff_sym.asym.value = value; - psym->ecoff_sym.asym.st = (unsigned) type; - psym->ecoff_sym.asym.sc = (unsigned) storage; + psym->ecoff_sym.asym.st = type; + psym->ecoff_sym.asym.sc = storage; psym->ecoff_sym.asym.index = indx; /* If there is an associated symbol, we wait until the end of the assembly before deciding where to put the name (it may be just an external symbol). Otherwise, this is just a debugging symbol and the name should go with the current file. */ - if (sym_value == (symbolS *) NULL) - psym->ecoff_sym.asym.iss = ((str == (const char *) NULL) + if (sym_value == NULL) + psym->ecoff_sym.asym.iss = (str == NULL ? 0 : add_string (&cur_file_ptr->strings, cur_file_ptr->str_hash, @@ -1658,7 +1658,7 @@ add_ecoff_symbol (const char *str, /* symbol name */ /* Save the symbol within the hash table if this is a static item, and it has a name. */ - if (hash_ptr != (shash_t *) NULL + if (hash_ptr != NULL && (type == st_Global || type == st_Static || type == st_Label || type == st_Proc || type == st_StaticProc)) hash_ptr->sym_ptr = psym; @@ -1696,11 +1696,11 @@ add_ecoff_symbol (const char *str, /* symbol name */ case st_End: pscope = cur_file_ptr->cur_scope; - if (pscope == (scope_t *) NULL) + if (pscope == NULL) as_fatal (_("too many st_End's")); else { - st_t begin_type = (st_t) pscope->lsym->ecoff_sym.asym.st; + st_t begin_type = pscope->lsym->ecoff_sym.asym.st; psym->begin_ptr = pscope->lsym; @@ -1715,10 +1715,10 @@ add_ecoff_symbol (const char *str, /* symbol name */ cur_tag_head = ptag_head->prev; for (ptag = ptag_head->first_tag; - ptag != (tag_t *) NULL; + ptag != NULL; ptag = ptag_next) { - if (ptag->forward_ref != (forward_t *) NULL) + if (ptag->forward_ref != NULL) add_unknown_tag (ptag); ptag_next = ptag->same_block; @@ -1802,7 +1802,7 @@ add_aux_sym_symint (symint_t aux_word /* auxiliary information word */) varray_t *vp; aux_t *aux_ptr; - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) as_fatal (_("no current file pointer")); vp = &cur_file_ptr->aux_syms; @@ -1825,7 +1825,7 @@ add_aux_sym_rndx (int file_index, symint_t sym_index) varray_t *vp; aux_t *aux_ptr; - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) as_fatal (_("no current file pointer")); vp = &cur_file_ptr->aux_syms; @@ -1855,22 +1855,22 @@ add_aux_sym_tir (type_info_t *t, /* current type information */ int i; AUXU aux; - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) as_fatal (_("no current file pointer")); vp = &cur_file_ptr->aux_syms; memset (&aux, 0, sizeof (aux)); - aux.ti.bt = (int) t->basic_type; + aux.ti.bt = t->basic_type; aux.ti.continued = 0; aux.ti.fBitfield = t->bitfield; - aux.ti.tq0 = (int) t->type_qualifiers[0]; - aux.ti.tq1 = (int) t->type_qualifiers[1]; - aux.ti.tq2 = (int) t->type_qualifiers[2]; - aux.ti.tq3 = (int) t->type_qualifiers[3]; - aux.ti.tq4 = (int) t->type_qualifiers[4]; - aux.ti.tq5 = (int) t->type_qualifiers[5]; + aux.ti.tq0 = t->type_qualifiers[0]; + aux.ti.tq1 = t->type_qualifiers[1]; + aux.ti.tq2 = t->type_qualifiers[2]; + aux.ti.tq3 = t->type_qualifiers[3]; + aux.ti.tq4 = t->type_qualifiers[4]; + aux.ti.tq5 = t->type_qualifiers[5]; /* For anything that adds additional information, we must not hash, so check here, and reset our state. */ @@ -1903,17 +1903,17 @@ add_aux_sym_tir (type_info_t *t, /* current type information */ hi %= THASH_SIZE; for (hash_ptr = hash_tbl[hi]; - hash_ptr != (thash_t *)0; + hash_ptr; hash_ptr = hash_ptr->next) { if (aux.isym == hash_ptr->type.isym) break; } - if (hash_ptr != (thash_t *) NULL && state == hash_yes) + if (hash_ptr != NULL && state == hash_yes) return hash_ptr->indx; - if (hash_ptr == (thash_t *) NULL) + if (hash_ptr == NULL) { hash_ptr = allocate_thash (); hash_ptr->next = hash_tbl[hi]; @@ -1943,7 +1943,7 @@ add_aux_sym_tir (type_info_t *t, /* current type information */ for an enum bitfield. */ if (t->bitfield) - (void) add_aux_sym_symint ((symint_t) t->sizes[t->num_sizes - 1]); + (void) add_aux_sym_symint (t->sizes[t->num_sizes - 1]); /* Add tag information if needed. Structure, union, and enum references add 2 aux symbols: a [file index, symbol index] @@ -1957,7 +1957,7 @@ add_aux_sym_tir (type_info_t *t, /* current type information */ localsym_t *sym = t->tag_ptr->sym; forward_t *forward_ref = allocate_forward (); - if (sym != (localsym_t *) NULL) + if (sym != NULL) { forward_ref->next = sym->forward_ref; sym->forward_ref = forward_ref; @@ -1984,7 +1984,7 @@ add_aux_sym_tir (type_info_t *t, /* current type information */ cur_file_ptr->int_type); (void) add_aux_sym_symint (cur_file_ptr->file_index); /* file index*/ - (void) add_aux_sym_symint ((symint_t) 0); /* low bound */ + (void) add_aux_sym_symint (0); /* low bound */ (void) add_aux_sym_symint (t->dimensions[i] - 1); /* high bound*/ (void) add_aux_sym_symint ((t->dimensions[i] == 0) /* stride */ ? 0 @@ -2007,16 +2007,16 @@ get_tag (const char *tag, /* tag name */ shash_t *hash_ptr; tag_t *tag_ptr; - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) as_fatal (_("no current file pointer")); hash_ptr = str_hash_find (tag_hash, tag); - if (hash_ptr != (shash_t *) NULL - && hash_ptr->tag_ptr != (tag_t *) NULL) + if (hash_ptr != NULL + && hash_ptr->tag_ptr != NULL) { tag_ptr = hash_ptr->tag_ptr; - if (sym != (localsym_t *) NULL) + if (sym != NULL) { tag_ptr->basic_type = basic_type; tag_ptr->ifd = cur_file_ptr->file_index; @@ -2025,7 +2025,7 @@ get_tag (const char *tag, /* tag name */ return tag_ptr; } - if (hash_ptr == (shash_t *) NULL) + if (hash_ptr == NULL) { char *perm; @@ -2036,12 +2036,12 @@ get_tag (const char *tag, /* tag name */ } tag_ptr = allocate_tag (); - tag_ptr->forward_ref = (forward_t *) NULL; + tag_ptr->forward_ref = NULL; tag_ptr->hash_ptr = hash_ptr; tag_ptr->same_name = hash_ptr->tag_ptr; tag_ptr->basic_type = basic_type; tag_ptr->sym = sym; - tag_ptr->ifd = ((sym == (localsym_t *) NULL) + tag_ptr->ifd = (sym == NULL ? (symint_t) -1 : cur_file_ptr->file_index); tag_ptr->same_block = cur_tag_head->first_tag; @@ -2079,23 +2079,11 @@ add_unknown_tag (tag_t *ptag /* pointer to tag information */) } #endif - sym = add_ecoff_symbol (name, - st_Block, - sc_Info, - (symbolS *) NULL, - (bfd_vma) 0, - (symint_t) 0, - (symint_t) 0); - - (void) add_ecoff_symbol (name, - st_End, - sc_Info, - (symbolS *) NULL, - (bfd_vma) 0, - (symint_t) 0, - (symint_t) 0); - - for (pf = &sym->forward_ref; *pf != (forward_t *) NULL; pf = &(*pf)->next) + sym = add_ecoff_symbol (name, st_Block, sc_Info, NULL, 0, 0, 0); + + (void) add_ecoff_symbol (name, st_End, sc_Info, NULL, 0, 0, 0); + + for (pf = &sym->forward_ref; *pf != NULL; pf = &(*pf)->next) ; *pf = ptag->forward_ref; } @@ -2123,7 +2111,7 @@ add_procedure (char *func /* func name */, int aent) if (aent) return; - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) as_fatal (_("no current file pointer")); vp = &cur_file_ptr->procs; @@ -2133,7 +2121,7 @@ add_procedure (char *func /* func name */, int aent) cur_proc_ptr = new_proc_ptr = &vp->last->datum->proc[vp->objects_last_page++]; - if (first_proc_ptr == (proc_t *) NULL) + if (first_proc_ptr == NULL) first_proc_ptr = new_proc_ptr; vp->num_allocated++; @@ -2144,18 +2132,16 @@ add_procedure (char *func /* func name */, int aent) new_proc_ptr->pdr.lnHigh = -1; /* Push the start of the function. */ - new_proc_ptr->sym = add_ecoff_symbol ((const char *) NULL, st_Proc, sc_Text, - sym, (bfd_vma) 0, (symint_t) 0, - (symint_t) 0); + new_proc_ptr->sym = add_ecoff_symbol (NULL, st_Proc, sc_Text, sym, 0, 0, 0); ++proc_cnt; /* Fill in the linenos preceding the .ent, if any. */ - if (noproc_lineno != (lineno_list_t *) NULL) + if (noproc_lineno != NULL) { lineno_list_t *l; - for (l = noproc_lineno; l != (lineno_list_t *) NULL; l = l->next) + for (l = noproc_lineno; l != NULL; l = l->next) l->proc = new_proc_ptr; *last_lineno_ptr = noproc_lineno; while (*last_lineno_ptr != NULL) @@ -2163,7 +2149,7 @@ add_procedure (char *func /* func name */, int aent) last_lineno = *last_lineno_ptr; last_lineno_ptr = &last_lineno->next; } - noproc_lineno = (lineno_list_t *) NULL; + noproc_lineno = NULL; } } @@ -2190,11 +2176,11 @@ add_file (const char *file_name, int indx ATTRIBUTE_UNUSED, int fake) /* If the file name is NULL, then no .file symbol appeared, and we want to use the actual file name. */ - if (file_name == (const char *) NULL) + if (file_name == NULL) { - if (first_file != (efdr_t *) NULL) + if (first_file != NULL) as_fatal (_("fake .file after real one")); - file_name = as_where ((unsigned int *) NULL); + file_name = as_where (NULL); /* Automatically generate ECOFF debugging information, since I think that's what other ECOFF assemblers do. We don't do @@ -2221,7 +2207,7 @@ add_file (const char *file_name, int indx ATTRIBUTE_UNUSED, int fake) (void) add_ecoff_symbol (file_name, st_Nil, sc_Nil, symbol_new (FAKE_LABEL_NAME, now_seg, frag_now, frag_now_fix ()), - (bfd_vma) 0, 0, ECOFF_MARK_STAB (N_SOL)); + 0, 0, ECOFF_MARK_STAB (N_SOL)); return; } @@ -2242,7 +2228,7 @@ add_file (const char *file_name, int indx ATTRIBUTE_UNUSED, int fake) /* See if the file has already been created. */ for (fil_ptr = first_file; - fil_ptr != (efdr_t *) NULL; + fil_ptr != NULL; fil_ptr = fil_ptr->next_file) { if (first_ch == fil_ptr->name[0] @@ -2257,7 +2243,7 @@ add_file (const char *file_name, int indx ATTRIBUTE_UNUSED, int fake) } /* If this is a new file, create it. */ - if (fil_ptr == (efdr_t *) NULL) + if (fil_ptr == NULL) { if (file_desc.objects_last_page == file_desc.objects_per_page) add_varray_page (&file_desc); @@ -2275,19 +2261,14 @@ add_file (const char *file_name, int indx ATTRIBUTE_UNUSED, int fake) fil_ptr->str_hash = str_htab_create (); /* Make sure 0 byte in string table is null */ - add_string (&fil_ptr->strings, - fil_ptr->str_hash, - "", - (shash_t **)0); + add_string (&fil_ptr->strings, fil_ptr->str_hash, "", NULL); if (strlen (file_name) > PAGE_USIZE - 2) as_fatal (_("filename goes over one page boundary")); /* Push the start of the filename. We assume that the filename will be stored at string offset 1. */ - (void) add_ecoff_symbol (file_name, st_File, sc_Text, - (symbolS *) NULL, (bfd_vma) 0, - (symint_t) 0, (symint_t) 0); + (void) add_ecoff_symbol (file_name, st_File, sc_Text, NULL, 0, 0, 0); fil_ptr->fdr.rss = 1; fil_ptr->name = &fil_ptr->strings.last->datum->byte[1]; @@ -2412,14 +2393,14 @@ ecoff_directive_begin (int ignore ATTRIBUTE_UNUSED) char *name; char name_end; - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) { as_warn (_(".begin directive without a preceding .file directive")); demand_empty_rest_of_line (); return; } - if (cur_proc_ptr == (proc_t *) NULL) + if (cur_proc_ptr == NULL) { as_warn (_(".begin directive without a preceding .ent directive")); demand_empty_rest_of_line (); @@ -2428,9 +2409,8 @@ ecoff_directive_begin (int ignore ATTRIBUTE_UNUSED) name_end = get_symbol_name (&name); - (void) add_ecoff_symbol ((const char *) NULL, st_Block, sc_Text, - symbol_find_or_make (name), - (bfd_vma) 0, (symint_t) 0, (symint_t) 0); + (void) add_ecoff_symbol (NULL, st_Block, sc_Text, + symbol_find_or_make (name), 0, 0, 0); (void) restore_line_pointer (name_end); @@ -2449,14 +2429,14 @@ ecoff_directive_bend (int ignore ATTRIBUTE_UNUSED) char name_end; symbolS *endsym; - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) { as_warn (_(".bend directive without a preceding .file directive")); demand_empty_rest_of_line (); return; } - if (cur_proc_ptr == (proc_t *) NULL) + if (cur_proc_ptr == NULL) { as_warn (_(".bend directive without a preceding .ent directive")); demand_empty_rest_of_line (); @@ -2469,11 +2449,10 @@ ecoff_directive_bend (int ignore ATTRIBUTE_UNUSED) corresponding symbol. We fill in the offset when we write out the symbol. */ endsym = symbol_find (name); - if (endsym == (symbolS *) NULL) + if (endsym == NULL) as_warn (_(".bend directive names unknown symbol")); else - (void) add_ecoff_symbol ((const char *) NULL, st_End, sc_Text, endsym, - (bfd_vma) 0, (symint_t) 0, (symint_t) 0); + (void) add_ecoff_symbol (NULL, st_End, sc_Text, endsym, 0, 0, 0); restore_line_pointer (name_end); @@ -2511,7 +2490,7 @@ ecoff_directive_def (int ignore ATTRIBUTE_UNUSED) name_end = get_symbol_name (&name); - if (coff_sym_name != (char *) NULL) + if (coff_sym_name != NULL) as_warn (_(".def pseudo-op used inside of .def/.endef; ignored")); else if (*name == '\0') as_warn (_("empty symbol name in .def; ignored")); @@ -2525,9 +2504,9 @@ ecoff_directive_def (int ignore ATTRIBUTE_UNUSED) coff_storage_class = sc_Nil; coff_symbol_typ = st_Nil; coff_is_function = 0; - coff_tag = (char *) NULL; + coff_tag = NULL; coff_value = 0; - coff_sym_value = (symbolS *) NULL; + coff_sym_value = NULL; coff_sym_addend = 0; } @@ -2547,7 +2526,7 @@ ecoff_directive_dim (int ignore ATTRIBUTE_UNUSED) int dimens[N_TQ]; int i; - if (coff_sym_name == (char *) NULL) + if (coff_sym_name == NULL) { as_warn (_(".dim pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); @@ -2595,7 +2574,7 @@ ecoff_directive_scl (int ignore ATTRIBUTE_UNUSED) { long val; - if (coff_sym_name == (char *) NULL) + if (coff_sym_name == NULL) { as_warn (_(".scl pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); @@ -2620,7 +2599,7 @@ ecoff_directive_size (int ignore ATTRIBUTE_UNUSED) int sizes[N_TQ]; int i; - if (coff_sym_name == (char *) NULL) + if (coff_sym_name == NULL) { as_warn (_(".size pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); @@ -2670,7 +2649,7 @@ ecoff_directive_type (int ignore ATTRIBUTE_UNUSED) tq_t *tq_ptr; tq_t *tq_shft; - if (coff_sym_name == (char *) NULL) + if (coff_sym_name == NULL) { as_warn (_(".type pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); @@ -2737,7 +2716,7 @@ ecoff_directive_tag (int ignore ATTRIBUTE_UNUSED) char *name; char name_end; - if (coff_sym_name == (char *) NULL) + if (coff_sym_name == NULL) { as_warn (_(".tag pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); @@ -2761,7 +2740,7 @@ ecoff_directive_val (int ignore ATTRIBUTE_UNUSED) { expressionS exp; - if (coff_sym_name == (char *) NULL) + if (coff_sym_name == NULL) { as_warn (_(".val pseudo-op used outside of .def/.endef; ignored")); demand_empty_rest_of_line (); @@ -2799,26 +2778,26 @@ ecoff_directive_endef (int ignore ATTRIBUTE_UNUSED) demand_empty_rest_of_line (); - if (coff_sym_name == (char *) NULL) + if (coff_sym_name == NULL) { as_warn (_(".endef pseudo-op used before .def; ignored")); return; } name = coff_sym_name; - coff_sym_name = (char *) NULL; + coff_sym_name = NULL; /* If the symbol is a static or external, we have already gotten the appropriate type and class, so make sure we don't override those values. This is needed because there are some type and classes that are not in COFF, such as short data, etc. */ - if (coff_sym_value != (symbolS *) NULL) + if (coff_sym_value != NULL) { coff_symbol_typ = st_Nil; coff_storage_class = sc_Nil; } - coff_type.extra_sizes = coff_tag != (char *) NULL; + coff_type.extra_sizes = coff_tag != NULL; if (coff_type.num_dims > 0) { int diff = coff_type.num_dims - coff_type.num_sizes; @@ -2874,14 +2853,13 @@ ecoff_directive_endef (int ignore ATTRIBUTE_UNUSED) || coff_type.basic_type == bt_Union || coff_type.basic_type == bt_Enum) { - if (coff_tag == (char *) NULL) + if (coff_tag == NULL) { as_warn (_("no tag specified for %s"), name); return; } - coff_type.tag_ptr = get_tag (coff_tag, (localsym_t *) NULL, - coff_type.basic_type); + coff_type.tag_ptr = get_tag (coff_tag, NULL, coff_type.basic_type); } if (coff_is_function) @@ -2922,7 +2900,7 @@ ecoff_directive_endef (int ignore ATTRIBUTE_UNUSED) that any error reporting above gives the correct name. */ case st_End: free (name); - name = (char *) NULL; + name = NULL; coff_value = 0; coff_inside_enumeration = 0; break; @@ -2940,30 +2918,23 @@ ecoff_directive_endef (int ignore ATTRIBUTE_UNUSED) } /* Add the symbol. */ - sym = add_ecoff_symbol (name, - coff_symbol_typ, - coff_storage_class, - coff_sym_value, - coff_sym_addend, - (symint_t) coff_value, - indx); + sym = add_ecoff_symbol (name, coff_symbol_typ, coff_storage_class, + coff_sym_value, coff_sym_addend, coff_value, indx); /* deal with struct, union, and enum tags. */ if (coff_symbol_typ == st_Block) { /* Create or update the tag information. */ - tag_t *tag_ptr = get_tag (name, - sym, - coff_type.basic_type); + tag_t *tag_ptr = get_tag (name, sym, coff_type.basic_type); forward_t **pf; /* Remember any forward references. */ for (pf = &sym->forward_ref; - *pf != (forward_t *) NULL; + *pf != NULL; pf = &(*pf)->next) ; *pf = tag_ptr->forward_ref; - tag_ptr->forward_ref = (forward_t *) NULL; + tag_ptr->forward_ref = NULL; } } @@ -2976,14 +2947,14 @@ ecoff_directive_end (int ignore ATTRIBUTE_UNUSED) char name_end; symbolS *ent; - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) { as_warn (_(".end directive without a preceding .file directive")); demand_empty_rest_of_line (); return; } - if (cur_proc_ptr == (proc_t *) NULL) + if (cur_proc_ptr == NULL) { as_warn (_(".end directive without a preceding .ent directive")); demand_empty_rest_of_line (); @@ -3005,19 +2976,19 @@ ecoff_directive_end (int ignore ATTRIBUTE_UNUSED) current location, and put in the offset when we write out the symbol. */ ent = symbol_find (name); - if (ent == (symbolS *) NULL) + if (ent == NULL) as_warn (_(".end directive names unknown symbol")); else - (void) add_ecoff_symbol ((const char *) NULL, st_End, sc_Text, + (void) add_ecoff_symbol (NULL, st_End, sc_Text, symbol_new (FAKE_LABEL_NAME, now_seg, frag_now, frag_now_fix ()), - (bfd_vma) 0, (symint_t) 0, (symint_t) 0); + 0, 0, 0); #ifdef md_flush_pending_output md_flush_pending_output (); #endif - cur_proc_ptr = (proc_t *) NULL; + cur_proc_ptr = NULL; (void) restore_line_pointer (name_end); demand_empty_rest_of_line (); @@ -3031,10 +3002,10 @@ ecoff_directive_ent (int aent) char *name; char name_end; - if (cur_file_ptr == (efdr_t *) NULL) - add_file ((const char *) NULL, 0, 1); + if (cur_file_ptr == NULL) + add_file (NULL, 0, 1); - if (!aent && cur_proc_ptr != (proc_t *) NULL) + if (!aent && cur_proc_ptr != NULL) { as_warn (_("second .ent directive found before .end directive")); demand_empty_rest_of_line (); @@ -3104,7 +3075,7 @@ ecoff_directive_file (int ignore ATTRIBUTE_UNUSED) char *name; int len; - if (cur_proc_ptr != (proc_t *) NULL) + if (cur_proc_ptr != NULL) { as_warn (_("no way to handle .file within .ent/.end section")); demand_empty_rest_of_line (); @@ -3128,7 +3099,7 @@ ecoff_directive_fmask (int ignore ATTRIBUTE_UNUSED) { long val; - if (cur_proc_ptr == (proc_t *) NULL) + if (cur_proc_ptr == NULL) { as_warn (_(".fmask outside of .ent")); demand_empty_rest_of_line (); @@ -3156,7 +3127,7 @@ ecoff_directive_frame (int ignore ATTRIBUTE_UNUSED) { long val; - if (cur_proc_ptr == (proc_t *) NULL) + if (cur_proc_ptr == NULL) { as_warn (_(".frame outside of .ent")); demand_empty_rest_of_line (); @@ -3192,7 +3163,7 @@ ecoff_directive_mask (int ignore ATTRIBUTE_UNUSED) { long val; - if (cur_proc_ptr == (proc_t *) NULL) + if (cur_proc_ptr == NULL) { as_warn (_(".mask outside of .ent")); demand_empty_rest_of_line (); @@ -3221,7 +3192,7 @@ ecoff_directive_loc (int ignore ATTRIBUTE_UNUSED) lineno_list_t *list; symint_t lineno; - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) { as_warn (_(".loc before .file")); demand_empty_rest_of_line (); @@ -3251,16 +3222,16 @@ ecoff_directive_loc (int ignore ATTRIBUTE_UNUSED) ECOFF line number info. */ if (stabs_seen) { - (void) add_ecoff_symbol ((char *) NULL, st_Label, sc_Text, + (void) add_ecoff_symbol (NULL, st_Label, sc_Text, symbol_new (FAKE_LABEL_NAME, now_seg, frag_now, frag_now_fix ()), - (bfd_vma) 0, 0, lineno); + 0, 0, lineno); return; } list = allocate_lineno_list (); - list->next = (lineno_list_t *) NULL; + list->next = NULL; list->file = cur_file_ptr; list->proc = cur_proc_ptr; list->frag = frag_now; @@ -3273,12 +3244,12 @@ ecoff_directive_loc (int ignore ATTRIBUTE_UNUSED) /* A .loc directive will sometimes appear before a .ent directive, which means that cur_proc_ptr will be NULL here. Arrange to patch this up. */ - if (cur_proc_ptr == (proc_t *) NULL) + if (cur_proc_ptr == NULL) { lineno_list_t **pl; pl = &noproc_lineno; - while (*pl != (lineno_list_t *) NULL) + while (*pl != NULL) pl = &(*pl)->next; *pl = list; } @@ -3315,9 +3286,7 @@ mark_stabs (int ignore ATTRIBUTE_UNUSED) { /* Add a dummy @stabs symbol. */ stabs_seen = 1; - (void) add_ecoff_symbol (stabs_symbol, st_Nil, sc_Info, - (symbolS *) NULL, - (bfd_vma) 0, (symint_t) -1, + (void) add_ecoff_symbol (stabs_symbol, st_Nil, sc_Info, NULL, 0, -1, ECOFF_MARK_STAB (0)); } } @@ -3436,9 +3405,9 @@ ecoff_stab (int what, as_warn (_(".stab%c: ignoring non-zero other field"), what); /* Make sure we have a current file. */ - if (cur_file_ptr == (efdr_t *) NULL) + if (cur_file_ptr == NULL) { - add_file ((const char *) NULL, 0, 1); + add_file (NULL, 0, 1); save_file_ptr = cur_file_ptr; } @@ -3461,7 +3430,7 @@ ecoff_stab (int what, #ifndef NO_LISTING if (listing) - listing_source_line ((unsigned int) desc); + listing_source_line (desc); #endif dummy_symr.index = desc; @@ -3495,11 +3464,11 @@ ecoff_stab (int what, { st = st_Nil; sc = sc_Nil; - sym = (symbolS *) NULL; + sym = NULL; value = get_absolute_expression (); addend = 0; } - else if (! is_name_beginner ((unsigned char) *input_line_pointer)) + else if (! is_name_beginner (*input_line_pointer)) { as_warn (_("illegal .stab%c directive, bad character"), what); return; @@ -3538,12 +3507,12 @@ ecoff_stab (int what, /* Don't store the stabs symbol we are creating as the type of the ECOFF symbol. We want to compute the type of the ECOFF symbol independently. */ - if (sym != (symbolS *) NULL) + if (sym != NULL) hold = symbol_get_obj (sym)->ecoff_symbol; (void) add_ecoff_symbol (string, st, sc, sym, addend, value, indx); - if (sym != (symbolS *) NULL) + if (sym != NULL) symbol_get_obj (sym)->ecoff_symbol = hold; /* Restore normal file type. */ @@ -3615,7 +3584,7 @@ ecoff_padding_adjust (const struct ecoff_debug_swap *backend, (void) ecoff_add_bytes (buf, bufend, *buf + offset, add); memset (*buf + offset, 0, add); offset += add; - if (bufptrptr != (char **) NULL) + if (bufptrptr != NULL) *bufptrptr = *buf + offset; } @@ -3642,14 +3611,14 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, lineno_list_t first; lineno_list_t *local_first_lineno = first_lineno; - if (linecntptr != (long *) NULL) + if (linecntptr != NULL) *linecntptr = 0; bufptr = *buf + offset; - file = (efdr_t *) NULL; - proc = (proc_t *) NULL; - last = (lineno_list_t *) NULL; + file = NULL; + proc = NULL; + last = NULL; c = offset; iline = 0; totcount = 0; @@ -3667,8 +3636,8 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, Don't do this for ECOFF assembly source line numbers. They work without this extra attention. */ if (debug_type != DEBUG_ECOFF - && first_proc_ptr != (proc_t *) NULL - && local_first_lineno != (lineno_list_t *) NULL + && first_proc_ptr != NULL + && local_first_lineno != NULL && ((S_GET_VALUE (first_proc_ptr->sym->as_sym) + bfd_section_vma (S_GET_SEGMENT (first_proc_ptr->sym->as_sym))) != 0)) @@ -3683,7 +3652,7 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, local_first_lineno = &first; } - for (l = local_first_lineno; l != (lineno_list_t *) NULL; l = l->next) + for (l = local_first_lineno; l != NULL; l = l->next) { long count; long delta; @@ -3691,7 +3660,7 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, /* Get the offset to the memory address of the next line number (in words). Do this first, so that we can skip ahead to the next useful line number entry. */ - if (l->next == (lineno_list_t *) NULL) + if (l->next == NULL) { /* We want a count of zero, but it will be decremented before it is used. */ @@ -3700,9 +3669,8 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, else if (l->next->frag->fr_address + l->next->paddr > l->frag->fr_address + l->paddr) { - count = ((l->next->frag->fr_address + l->next->paddr - - (l->frag->fr_address + l->paddr)) - >> 2); + count = (l->next->frag->fr_address + l->next->paddr + - (l->frag->fr_address + l->paddr)) >> 2; } else { @@ -3712,13 +3680,13 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, if (l->file != file || l->proc != proc) { - if (l->proc != proc && proc != (proc_t *) NULL) + if (l->proc != proc && proc != NULL) proc->pdr.lnHigh = last->lineno; - if (l->file != file && file != (efdr_t *) NULL) + if (l->file != file && file != NULL) { file->fdr.cbLine = c - file->fdr.cbLineOffset; file->fdr.cline = totcount + count; - if (linecntptr != (long *) NULL) + if (linecntptr != NULL) *linecntptr += totcount + count; totcount = 0; } @@ -3728,7 +3696,7 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, efdr_t *last_file = file; file = l->file; - if (last_file != (efdr_t *) NULL) + if (last_file != NULL) file->fdr.ilineBase = last_file->fdr.ilineBase + last_file->fdr.cline; else @@ -3738,7 +3706,7 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, if (l->proc != proc) { proc = l->proc; - if (proc != (proc_t *) NULL) + if (proc != NULL) { proc->pdr.lnLow = l->lineno; proc->pdr.cbLineOffset = c - file->fdr.cbLineOffset; @@ -3746,13 +3714,13 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, } } - last = (lineno_list_t *) NULL; + last = NULL; } totcount += count; /* Get the offset to this line number. */ - if (last == (lineno_list_t *) NULL) + if (last == NULL) delta = 0; else delta = l->lineno - last->lineno; @@ -3816,7 +3784,7 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, while (count > 0) { if (bufptr >= *bufend) - bufptr = ecoff_add_bytes (buf, bufend, bufptr, (long) 1); + bufptr = ecoff_add_bytes (buf, bufend, bufptr, 1); /* 1 is added to each count read. */ --count; if (count > 0x0f) @@ -3836,15 +3804,15 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, last = l; } - if (proc != (proc_t *) NULL) + if (proc != NULL) proc->pdr.lnHigh = last->lineno; - if (file != (efdr_t *) NULL) + if (file != NULL) { file->fdr.cbLine = c - file->fdr.cbLineOffset; file->fdr.cline = totcount; } - if (linecntptr != (long *) NULL) + if (linecntptr != NULL) *linecntptr += totcount; c = ecoff_padding_adjust (backend, buf, bufend, c, &bufptr); @@ -3873,7 +3841,7 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, /* The symbols are stored by file. */ for (file_link = file_desc.first; - file_link != (vlinks_t *) NULL; + file_link != NULL; file_link = file_link->next) { int ifilesym; @@ -3881,7 +3849,7 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, efdr_t *fil_ptr; efdr_t *fil_end; - if (file_link->next == (vlinks_t *) NULL) + if (file_link->next == NULL) fil_cnt = file_desc.objects_last_page; else fil_cnt = file_desc.objects_per_page; @@ -3894,14 +3862,14 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, fil_ptr->fdr.isymBase = isym; ifilesym = isym; for (sym_link = fil_ptr->symbols.first; - sym_link != (vlinks_t *) NULL; + sym_link != NULL; sym_link = sym_link->next) { int sym_cnt; localsym_t *sym_ptr; localsym_t *sym_end; - if (sym_link->next == (vlinks_t *) NULL) + if (sym_link->next == NULL) sym_cnt = fil_ptr->symbols.objects_last_page; else sym_cnt = fil_ptr->symbols.objects_per_page; @@ -3924,7 +3892,7 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, information for the external). */ local = 1; as_sym = sym_ptr->as_sym; - if (as_sym != (symbolS *) NULL) + if (as_sym != NULL) { symint_t indx; @@ -3934,12 +3902,12 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, we must offset it by the vma of the section, just as BFD does, because BFD will not see this value). */ - if (sym_ptr->ecoff_sym.asym.st == (int) st_Block - && sym_ptr->ecoff_sym.asym.sc == (int) sc_Text) + if (sym_ptr->ecoff_sym.asym.st == st_Block + && sym_ptr->ecoff_sym.asym.sc == sc_Text) { symbolS *begin_sym; - know (sym_ptr->proc_ptr != (proc_t *) NULL); + know (sym_ptr->proc_ptr != NULL); begin_sym = sym_ptr->proc_ptr->sym->as_sym; if (S_GET_SEGMENT (as_sym) != S_GET_SEGMENT (begin_sym)) @@ -4046,8 +4014,8 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, sc = sc_Data; } - sym_ptr->ecoff_sym.asym.st = (int) st; - sym_ptr->ecoff_sym.asym.sc = (int) sc; + sym_ptr->ecoff_sym.asym.st = st; + sym_ptr->ecoff_sym.asym.sc = sc; } /* This is just an external symbol if it is @@ -4059,8 +4027,8 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, if ((S_IS_EXTERNAL (as_sym) || S_IS_WEAK (as_sym) || ! S_IS_DEFINED (as_sym)) - && sym_ptr->proc_ptr == (proc_t *) NULL - && sym_ptr->ecoff_sym.asym.st != (int) st_Nil + && sym_ptr->proc_ptr == NULL + && sym_ptr->ecoff_sym.asym.st != st_Nil && ! ECOFF_IS_STAB (&sym_ptr->ecoff_sym.asym)) local = 0; @@ -4080,13 +4048,13 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, add_string (&fil_ptr->strings, fil_ptr->str_hash, sym_ptr->name, - (shash_t **) NULL); + NULL); } /* We now know the index of this symbol; fill in locations that have been waiting for that information. */ - if (sym_ptr->begin_ptr != (localsym_t *) NULL) + if (sym_ptr->begin_ptr != NULL) { localsym_t *begin_ptr; st_t begin_type; @@ -4095,7 +4063,7 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, begin_ptr = sym_ptr->begin_ptr; know (begin_ptr->sym_index != -1); sym_ptr->ecoff_sym.asym.index = begin_ptr->sym_index; - if (sym_ptr->ecoff_sym.asym.sc != (int) sc_Info) + if (sym_ptr->ecoff_sym.asym.sc != sc_Info) sym_ptr->ecoff_sym.asym.iss = begin_ptr->ecoff_sym.asym.iss; @@ -4114,7 +4082,7 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, } else { - know (begin_ptr->index_ptr != (aux_t *) NULL); + know (begin_ptr->index_ptr != NULL); begin_ptr->index_ptr->data.isym = isym - ifilesym + 1; } @@ -4127,8 +4095,8 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, if (begin_type == st_Proc || begin_type == st_StaticProc) { - know (as_sym != (symbolS *) NULL); - know (begin_ptr->as_sym != (symbolS *) NULL); + know (as_sym != NULL); + know (begin_ptr->as_sym != NULL); if (S_GET_SEGMENT (as_sym) != S_GET_SEGMENT (begin_ptr->as_sym)) as_warn (_(".begin/.bend in different segments")); @@ -4147,12 +4115,12 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, #endif } else if (begin_type == st_Block - && sym_ptr->ecoff_sym.asym.sc != (int) sc_Info) + && sym_ptr->ecoff_sym.asym.sc != sc_Info) { symbolS *begin_sym; - know (as_sym != (symbolS *) NULL); - know (sym_ptr->proc_ptr != (proc_t *) NULL); + know (as_sym != NULL); + know (sym_ptr->proc_ptr != NULL); begin_sym = sym_ptr->proc_ptr->sym->as_sym; if (S_GET_SEGMENT (as_sym) != S_GET_SEGMENT (begin_sym)) @@ -4163,7 +4131,7 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, } for (f = sym_ptr->forward_ref; - f != (forward_t *) NULL; + f != NULL; f = f->next) { know (local); @@ -4183,7 +4151,7 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, sym_ptr->sym_index = isym; - if (sym_ptr->proc_ptr != (proc_t *) NULL + if (sym_ptr->proc_ptr != NULL && sym_ptr->proc_ptr->sym == sym_ptr) sym_ptr->proc_ptr->pdr.isym = isym - ifilesym; @@ -4193,7 +4161,7 @@ ecoff_build_symbols (const struct ecoff_debug_swap *backend, /* Record the local symbol index and file number in case this is an external symbol. Note that this destroys the asym.index field. */ - if (as_sym != (symbolS *) NULL + if (as_sym != NULL && symbol_get_obj (as_sym)->ecoff_symbol == sym_ptr) { if ((sym_ptr->ecoff_sym.asym.st == st_Proc @@ -4237,14 +4205,14 @@ ecoff_build_procs (const struct ecoff_debug_swap *backend, /* The procedures are stored by file. */ for (file_link = file_desc.first; - file_link != (vlinks_t *) NULL; + file_link != NULL; file_link = file_link->next) { int fil_cnt; efdr_t *fil_ptr; efdr_t *fil_end; - if (file_link->next == (vlinks_t *) NULL) + if (file_link->next == NULL) fil_cnt = file_desc.objects_last_page; else fil_cnt = file_desc.objects_per_page; @@ -4258,14 +4226,14 @@ ecoff_build_procs (const struct ecoff_debug_swap *backend, fil_ptr->fdr.ipdFirst = iproc; first = 1; for (proc_link = fil_ptr->procs.first; - proc_link != (vlinks_t *) NULL; + proc_link != NULL; proc_link = proc_link->next) { int prc_cnt; proc_t *proc_ptr; proc_t *proc_end; - if (proc_link->next == (vlinks_t *) NULL) + if (proc_link->next == NULL) prc_cnt = fil_ptr->procs.objects_last_page; else prc_cnt = fil_ptr->procs.objects_per_page; @@ -4326,14 +4294,14 @@ ecoff_build_aux (const struct ecoff_debug_swap *backend, /* The aux entries are stored by file. */ for (file_link = file_desc.first; - file_link != (vlinks_t *) NULL; + file_link != NULL; file_link = file_link->next) { int fil_cnt; efdr_t *fil_ptr; efdr_t *fil_end; - if (file_link->next == (vlinks_t *) NULL) + if (file_link->next == NULL) fil_cnt = file_desc.objects_last_page; else fil_cnt = file_desc.objects_per_page; @@ -4346,14 +4314,14 @@ ecoff_build_aux (const struct ecoff_debug_swap *backend, fil_ptr->fdr.fBigendian = bigendian; fil_ptr->fdr.iauxBase = iaux; for (aux_link = fil_ptr->aux_syms.first; - aux_link != (vlinks_t *) NULL; + aux_link != NULL; aux_link = aux_link->next) { int aux_cnt; aux_t *aux_ptr; aux_t *aux_end; - if (aux_link->next == (vlinks_t *) NULL) + if (aux_link->next == NULL) aux_cnt = fil_ptr->aux_syms.objects_last_page; else aux_cnt = fil_ptr->aux_syms.objects_per_page; @@ -4415,7 +4383,7 @@ ecoff_build_aux (const struct ecoff_debug_swap *backend, return ecoff_padding_adjust (backend, buf, bufend, offset + iaux * sizeof (union aux_ext), - (char **) NULL); + NULL); } /* Copy out the strings from a varray_t. This returns the number of @@ -4436,12 +4404,12 @@ ecoff_build_strings (char **buf, istr = 0; for (str_link = vp->first; - str_link != (vlinks_t *) NULL; + str_link != NULL; str_link = str_link->next) { unsigned long str_cnt; - if (str_link->next == (vlinks_t *) NULL) + if (str_link->next == NULL) str_cnt = vp->objects_last_page; else str_cnt = vp->objects_per_page; @@ -4471,14 +4439,14 @@ ecoff_build_ss (const struct ecoff_debug_swap *backend, iss = 0; for (file_link = file_desc.first; - file_link != (vlinks_t *) NULL; + file_link != NULL; file_link = file_link->next) { int fil_cnt; efdr_t *fil_ptr; efdr_t *fil_end; - if (file_link->next == (vlinks_t *) NULL) + if (file_link->next == NULL) fil_cnt = file_desc.objects_last_page; else fil_cnt = file_desc.objects_per_page; @@ -4496,8 +4464,7 @@ ecoff_build_ss (const struct ecoff_debug_swap *backend, } } - return ecoff_padding_adjust (backend, buf, bufend, offset + iss, - (char **) NULL); + return ecoff_padding_adjust (backend, buf, bufend, offset + iss, NULL); } /* Swap out the file descriptors. */ @@ -4520,14 +4487,14 @@ ecoff_build_fdr (const struct ecoff_debug_swap *backend, fdr_out = *buf + offset; for (file_link = file_desc.first; - file_link != (vlinks_t *) NULL; + file_link != NULL; file_link = file_link->next) { int fil_cnt; efdr_t *fil_ptr; efdr_t *fil_end; - if (file_link->next == (vlinks_t *) NULL) + if (file_link->next == NULL) fil_cnt = file_desc.objects_last_page; else fil_cnt = file_desc.objects_per_page; @@ -4556,7 +4523,7 @@ ecoff_setup_ext (void) { symbolS *sym; - for (sym = symbol_rootP; sym != (symbolS *) NULL; sym = symbol_next (sym)) + for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym)) { if (symbol_get_obj (sym)->ecoff_symbol == NULL) continue; @@ -4570,8 +4537,8 @@ ecoff_setup_ext (void) lsym = symbol_get_obj (sym)->ecoff_symbol; lsym->ecoff_sym.asym.value = 0; - lsym->ecoff_sym.asym.st = (int) st_Nil; - lsym->ecoff_sym.asym.sc = (int) sc_Nil; + lsym->ecoff_sym.asym.st = st_Nil; + lsym->ecoff_sym.asym.sc = sc_Nil; lsym->ecoff_sym.asym.index = indexNil; } @@ -4599,15 +4566,15 @@ ecoff_build_debug (HDRR *hdr, unsigned long offset; /* Make sure we have a file. */ - if (first_file == (efdr_t *) NULL) - add_file ((const char *) NULL, 0, 1); + if (first_file == NULL) + add_file (NULL, 0, 1); /* Handle any top level tags. */ for (ptag = top_tag_head->first_tag; - ptag != (tag_t *) NULL; + ptag != NULL; ptag = ptag_next) { - if (ptag->forward_ref != (forward_t *) NULL) + if (ptag->forward_ref != NULL) add_unknown_tag (ptag); ptag_next = ptag->same_block; @@ -4621,17 +4588,17 @@ ecoff_build_debug (HDRR *hdr, symbol that has not already received it. */ hold_file_ptr = cur_file_ptr; hold_proc_ptr = cur_proc_ptr; - cur_proc_ptr = (proc_t *) NULL; - for (sym = symbol_rootP; sym != (symbolS *) NULL; sym = symbol_next (sym)) + cur_proc_ptr = NULL; + for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym)) { if (symbol_get_obj (sym)->ecoff_symbol != NULL - || symbol_get_obj (sym)->ecoff_file == (efdr_t *) NULL + || symbol_get_obj (sym)->ecoff_file == NULL || (symbol_get_bfdsym (sym)->flags & BSF_SECTION_SYM) != 0) continue; cur_file_ptr = symbol_get_obj (sym)->ecoff_file; - add_ecoff_symbol ((const char *) NULL, st_Nil, sc_Nil, sym, - (bfd_vma) 0, S_GET_VALUE (sym), indexNil); + add_ecoff_symbol (NULL, st_Nil, sc_Nil, sym, + 0, S_GET_VALUE (sym), indexNil); } cur_proc_ptr = hold_proc_ptr; cur_file_ptr = hold_file_ptr; @@ -4641,12 +4608,12 @@ ecoff_build_debug (HDRR *hdr, files. */ end_warning = 0; for (fil_ptr = first_file; - fil_ptr != (efdr_t *) NULL; + fil_ptr != NULL; fil_ptr = fil_ptr->next_file) { cur_file_ptr = fil_ptr; - while (cur_file_ptr->cur_scope != (scope_t *) NULL - && cur_file_ptr->cur_scope->prev != (scope_t *) NULL) + while (cur_file_ptr->cur_scope != NULL + && cur_file_ptr->cur_scope->prev != NULL) { cur_file_ptr->cur_scope = cur_file_ptr->cur_scope->prev; if (! end_warning && ! cur_file_ptr->fake) @@ -4655,13 +4622,8 @@ ecoff_build_debug (HDRR *hdr, end_warning = 1; } } - if (cur_file_ptr->cur_scope != (scope_t *) NULL) - (void) add_ecoff_symbol ((const char *) NULL, - st_End, sc_Text, - (symbolS *) NULL, - (bfd_vma) 0, - (symint_t) 0, - (symint_t) 0); + if (cur_file_ptr->cur_scope != NULL) + (void) add_ecoff_symbol (NULL, st_End, sc_Text, NULL, 0, 0, 0); } /* Build the symbolic information. */ @@ -4750,7 +4712,7 @@ ecoff_build_debug (HDRR *hdr, static page_type * allocate_cluster (unsigned long npages) { - page_type *value = (page_type *) xmalloc (npages * PAGE_USIZE); + page_type *value = xmalloc (npages * PAGE_USIZE); #ifdef ECOFF_DEBUG if (debug > 3) @@ -4803,23 +4765,23 @@ allocate_scope (void) #ifndef MALLOC_CHECK - ptr = alloc_counts[(int) alloc_type_scope].free_list.f_scope; - if (ptr != (scope_t *) NULL) - alloc_counts[(int) alloc_type_scope].free_list.f_scope = ptr->free; + ptr = alloc_counts[alloc_type_scope].free_list.f_scope; + if (ptr != NULL) + alloc_counts[alloc_type_scope].free_list.f_scope = ptr->free; else { - int unallocated = alloc_counts[(int) alloc_type_scope].unallocated; - page_type *cur_page = alloc_counts[(int) alloc_type_scope].cur_page; + int unallocated = alloc_counts[alloc_type_scope].unallocated; + page_type *cur_page = alloc_counts[alloc_type_scope].cur_page; if (unallocated == 0) { unallocated = PAGE_SIZE / sizeof (scope_t); - alloc_counts[(int) alloc_type_scope].cur_page = cur_page = allocate_page (); - alloc_counts[(int) alloc_type_scope].total_pages++; + alloc_counts[alloc_type_scope].cur_page = cur_page = allocate_page (); + alloc_counts[alloc_type_scope].total_pages++; } ptr = &cur_page->scope[--unallocated]; - alloc_counts[(int) alloc_type_scope].unallocated = unallocated; + alloc_counts[alloc_type_scope].unallocated = unallocated; } #else @@ -4828,7 +4790,7 @@ allocate_scope (void) #endif - alloc_counts[(int) alloc_type_scope].total_alloc++; + alloc_counts[alloc_type_scope].total_alloc++; memset (ptr, 0, sizeof (*ptr)); return ptr; } @@ -4838,13 +4800,13 @@ allocate_scope (void) static void free_scope (scope_t *ptr) { - alloc_counts[(int) alloc_type_scope].total_free++; + alloc_counts[alloc_type_scope].total_free++; #ifndef MALLOC_CHECK - ptr->free = alloc_counts[(int) alloc_type_scope].free_list.f_scope; - alloc_counts[(int) alloc_type_scope].free_list.f_scope = ptr; + ptr->free = alloc_counts[alloc_type_scope].free_list.f_scope; + alloc_counts[alloc_type_scope].free_list.f_scope = ptr; #else - free ((void *) ptr); + free (ptr); #endif } @@ -4857,18 +4819,18 @@ allocate_vlinks (void) #ifndef MALLOC_CHECK - int unallocated = alloc_counts[(int) alloc_type_vlinks].unallocated; - page_type *cur_page = alloc_counts[(int) alloc_type_vlinks].cur_page; + int unallocated = alloc_counts[alloc_type_vlinks].unallocated; + page_type *cur_page = alloc_counts[alloc_type_vlinks].cur_page; if (unallocated == 0) { unallocated = PAGE_SIZE / sizeof (vlinks_t); - alloc_counts[(int) alloc_type_vlinks].cur_page = cur_page = allocate_page (); - alloc_counts[(int) alloc_type_vlinks].total_pages++; + alloc_counts[alloc_type_vlinks].cur_page = cur_page = allocate_page (); + alloc_counts[alloc_type_vlinks].total_pages++; } ptr = &cur_page->vlinks[--unallocated]; - alloc_counts[(int) alloc_type_vlinks].unallocated = unallocated; + alloc_counts[alloc_type_vlinks].unallocated = unallocated; #else @@ -4876,7 +4838,7 @@ allocate_vlinks (void) #endif - alloc_counts[(int) alloc_type_vlinks].total_alloc++; + alloc_counts[alloc_type_vlinks].total_alloc++; memset (ptr, 0, sizeof (*ptr)); return ptr; } @@ -4890,18 +4852,18 @@ allocate_shash (void) #ifndef MALLOC_CHECK - int unallocated = alloc_counts[(int) alloc_type_shash].unallocated; - page_type *cur_page = alloc_counts[(int) alloc_type_shash].cur_page; + int unallocated = alloc_counts[alloc_type_shash].unallocated; + page_type *cur_page = alloc_counts[alloc_type_shash].cur_page; if (unallocated == 0) { unallocated = PAGE_SIZE / sizeof (shash_t); - alloc_counts[(int) alloc_type_shash].cur_page = cur_page = allocate_page (); - alloc_counts[(int) alloc_type_shash].total_pages++; + alloc_counts[alloc_type_shash].cur_page = cur_page = allocate_page (); + alloc_counts[alloc_type_shash].total_pages++; } ptr = &cur_page->shash[--unallocated]; - alloc_counts[(int) alloc_type_shash].unallocated = unallocated; + alloc_counts[alloc_type_shash].unallocated = unallocated; #else @@ -4909,7 +4871,7 @@ allocate_shash (void) #endif - alloc_counts[(int) alloc_type_shash].total_alloc++; + alloc_counts[alloc_type_shash].total_alloc++; memset (ptr, 0, sizeof (*ptr)); return ptr; } @@ -4923,18 +4885,18 @@ allocate_thash (void) #ifndef MALLOC_CHECK - int unallocated = alloc_counts[(int) alloc_type_thash].unallocated; - page_type *cur_page = alloc_counts[(int) alloc_type_thash].cur_page; + int unallocated = alloc_counts[alloc_type_thash].unallocated; + page_type *cur_page = alloc_counts[alloc_type_thash].cur_page; if (unallocated == 0) { unallocated = PAGE_SIZE / sizeof (thash_t); - alloc_counts[(int) alloc_type_thash].cur_page = cur_page = allocate_page (); - alloc_counts[(int) alloc_type_thash].total_pages++; + alloc_counts[alloc_type_thash].cur_page = cur_page = allocate_page (); + alloc_counts[alloc_type_thash].total_pages++; } ptr = &cur_page->thash[--unallocated]; - alloc_counts[(int) alloc_type_thash].unallocated = unallocated; + alloc_counts[alloc_type_thash].unallocated = unallocated; #else @@ -4942,7 +4904,7 @@ allocate_thash (void) #endif - alloc_counts[(int) alloc_type_thash].total_alloc++; + alloc_counts[alloc_type_thash].total_alloc++; memset (ptr, 0, sizeof (*ptr)); return ptr; } @@ -4956,23 +4918,23 @@ allocate_tag (void) #ifndef MALLOC_CHECK - ptr = alloc_counts[(int) alloc_type_tag].free_list.f_tag; - if (ptr != (tag_t *) NULL) - alloc_counts[(int) alloc_type_tag].free_list.f_tag = ptr->free; + ptr = alloc_counts[alloc_type_tag].free_list.f_tag; + if (ptr != NULL) + alloc_counts[alloc_type_tag].free_list.f_tag = ptr->free; else { - int unallocated = alloc_counts[(int) alloc_type_tag].unallocated; - page_type *cur_page = alloc_counts[(int) alloc_type_tag].cur_page; + int unallocated = alloc_counts[alloc_type_tag].unallocated; + page_type *cur_page = alloc_counts[alloc_type_tag].cur_page; if (unallocated == 0) { unallocated = PAGE_SIZE / sizeof (tag_t); - alloc_counts[(int) alloc_type_tag].cur_page = cur_page = allocate_page (); - alloc_counts[(int) alloc_type_tag].total_pages++; + alloc_counts[alloc_type_tag].cur_page = cur_page = allocate_page (); + alloc_counts[alloc_type_tag].total_pages++; } ptr = &cur_page->tag[--unallocated]; - alloc_counts[(int) alloc_type_tag].unallocated = unallocated; + alloc_counts[alloc_type_tag].unallocated = unallocated; } #else @@ -4981,7 +4943,7 @@ allocate_tag (void) #endif - alloc_counts[(int) alloc_type_tag].total_alloc++; + alloc_counts[alloc_type_tag].total_alloc++; memset (ptr, 0, sizeof (*ptr)); return ptr; } @@ -4991,13 +4953,13 @@ allocate_tag (void) static void free_tag (tag_t *ptr) { - alloc_counts[(int) alloc_type_tag].total_free++; + alloc_counts[alloc_type_tag].total_free++; #ifndef MALLOC_CHECK - ptr->free = alloc_counts[(int) alloc_type_tag].free_list.f_tag; - alloc_counts[(int) alloc_type_tag].free_list.f_tag = ptr; + ptr->free = alloc_counts[alloc_type_tag].free_list.f_tag; + alloc_counts[alloc_type_tag].free_list.f_tag = ptr; #else - free ((PTR_T) ptr); + free (ptr); #endif } @@ -5010,18 +4972,18 @@ allocate_forward (void) #ifndef MALLOC_CHECK - int unallocated = alloc_counts[(int) alloc_type_forward].unallocated; - page_type *cur_page = alloc_counts[(int) alloc_type_forward].cur_page; + int unallocated = alloc_counts[alloc_type_forward].unallocated; + page_type *cur_page = alloc_counts[alloc_type_forward].cur_page; if (unallocated == 0) { unallocated = PAGE_SIZE / sizeof (forward_t); - alloc_counts[(int) alloc_type_forward].cur_page = cur_page = allocate_page (); - alloc_counts[(int) alloc_type_forward].total_pages++; + alloc_counts[alloc_type_forward].cur_page = cur_page = allocate_page (); + alloc_counts[alloc_type_forward].total_pages++; } ptr = &cur_page->forward[--unallocated]; - alloc_counts[(int) alloc_type_forward].unallocated = unallocated; + alloc_counts[alloc_type_forward].unallocated = unallocated; #else @@ -5029,7 +4991,7 @@ allocate_forward (void) #endif - alloc_counts[(int) alloc_type_forward].total_alloc++; + alloc_counts[alloc_type_forward].total_alloc++; memset (ptr, 0, sizeof (*ptr)); return ptr; } @@ -5043,23 +5005,23 @@ allocate_thead (void) #ifndef MALLOC_CHECK - ptr = alloc_counts[(int) alloc_type_thead].free_list.f_thead; - if (ptr != (thead_t *) NULL) - alloc_counts[(int) alloc_type_thead].free_list.f_thead = ptr->free; + ptr = alloc_counts[alloc_type_thead].free_list.f_thead; + if (ptr != NULL) + alloc_counts[alloc_type_thead].free_list.f_thead = ptr->free; else { - int unallocated = alloc_counts[(int) alloc_type_thead].unallocated; - page_type *cur_page = alloc_counts[(int) alloc_type_thead].cur_page; + int unallocated = alloc_counts[alloc_type_thead].unallocated; + page_type *cur_page = alloc_counts[alloc_type_thead].cur_page; if (unallocated == 0) { unallocated = PAGE_SIZE / sizeof (thead_t); - alloc_counts[(int) alloc_type_thead].cur_page = cur_page = allocate_page (); - alloc_counts[(int) alloc_type_thead].total_pages++; + alloc_counts[alloc_type_thead].cur_page = cur_page = allocate_page (); + alloc_counts[alloc_type_thead].total_pages++; } ptr = &cur_page->thead[--unallocated]; - alloc_counts[(int) alloc_type_thead].unallocated = unallocated; + alloc_counts[alloc_type_thead].unallocated = unallocated; } #else @@ -5068,7 +5030,7 @@ allocate_thead (void) #endif - alloc_counts[(int) alloc_type_thead].total_alloc++; + alloc_counts[alloc_type_thead].total_alloc++; memset (ptr, 0, sizeof (*ptr)); return ptr; } @@ -5078,13 +5040,13 @@ allocate_thead (void) static void free_thead (thead_t *ptr) { - alloc_counts[(int) alloc_type_thead].total_free++; + alloc_counts[alloc_type_thead].total_free++; #ifndef MALLOC_CHECK - ptr->free = (thead_t *) alloc_counts[(int) alloc_type_thead].free_list.f_thead; - alloc_counts[(int) alloc_type_thead].free_list.f_thead = ptr; + ptr->free = alloc_counts[alloc_type_thead].free_list.f_thead; + alloc_counts[alloc_type_thead].free_list.f_thead = ptr; #else - free ((PTR_T) ptr); + free (ptr); #endif } @@ -5095,18 +5057,18 @@ allocate_lineno_list (void) #ifndef MALLOC_CHECK - int unallocated = alloc_counts[(int) alloc_type_lineno].unallocated; - page_type *cur_page = alloc_counts[(int) alloc_type_lineno].cur_page; + int unallocated = alloc_counts[alloc_type_lineno].unallocated; + page_type *cur_page = alloc_counts[alloc_type_lineno].cur_page; if (unallocated == 0) { unallocated = PAGE_SIZE / sizeof (lineno_list_t); - alloc_counts[(int) alloc_type_lineno].cur_page = cur_page = allocate_page (); - alloc_counts[(int) alloc_type_lineno].total_pages++; + alloc_counts[alloc_type_lineno].cur_page = cur_page = allocate_page (); + alloc_counts[alloc_type_lineno].total_pages++; } ptr = &cur_page->lineno[--unallocated]; - alloc_counts[(int) alloc_type_lineno].unallocated = unallocated; + alloc_counts[alloc_type_lineno].unallocated = unallocated; #else @@ -5114,7 +5076,7 @@ allocate_lineno_list (void) #endif - alloc_counts[(int) alloc_type_lineno].total_alloc++; + alloc_counts[alloc_type_lineno].total_alloc++; memset (ptr, 0, sizeof (*ptr)); return ptr; } @@ -5138,7 +5100,7 @@ ecoff_set_gp_prolog_size (int sz) int ecoff_no_current_file (void) { - return cur_file_ptr == (efdr_t *) NULL; + return cur_file_ptr == NULL; } void @@ -5150,13 +5112,13 @@ ecoff_generate_asm_lineno (void) filename = as_where (&lineno); - if (current_stabs_filename == (char *) NULL + if (current_stabs_filename == NULL || filename_cmp (current_stabs_filename, filename)) add_file (filename, 0, 1); list = allocate_lineno_list (); - list->next = (lineno_list_t *) NULL; + list->next = NULL; list->file = cur_file_ptr; list->proc = cur_proc_ptr; list->frag = frag_now; @@ -5169,12 +5131,12 @@ ecoff_generate_asm_lineno (void) /* A .loc directive will sometimes appear before a .ent directive, which means that cur_proc_ptr will be NULL here. Arrange to patch this up. */ - if (cur_proc_ptr == (proc_t *) NULL) + if (cur_proc_ptr == NULL) { lineno_list_t **pl; pl = &noproc_lineno; - while (*pl != (lineno_list_t *) NULL) + while (*pl != NULL) pl = &(*pl)->next; *pl = list; } diff --git a/gas/ehopt.c b/gas/ehopt.c index ab976ba..5a9d9d6 100644 --- a/gas/ehopt.c +++ b/gas/ehopt.c @@ -334,7 +334,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes) /* Stop scanning if we don't see the expected FDE fields. */ d->state = state_error; else - d->state = (enum frame_state) (d->state + 1); + d->state++; break; case state_saw_pc_begin: @@ -537,7 +537,7 @@ eh_frame_convert_frag (fragS *frag) int loc4_fix, ca; loc4_frag = (fragS *) frag->fr_opcode; - loc4_fix = (int) frag->fr_offset; + loc4_fix = frag->fr_offset; diff = resolve_symbol_value (frag->fr_symbol); @@ -132,7 +132,7 @@ static unsigned int nr_seen[2]; static symbolS * symbol_lookup_or_make (const char *name, bool start) { - char *buf = concat (start ? ".startof." : ".sizeof.", name, NULL); + char *buf = concat (start ? ".startof." : ".sizeof.", name, (char *) NULL); symbolS *symbolP; unsigned int i; @@ -1880,7 +1880,7 @@ expr (int rankarg, /* Larger # is higher rank. */ know (!is_whitespace (*input_line_pointer)); op_left = operatorf (&op_chars); - while (op_left != O_illegal && op_rank[(int) op_left] > rank) + while (op_left != O_illegal && op_rank[op_left] > rank) { segT rightseg; bool is_unsigned; @@ -1889,7 +1889,7 @@ expr (int rankarg, /* Larger # is higher rank. */ input_line_pointer += op_chars; /* -> after operator. */ right.X_md = 0; - rightseg = expr (op_rank[(int) op_left], &right, mode); + rightseg = expr (op_rank[op_left], &right, mode); if (right.X_op == O_absent) { as_warn (_("missing operand; zero assumed")); @@ -1915,12 +1915,12 @@ expr (int rankarg, /* Larger # is higher rank. */ op_right = operatorf (&op_chars); know (op_right == O_illegal || op_left == O_index - || op_rank[(int) op_right] <= op_rank[(int) op_left]); - know ((int) op_left >= (int) O_multiply); + || op_rank[op_right] <= op_rank[op_left]); + know (op_left >= O_multiply); #ifndef md_operator - know ((int) op_left <= (int) O_index); + know (op_left <= O_index); #else - know ((int) op_left < (int) O_max); + know (op_left < O_max); #endif /* input_line_pointer->after right-hand quantity. */ @@ -1991,8 +1991,8 @@ expr (int rankarg, /* Larger # is higher rank. */ symbol_get_frag (right.X_add_symbol), &frag_off)) { - offsetT symval_diff = S_GET_VALUE (resultP->X_add_symbol) - - S_GET_VALUE (right.X_add_symbol); + offsetT symval_diff = (S_GET_VALUE (resultP->X_add_symbol) + - S_GET_VALUE (right.X_add_symbol)); subtract_from_result (resultP, right.X_add_number, right.X_extrabit); subtract_from_result (resultP, frag_off / OCTETS_PER_BYTE, 0); add_to_result (resultP, symval_diff, symval_diff < 0); diff --git a/gas/flonum-copy.c b/gas/flonum-copy.c index b755495..5c37ad3 100644 --- a/gas/flonum-copy.c +++ b/gas/flonum-copy.c @@ -46,12 +46,11 @@ flonum_copy (FLONUM_TYPE *in, FLONUM_TYPE *out) and wasting time, so why bother??? */ if (in_length < out_length) { - memset ((char *) (out->low + in_length + 1), '\0', - out_length - in_length); + memset (out->low + in_length + 1, 0, out_length - in_length); } } - memcpy ((void *) (out->low), (void *) (in->low), - ((in_length + 1) * sizeof (LITTLENUM_TYPE))); + memcpy (out->low, in->low, + (in_length + 1) * sizeof (LITTLENUM_TYPE)); out->exponent = in->exponent; out->leader = in->leader - in->low + out->low; } @@ -61,8 +60,8 @@ flonum_copy (FLONUM_TYPE *in, FLONUM_TYPE *out) shorten = in_length - out_length; /* Assume out_length >= 0 ! */ - memcpy ((void *) (out->low), (void *) (in->low + shorten), - ((out_length + 1) * sizeof (LITTLENUM_TYPE))); + memcpy (out->low, in->low + shorten, + (out_length + 1) * sizeof (LITTLENUM_TYPE)); out->leader = out->high; out->exponent = in->exponent + shorten; } diff --git a/gas/frags.c b/gas/frags.c index 129c27f..0ad1240 100644 --- a/gas/frags.c +++ b/gas/frags.c @@ -81,7 +81,7 @@ frag_alloc (struct obstack *ob, size_t extra) (void) obstack_alloc (ob, 0); oalign = obstack_alignment_mask (ob); obstack_alignment_mask (ob) = 0; - ptr = (fragS *) obstack_alloc (ob, extra + SIZEOF_STRUCT_FRAG); + ptr = obstack_alloc (ob, extra + SIZEOF_STRUCT_FRAG); obstack_alignment_mask (ob) = oalign; memset (ptr, 0, SIZEOF_STRUCT_FRAG); totalfrags++; @@ -325,8 +325,7 @@ frag_align (int alignment, int fill_character, int max) { char *p; - p = frag_var (rs_align, 1, 1, (relax_substateT) max, - (symbolS *) 0, (offsetT) alignment, (char *) 0); + p = frag_var (rs_align, 1, 1, max, NULL, alignment, NULL); *p = fill_character; } } @@ -344,8 +343,7 @@ frag_align_pattern (int alignment, const char *fill_pattern, { char *p; - p = frag_var (rs_align, n_fill, n_fill, (relax_substateT) max, - (symbolS *) 0, (offsetT) alignment, (char *) 0); + p = frag_var (rs_align, n_fill, n_fill, max, NULL, alignment, NULL); memcpy (p, fill_pattern, n_fill); } @@ -367,9 +365,8 @@ frag_align_code (int alignment, int max) { char *p; - p = frag_var (rs_align_code, MAX_MEM_FOR_RS_ALIGN_CODE (alignment, max), 1, - (relax_substateT) max, (symbolS *) 0, - (offsetT) alignment, (char *) 0); + p = frag_var (rs_align_code, MAX_MEM_FOR_RS_ALIGN_CODE (alignment, max), + 1, max, NULL, alignment, NULL); *p = NOP_OPCODE; } diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c index 85d3553..3cba508 100644 --- a/gas/gen-sframe.c +++ b/gas/gen-sframe.c @@ -21,7 +21,7 @@ #include "as.h" #include "subsegs.h" #include "sframe.h" -#include "sframe-api.h" +#include "sframe-internal.h" #include "gen-sframe.h" #include "dw2gencfi.h" @@ -543,7 +543,7 @@ output_sframe_row_entry (symbolS *fde_start_addr, create_fre_start_addr_exp (&exp, sframe_fre->pc_begin, fde_start_addr, fde_end_addr); frag_grow (fre_addr_size); - frag_var (rs_sframe, fre_addr_size, 0, (relax_substateT) 0, + frag_var (rs_sframe, fre_addr_size, 0, 0, make_expr_symbol (&exp), 0, (char *) frag_now); #else gas_assert (fde_end_addr); @@ -639,8 +639,8 @@ output_sframe_funcdesc (symbolS *start_of_fre_section, create_func_info_exp (&cexp, dw_fde_end_addrS, dw_fde_start_addrS, func_info); frag_grow (1); /* Size of func info is unsigned char. */ - frag_var (rs_sframe, 1, 0, (relax_substateT) 0, - make_expr_symbol (&cexp), 0, (char *) frag_now); + frag_var (rs_sframe, 1, 0, 0, make_expr_symbol (&cexp), 0, + (char *) frag_now); #else out_one (func_info); #endif @@ -685,8 +685,8 @@ output_sframe_internal (void) out_one (SFRAME_VERSION); /* gas must ensure emitted SFrame sections have at least the required flags set. */ - gas_assert ((sframe_flags & SFRAME_F_LD_MUSTHAVE_FLAGS) - == SFRAME_F_LD_MUSTHAVE_FLAGS); + gas_assert ((sframe_flags & SFRAME_V2_GNU_AS_LD_ENCODING_FLAGS) + == SFRAME_V2_GNU_AS_LD_ENCODING_FLAGS); out_one (sframe_flags); /* abi/arch. */ #ifdef sframe_get_abi_arch diff --git a/gas/input-file.c b/gas/input-file.c index c64ea4d..f3af77c 100644 --- a/gas/input-file.c +++ b/gas/input-file.c @@ -58,7 +58,7 @@ struct saved_file void input_file_begin (void) { - f_in = (FILE *) 0; + f_in = NULL; } void @@ -237,7 +237,7 @@ input_file_give_next_buffer (char *where /* Where to place 1st character of new char *return_value; /* -> Last char of what we read, + 1. */ size_t size; - if (f_in == (FILE *) 0) + if (f_in == NULL) return 0; /* fflush (stdin); could be done here if you want to synchronise stdin and stdout, for the case where our input file is stdin. @@ -266,7 +266,7 @@ input_file_give_next_buffer (char *where /* Where to place 1st character of new if (fclose (f_in)) as_warn (_("can't close %s: %s"), file_name, xstrerror (errno)); - f_in = (FILE *) 0; + f_in = NULL; return_value = 0; } diff --git a/gas/input-scrub.c b/gas/input-scrub.c index 93d1e8e..c967a39 100644 --- a/gas/input-scrub.c +++ b/gas/input-scrub.c @@ -419,8 +419,8 @@ input_scrub_next_buffer (char **bufp) partial_size = limit - p; /* Save the fragment after that last newline. */ - memcpy (save_source, partial_where, (int) AFTER_SIZE); - memcpy (partial_where, AFTER_STRING, (int) AFTER_SIZE); + memcpy (save_source, partial_where, AFTER_SIZE); + memcpy (partial_where, AFTER_STRING, AFTER_SIZE); return partial_where; read_more: diff --git a/gas/listing.c b/gas/listing.c index d611179..92c560c 100644 --- a/gas/listing.c +++ b/gas/listing.c @@ -223,7 +223,7 @@ static char *data_buffer; static void listing_message (const char *name, const char *message) { - if (listing_tail != (list_info_type *) NULL) + if (listing_tail != NULL) { char *n = concat (name, message, (char *) NULL); struct list_message *lm = XNEW (struct list_message); @@ -256,7 +256,7 @@ file_info (const char *file_name) /* Find an entry with this file name. */ file_info_type *p = file_info_head; - while (p != (file_info_type *) NULL) + while (p != NULL) { if (filename_cmp (p->filename, file_name) == 0) return p; @@ -406,11 +406,11 @@ listing_newline (char *ps) new_i->frag = frag_now; new_i->line = line; new_i->file = file_info (file); - new_i->next = (list_info_type *) NULL; + new_i->next = NULL; new_i->messages = NULL; new_i->last_message = NULL; new_i->edict = EDICT_NONE; - new_i->hll_file = (file_info_type *) NULL; + new_i->hll_file = NULL; new_i->hll_line = 0; new_frag (); @@ -488,7 +488,7 @@ listing_prev_line (void) list_info_type *l; fragS *f; - if (head == (list_info_type *) NULL + if (head == NULL || head == listing_tail) return; @@ -497,7 +497,7 @@ listing_prev_line (void) for (l = head; l->next != listing_tail; l = l->next) ; - for (f = frchain_now->frch_root; f != (fragS *) NULL; f = f->fr_next) + for (f = frchain_now->frch_root; f != NULL; f = f->fr_next) if (f->line == listing_tail) f->line = l; @@ -795,7 +795,7 @@ calc_hex (list_info_type *list) { size_t data_buffer_size; list_info_type *first = list; - unsigned int address = ~(unsigned int) 0; + unsigned int address = ~0u; fragS *frag; fragS *frag_ptr; unsigned int octet_in_frag; @@ -810,14 +810,14 @@ calc_hex (list_info_type *list) data_buffer_size = 0; /* Dump all the frags which belong to this line. */ - while (frag_ptr != (fragS *) NULL && frag_ptr->line == first) + while (frag_ptr != NULL && frag_ptr->line == first) { /* Print as many bytes from the fixed part as is sensible. */ octet_in_frag = 0; while (octet_in_frag < frag_ptr->fr_fix && data_buffer_size < MAX_BYTES - 3) { - if (address == ~(unsigned int) 0) + if (address == ~0u) address = frag_ptr->fr_address / OCTETS_PER_BYTE; sprintf (data_buffer + data_buffer_size, @@ -836,7 +836,7 @@ calc_hex (list_info_type *list) < frag_ptr->fr_fix + frag_ptr->fr_var * frag_ptr->fr_offset) && data_buffer_size < MAX_BYTES - 3) { - if (address == ~(unsigned int) 0) + if (address == ~0u) address = frag_ptr->fr_address / OCTETS_PER_BYTE; sprintf (data_buffer + data_buffer_size, @@ -875,7 +875,7 @@ print_lines (list_info_type *list, unsigned int lineno, nchars = (LISTING_WORD_SIZE * 2 + 1) * listing_lhs_width; /* Print the hex for the first line. */ - if (address == ~(unsigned int) 0) + if (address == ~0u) { fprintf (list_file, "% 4d ", lineno); for (idx = 0; idx < nchars; idx++) @@ -1013,7 +1013,7 @@ list_symbol_table (void) got_some = 0; - for (ptr = symbol_rootP; ptr != (symbolS *) NULL; ptr = symbol_next (ptr)) + for (ptr = symbol_rootP; ptr != NULL; ptr = symbol_next (ptr)) { if (S_GET_NAME (ptr) && strlen (S_GET_NAME (ptr)) != 0) { @@ -1302,7 +1302,7 @@ listing_listing (char *name ATTRIBUTE_UNUSED) p = buffer_line (list->file, buffer, width); if (list->file->linenum < list_line) - address = ~(unsigned int) 0; + address = ~0u; else address = calc_hex (list); @@ -1354,11 +1354,11 @@ print_timestamp (void) } static void -print_single_option (char * opt, int *pos) +print_single_option (char *opt, size_t *pos) { size_t opt_len = strlen (opt); - if ((*pos + opt_len) < paper_width) + if (*pos + opt_len < paper_width) { fprintf (list_file, _("%s "), opt); *pos = *pos + opt_len; @@ -1376,7 +1376,7 @@ static void print_options (char ** argv) { const char *field_name = _("\n options passed\t: "); - int pos = strlen (field_name); + size_t pos = strlen (field_name); char **p; fputs (field_name, list_file); diff --git a/gas/messages.c b/gas/messages.c index d114892..859ac17 100644 --- a/gas/messages.c +++ b/gas/messages.c @@ -221,7 +221,7 @@ as_warn (const char *format, ...) va_start (args, format); vsnprintf (buffer, sizeof (buffer), format, args); va_end (args); - as_warn_internal ((char *) NULL, 0, buffer); + as_warn_internal (NULL, 0, buffer); } } @@ -294,7 +294,7 @@ as_bad (const char *format, ...) vsnprintf (buffer, sizeof (buffer), format, args); va_end (args); - as_bad_internal ((char *) NULL, 0, buffer); + as_bad_internal (NULL, 0, buffer); } /* Like as_bad but the file name and line number are passed in. diff --git a/gas/po/gas.es.po b/gas/po/gas.es.po new file mode 100644 index 0000000..114983c --- /dev/null +++ b/gas/po/gas.es.po @@ -0,0 +1,24208 @@ +# Spanish localization for gas-2.30.0. +# Copyright (C) 2018 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: 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-07-05 23:43+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" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.4\n" + +#: 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:665 app.c:710 +#, c-format +msgid "end of file in string; '%c' inserted" +msgstr "final de fichero en cadena; '%c' insertado" + +#: app.c:741 +#, c-format +msgid "unknown escape '\\%c' in string; ignored" +msgstr "escape '\\%c' desconocida en la cadena; se descarta" + +#: app.c:953 input-scrub.c:389 +msgid "end of file not at end of a line; newline inserted" +msgstr "final de fichero no situado en final de línea: se inserta una nueva línea" + +#: app.c:1131 +msgid "end of file in multiline comment" +msgstr "final de fichero en comentario multilínea" + +#: 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 inserta \\0" + +#: app.c:1215 +msgid "end of file in escape character" +msgstr "final de fichero en carácter de escape" + +#: app.c:1227 +msgid "missing close quote; (assumed)" +msgstr "falta comilla de cierre; (se asume)" + +#: 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; nueva línea insertada" + +#: as.c:157 +msgid "missing emulation mode name" +msgstr "falta el nombre del modo de emulación" + +#: as.c:172 +#, c-format +msgid "unrecognized emulation name `%s'" +msgstr "nombre de emulación no reconocido «%s»" + +#: as.c:212 +#, c-format +msgid "GNU assembler version %s (%s) using BFD version %s\n" +msgstr "versión de ensamblador GNU %s (%s) utilizando versión de BFD %s\n" + +#: as.c:228 +#, c-format +msgid "Usage: %s [option...] [asmfile...]\n" +msgstr "Modo de empleo: %s [opción...] [ficheroasm...]\n" + +#: as.c:230 +#, c-format +msgid "" +"Options:\n" +" -a[sub-option...]\t turn on listings\n" +" \t Sub-options [default hls]:\n" +" \t c omit false conditionals\n" +" \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" +" \t s include symbols\n" +" \t =FILE list to FILE (must be last sub-option)\n" +msgstr "" +"Opciones:\n" +" -a[sub-opción...]\t activa listados\n" +" \t Subopciones [por defecto hls]:\n" +" \t c omite condicionales falsos\n" +" \t d omite directivas de depuración\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 (ha de ser la última subopción)\n" + +#: as.c:245 +#, c-format +msgid " --alternate initially turn on alternate macro syntax\n" +msgstr " --alternate activa inicialmente la sintaxis de macros alternativa\n" + +#: as.c:247 +#, c-format +msgid "" +" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi|zstd}]\n" +" compress DWARF debug sections\n" +msgstr "" +" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi|zstd}]\n" +" comprime las secciones de depuración DWARF\n" + +#: as.c:250 +#, c-format +msgid "\t\t Default: %s\n" +msgstr "\t\t Por defecto: %s\n" + +#: as.c:255 +#, c-format +msgid "" +" --nocompress-debug-sections\n" +" don't compress DWARF debug sections\n" +msgstr "" +" --nocompress-debug-sections\n" +" no comprime las secciones de depuración DWARF\n" + +#: as.c:258 +#, c-format +msgid " -D produce assembler debugging messages\n" +msgstr " -D produce mensajes de depuración de ensamblador\n" + +#: 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" +" asocia ANT a NUEVO en la información de depuración\n" + +#: 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:281 +#, c-format +msgid " emulate output (default %s)\n" +msgstr " emula la salida (por defecto %s)\n" + +#: 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: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:290 +#, c-format +msgid "" +" --size-check=[error|warning]\n" +"\t\t\t ELF .size directive check (default --size-check=error)\n" +msgstr "" +" --size-check=[error|warning]\n" +"\t\t\t revisar directiva .size de ELF (--size-check=error por defecto)\n" + +#: as.c:293 +#, c-format +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:301 +#, c-format +msgid " --sectname-subst enable section name substitution sequences\n" +msgstr " --sectname-subst activa secuencias de sustitución de nombre de sección\n" + +#: 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 se salta el procesamiento de espacios en blanco y\n" +" comentarios\n" + +#: as.c:324 +#, c-format +msgid " -g, --gen-debug generate debugging information\n" +msgstr " -g, --gen-debug genera información de depuración\n" + +#: 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: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:330 +#, c-format +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: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 "" +" --gdwarf-sections genera nombres de sección por función para la\n" +" información de línea DWARF\n" + +#: as.c:337 +#, c-format +msgid " --gcodeview generate CodeView debugging information\n" +msgstr " --gcodeview genera información de depuración de CodeView\n" + +#: as.c:340 +#, c-format +msgid " --hash-size=<N> ignored\n" +msgstr " --hash-size=<N> se descarta\n" + +#: 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 opciones específicas del objetivo\n" + +#: 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:348 +#, c-format +msgid " -J don't warn about signed overflow\n" +msgstr " -J no avisa sobre desbordamiento con signo\n" + +#: as.c:350 +#, c-format +msgid " -K warn when differences altered for long displacements\n" +msgstr " -K avisa cuando hay diferencias alteradas por desplazamientos largos\n" + +#: 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. los que empeizan con `L')\n" + +#: as.c:354 +#, c-format +msgid " -M, --mri assemble in MRI compatibility mode\n" +msgstr " -M, --mri ensambla en modo de compatibilidad con MRI\n" + +#: 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 FICHERO (por defecto ninguno)\n" + +#: 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:363 +#, c-format +msgid " -no-pad-sections do not pad the end of sections to alignment boundaries\n" +msgstr " -no-pad-sections no rellena los finales de sección hasta los bordes de alineamiento\n" + +#: as.c:365 +#, c-format +msgid " -o OBJFILE name the object-file output OBJFILE (default a.out)\n" +msgstr " -o FICHOBJ nombre del fichero objeto de salida FICHOBJ (por defecto a.out)\n" + +#: as.c:367 +#, c-format +msgid " -R fold data section into text section\n" +msgstr " -R junta la sección de datos con la de texto\n" + +#: as.c:369 +#, c-format +msgid " --reduce-memory-overheads ignored\n" +msgstr " --reduce-memory-overheads se descarta\n" + +#: as.c:371 +#, c-format +msgid " --statistics print various measured statistics from execution\n" +msgstr " --statistics imprime varias estadísticas medidas de la ejecución\n" + +#: as.c:373 +#, c-format +msgid " --strip-local-absolute strip local absolute symbols\n" +msgstr " --strip-local-absolute elimina símbolos locales absolutos\n" + +#: 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:377 +#, c-format +msgid " --version print assembler version number and exit\n" +msgstr " --version imprime el número de versión del ensamblador y termina\n" + +#: as.c:379 +#, c-format +msgid " -W, --no-warn suppress warnings\n" +msgstr " -W, --no-warn suprime avisos\n" + +#: as.c:381 +#, c-format +msgid " --warn don't suppress warnings\n" +msgstr " --warn no suprime avisos\n" + +#: as.c:383 +#, c-format +msgid " --fatal-warnings treat warnings as errors\n" +msgstr " --fatal-warnings trata los avisos como errores\n" + +#: 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" +" matching the specifications defined in file INSTTBL\n" +msgstr "" +" --itbl INSTTBL extiende el conjunto de instrucciones para incluir\n" +" instrucciones que coincidan con las especificaciones\n" +" definidas en el fichero INSTTBL\n" + +#: as.c:394 +#, c-format +msgid " -w ignored\n" +msgstr " -w se descarta\n" + +#: as.c:396 +#, c-format +msgid " -X ignored\n" +msgstr " -X se descarta\n" + +#: as.c:398 +#, c-format +msgid " -Z generate object file even after errors\n" +msgstr " -Z genera fichero objeto incluso si hay errores\n" + +#: as.c:400 +#, c-format +msgid "" +" --listing-lhs-width set the width in words of the output data column of\n" +" the listing\n" +msgstr "" +" --listing-lhs-width establece la anchura en palabras de la columna de\n" +" datos de salida en el listado\n" + +#: as.c:403 +#, c-format +msgid "" +" --listing-lhs-width2 set the width in words of the continuation lines\n" +" of the output data column; ignored if smaller than\n" +" the width of the first line\n" +msgstr "" +" --listing-lhs-width2 establece el ancho en palabras de las líneas de\n" +" continuación de la columna de datos de salida; se\n" +" descarta si es más pequeño que la anchura de la\n" +" primera línea\n" + +#: as.c:407 +#, c-format +msgid "" +" --listing-rhs-width set the max width in characters of the lines from\n" +" the source file\n" +msgstr "" +" --listing-rhs-width establece la anchura máxima en caracteres de las\n" +" líneas del fichero fuente\n" + +#: as.c:410 +#, c-format +msgid "" +" --listing-cont-lines set the maximum number of continuation lines used\n" +" for the output data column of the listing\n" +msgstr "" +" --listing-cont-lines establece el número máximo de líneas de continuación\n" +" utilizadas para la columna de datos de salida del\n" +" listado\n" + +#: as.c:413 +#, c-format +msgid " @FILE read options from FILE\n" +msgstr " @FICHERO lee las opciones de FICHERO\n" + +#: as.c:421 +#, c-format +msgid "Report bugs to %s\n" +msgstr "Comunica defectos a %s\n" + +#: 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 `--%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:706 +#, c-format +msgid "GNU assembler %s\n" +msgstr "Ensamblador GNU %s\n" + +#: as.c:707 +#, c-format +msgid "Copyright (C) 2025 Free Software Foundation, Inc.\n" +msgstr "Copyright (C) 2025 Free Software Foundation, Inc.\n" + +#: as.c:708 +#, c-format +msgid "" +"This program is free software; you may redistribute it under the terms of\n" +"the GNU General Public License version 3 or later.\n" +"This program has absolutely no warranty.\n" +msgstr "" +"Este programa es software libre; se puede redistribuir bajo los términos de\n" +"la Licencia Pública General de GNU versión 3 o posterior.\n" +"Este programa no tiene ninguna garantía.\n" + +#: as.c:713 +#, c-format +msgid "" +"This assembler was configured for a target of `%s' and default,\n" +"cpu type `%s'.\n" +msgstr "" +"Este ensamblador fue configurado para un objetivo de «%s» y por omisión,\n" +"tipo «%s» de cpu.\n" + +#: 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:725 +msgid "multiple emulation names specified" +msgstr "se especificaron múltiples nombres de emulación" + +#: as.c:727 +msgid "emulations not handled in this configuration" +msgstr "las emulaciones no se manejan en esta configuración" + +#: as.c:732 +#, c-format +msgid "alias = %s\n" +msgstr "alias = %s\n" + +#: as.c:733 +#, c-format +msgid "canonical = %s\n" +msgstr "canónico = %s\n" + +#: as.c:734 +#, c-format +msgid "cpu-type = %s\n" +msgstr "tipo-cpu = %s\n" + +#: as.c:736 +#, c-format +msgid "format = %s\n" +msgstr "formato = %s\n" + +#: as.c:739 +#, c-format +msgid "bfd-target = %s\n" +msgstr "objetivo-bfd = %s\n" + +#: 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 no valida de --compress-debug-sections: «%s»" + +#: as.c:757 +#, c-format +msgid "--compress-debug-sections=%s is unsupported" +msgstr "--compress-debug-sections=%s no está disponible" + +#: as.c:782 +msgid "bad defsym; format is --defsym name=value" +msgstr "defsym incorrecto; el formato es --defsym nombre=valor" + +#: 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:809 +#, c-format +msgid "failed to read instruction table %s\n" +msgstr "fallo al leer la table de instrucciones %s\n" + +#: 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 "Opción no válida de --size-check=: «%s»" + +#: as.c:1010 +#, c-format +msgid "Invalid --elf-stt-common= option: `%s'" +msgstr "Opción no válida de --elf-stt-common=: «%s»" + +#: as.c:1024 +#, c-format +msgid "Invalid --generate-missing-build-notes option: `%s'" +msgstr "Opción no valida de --generate-missing-build-notes: «%s»" + +#: as.c:1102 +#, c-format +msgid "invalid listing option `%c'" +msgstr "opción de listado no válida `%c'" + +#: 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: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:1482 +#, c-format +msgid "%d error" +msgid_plural "%d errors" +msgstr[0] "%d error" +msgstr[1] "%d errores" + +#: as.c:1486 +#, c-format +msgid "%s, treating warnings as errors" +msgstr "%s , se tratan los avisos como errores" + +#: as.c:1497 +#, c-format +msgid "%s, %s, generating bad object file\n" +msgstr "%s, %s, generando fichero objeto incorrecto\n" + +#: 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" + +#. +#. * We have a GROSS internal error. +#. * This should never happen. +#. +#: atof-generic.c:456 config/tc-m68k.c:3485 +msgid "failed sanity check" +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 reparaciones" + +#: 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: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 "falta operando" + +#: cgen.c:774 +msgid "a reloc on this operand implies an overflow" +msgstr "la reubicación de este operando implica desbordamiento" + +#: cgen.c:797 +msgid "operand mask overflow" +msgstr "desbordamiento de máscara de operando" + +#: 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: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: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 reparación para el tipo reubicado %d («%s»)" + +#: 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" + +#: 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:151 +msgid "non-constant expression in \".if\" statement" +msgstr "expresión no constante en sentencia \".if\"" + +#: cond.c:279 +msgid "bad format for ifc or ifnc" +msgstr "formato incorrecto para ifc ó ifnc" + +#: cond.c:310 +msgid "\".elseif\" without matching \".if\"" +msgstr "\".elseif\" sin su correspondiente \".if\"" + +#: cond.c:314 +msgid "\".elseif\" after \".else\"" +msgstr "\".elseif\" después de \".else\"" + +#: cond.c:317 cond.c:423 +msgid "here is the previous \".else\"" +msgstr "aquí está el anterior \".else\"" + +#: cond.c:320 cond.c:426 +msgid "here is the previous \".if\"" +msgstr "aquí está el anterior \".if\"" + +#: cond.c:349 +msgid "non-constant expression in \".elseif\" statement" +msgstr "expresión no constante en sentencia \".elseif\"" + +#: cond.c:387 +msgid "\".endif\" without \".if\"" +msgstr "\".endif\" sin \".if\"" + +#: cond.c:416 +msgid "\".else\" without matching \".if\"" +msgstr "\".else\" sin su correspondiente \".if\"" + +#: cond.c:420 +msgid "duplicate \".else\"" +msgstr "\".else\" duplicado" + +#: cond.c:471 +msgid ".ifeqs syntax error" +msgstr "error de sintaxis en .ifeqs" + +#: cond.c:559 +msgid "end of macro inside conditional" +msgstr "fin de macro dentro de un condicional" + +#: cond.c:561 +msgid "end of file inside conditional" +msgstr "final de fichero dentro de un condicional" + +#: cond.c:565 +msgid "here is the start of the unterminated conditional" +msgstr "aquí está el comienzo del condicional sin terminar" + +#: 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:148 +msgid "cannot create floating-point number" +msgstr "no se puede crear el número de coma flotante" + +#: 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:392 +msgid "Infinities are not supported by this target" +msgstr "No se admiten infinitos en este objetivo" + +#: 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 "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 "Intento de poner un símbolo indefinido en el conjunto %s" + +#: 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: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 opciones para «%s»: %s" + +#. Zero is used as an end marker in the file. +#: 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:456 +msgid ".ln pseudo-op inside .def/.endef: ignored." +msgstr "pseudo-operador .ln dentro de .def/.endef: se descarta." + +#: config/obj-coff.c:497 ecoff.c:3232 +msgid ".loc outside of .text" +msgstr ".loc fuera de .text" + +#: 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: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: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:656 +#, c-format +msgid "`%s' symbol without preceding function" +msgstr "símbolo «%s» sin función que lo preceda" + +#: config/obj-coff.c:743 +#, c-format +msgid "unexpected storage class %d" +msgstr "clase de almacenamiento %d inesperada" + +#: 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:870 +msgid "badly formed .dim directive ignored" +msgstr "se descarta la directiva .dim formada incorrectamente" + +#: config/obj-coff.c:919 +msgid ".size pseudo-op used outside of .def/.endef: ignored." +msgstr "pseudo-operador .size utilizado fuera de .def/.endef: descartado." + +#: config/obj-coff.c:934 +msgid ".scl pseudo-op used outside of .def/.endef: ignored." +msgstr "pseudo-operador .scl utilizado fuera de .def/.endef: descartado." + +#: config/obj-coff.c:951 +msgid ".tag pseudo-op used outside of .def/.endef: ignored." +msgstr "pseudo-operador .tag utilizado fuera de .def/.endef; descartado." + +#: config/obj-coff.c:968 +#, c-format +msgid "tag not found for .tag %s" +msgstr "no se encontró etiqueta para .tag %s" + +#: config/obj-coff.c:981 +msgid ".type pseudo-op used outside of .def/.endef: ignored." +msgstr "pseudo-operador .type utilizado fuera de .def/.endef; descartado." + +#: config/obj-coff.c:1000 +msgid ".val pseudo-op used outside of .def/.endef: ignored." +msgstr "pseudo-operador .val utilizado fuera de .def/.endef; descartado." + +#: config/obj-coff.c:1147 +msgid "badly formed .weak directive ignored" +msgstr "se descarta la directiva .weak formada incorrectamente" + +#: config/obj-coff.c:1334 +msgid "mismatched .eb" +msgstr ".eb sin coincidencia" + +#: config/obj-coff.c:1357 +#, c-format +msgid "C_EFCN symbol for %s out of scope" +msgstr "símbolo C_EFCN para %s fuera de ámbito" + +#: config/obj-coff.c:1412 +#, c-format +msgid "Warning: internal error: forgetting to set endndx of %s" +msgstr "Aviso: error interno: se olvida establecer el endndx de %s" + +#. STYP_INFO +#. STYP_LIB +#. STYP_OVER +#: config/obj-coff.c:1655 +#, c-format +msgid "unsupported section attribute '%c'" +msgstr "no se admite el atributo de sección '%c'" + +#: config/obj-coff.c:1659 +#, c-format +msgid "unknown section attribute '%c'" +msgstr "atributo de sección desconocido '%c'" + +#: config/obj-coff.c:1705 config/obj-macho.c:269 +#, c-format +msgid "Ignoring changed section attributes for %s" +msgstr "Se descartan los atributos sección cambiados para %s" + +#: 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:125 +msgid "Can't set GP value" +msgstr "No se puede establecer el valor GP" + +#: 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:272 config/tc-sparc.c:4383 config/tc-v850.c:508 +#, c-format +msgid "bad .common segment %s" +msgstr "segmento .common %s incorrecto" + +#: config/obj-elf.c:348 config/tc-aarch64.c:2278 config/tc-kvx.c:2235 +msgid "Missing symbol name in directive" +msgstr "Falta el nombre de símbolo en la directiva" + +#: config/obj-elf.c:678 +#, c-format +msgid "setting incorrect section type for %s" +msgstr "se establece un tipo de sección incorrecto para %s" + +#: config/obj-elf.c:683 +#, c-format +msgid "ignoring incorrect section type for %s" +msgstr "se descarta el tipo de sección incorrecto para %s" + +#: config/obj-elf.c:742 +#, c-format +msgid "setting incorrect section attributes for %s" +msgstr "se establecen atributos de sección incorrectos para %s" + +#. 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 "ignoring changed section type for %s" +msgstr "se descarta el tipo de sección cambiado para %s" + +#. Do error when assembly isn't self-consistent. +#: config/obj-elf.c:839 +#, c-format +msgid "changed section type for %s" +msgstr "tipo de sección cambiado para %s" + +#: config/obj-elf.c:854 +#, c-format +msgid "ignoring changed section attributes for %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:865 +#, c-format +msgid "changed section entity size for %s" +msgstr "tamaño de entidad de sección cambiado para %s" + +#: 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:1033 +msgid "extraneous characters at end of numeric section type" +msgstr "caracteres extraños al final de tipo de sección numérico" + +#: config/obj-elf.c:1039 read.c:3031 +msgid "unrecognized section type" +msgstr "tipo de sección no reconocido" + +#: config/obj-elf.c:1064 +msgid "unrecognized section attribute" +msgstr "atributo de sección no reconocido" + +#: config/obj-elf.c:1096 config/tc-alpha.c:4208 +msgid "missing name" +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: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: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:1391 +msgid "? section flag ignored with G present" +msgstr "se descarta la opción de sección ? con G presente" + +#: config/obj-elf.c:1428 +msgid "group name for SHF_GROUP not specified" +msgstr "no se especificó el nombre de grupo para SHF_GROUP" + +#: config/obj-elf.c:1454 +#, c-format +msgid "unsupported mbind section info: %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:1533 +msgid "character following name is not '#'" +msgstr "el carácter que sigue al nombre no es '#'" + +#: 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:1732 +msgid ".popsection without corresponding .pushsection; ignored" +msgstr ".popsection sin .pushsection correspondiente; se descarta" + +#: 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:1795 +#, c-format +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:1803 +#, c-format +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: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 "`%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: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:1948 +msgid "expected comma after name in .vtable_inherit" +msgstr "se esperaba una coma tras el nombre en .vtable_inherit" + +#: config/obj-elf.c:2009 +msgid "expected comma after name in .vtable_entry" +msgstr "se esperaba una coma tras el nombre en .vtable_entry" + +#: config/obj-elf.c:2148 +#, c-format +msgid "Attribute name not recognised: %s" +msgstr "Nombre de atributo no reconocido: %s" + +#: config/obj-elf.c:2165 +msgid "expected numeric constant" +msgstr "se esperaba una constante numérica" + +#: config/obj-elf.c:2174 config/tc-arm.c:6970 +msgid "expected comma" +msgstr "se esperaba una coma" + +#: 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 incorrecta" + +#: config/obj-elf.c:2215 +msgid "expected <tag> , <value>" +msgstr "se esperaba <etiqueta> , <valor>" + +#: config/obj-elf.c:2344 +msgid "expected quoted string" +msgstr "se esperaba una cadena entre comillas" + +#: config/obj-elf.c:2364 +#, c-format +msgid "expected comma after name `%s' in .size directive" +msgstr "se esperaba una coma tras el nombre «%s» en la directiva .size" + +#: config/obj-elf.c:2373 +msgid "missing expression in .size directive" +msgstr "falta expresión en la directiva .size" + +#: 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:2520 +#, c-format +msgid "symbol type \"%s\" is supported only by GNU and FreeBSD targets" +msgstr "el tipo de símbolo «%s» solo se admite en objetivos GNU y FreeBSD" + +#: 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 de símbolo «%s» solo se admite en objetivos GNU" + +#: config/obj-elf.c:2546 config/tc-kvx.c:2279 +#, c-format +msgid "unrecognized symbol type \"%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: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:2870 +#, c-format +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: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: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:2944 +#, c-format +msgid "can't create group: %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: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: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:3148 +#, c-format +msgid "could not write .mdebug section: %s" +msgstr "no se puede escribir la sección .mdebug: %s" + +#: config/obj-evax.c:122 +#, c-format +msgid "no entry symbol for global function '%s'" +msgstr "no hay símbolo de entrada para la función global «%s»" + +#. make a temp string. +#: config/obj-macho.c:119 +#, c-format +msgid "the %s name '%s' is too long (maximum 16 characters)" +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 "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 +msgid "cannot override zerofill section type for `%s,%s'" +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 "no se han podido establecer las opciones para «%s»: %s" + +#: config/obj-macho.c:342 +#, c-format +msgid "unknown or invalid section type '%s'" +msgstr "tipo de sección inválido o desconocido '%s'" + +#: config/obj-macho.c:381 +#, c-format +msgid "unknown or invalid section attribute '%s'" +msgstr "atributo de sección desconocido o no válido «%s»" + +#: config/obj-macho.c:402 +msgid "unexpected section size information" +msgstr "información inesperada de tamaño de sección" + +#: config/obj-macho.c:414 +msgid "missing sizeof_stub expression" +msgstr "falta expresión sizeof_stub" + +#: 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 de símbolo" + +#: config/obj-macho.c:491 read.c:558 +msgid "bad or irreducible absolute expression" +msgstr "expresión absoluta incorrecta o irreducible" + +#: config/obj-macho.c:497 config/tc-score.c:6090 read.c:1823 +msgid "missing size expression" +msgstr "falta expresión de tamaño" + +#: 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 rango, se descarta" + +#: 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:526 read.c:1856 +#, c-format +msgid "size of \"%s\" is already %ld; not changing to %ld" +msgstr "El tamaño de «%s» ya es %ld; no se va a cambiar a %ld" + +#: config/obj-macho.c:537 +msgid "align value not recognized, using size" +msgstr "valor de alineamiento no reconocido; se usará el tamaño" + +#: 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: se asume 15." + +#: 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 de sección conocido no manejado `%s'" + +#: config/obj-macho.c:810 +#, c-format +msgid "%s is not used for the selected target" +msgstr "%s no utilizado para el objetivo seleccionado" + +#: config/obj-macho.c:875 +msgid "internal error: base section index out of range" +msgstr "error interno: índice de sección base fuera de rango" + +#: config/obj-macho.c:961 +#, c-format +msgid "internal error: bad file property ID %d" +msgstr "error interno: ID %d de propiedad de fichero incorrecto" + +#: config/obj-macho.c:969 +msgid "failed to set subsections by symbols" +msgstr "no se han podido establecer subsecciones por símbolos" + +#: config/obj-macho.c:1032 +#, c-format +msgid "'%s' previously declared as '%s'." +msgstr "«%s» previamente declarado como «%s»." + +#: 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 "«%s» no puede ser una weak_definition (actualmente solo disponible en secciones de tipo fusionado)" + +#: config/obj-macho.c:1169 +msgid "use of .indirect_symbols requires `-dynamic'" +msgstr "el empleo de .indirect_symbols requiere `-dinamic'" + +#: 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 "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:1216 +msgid "an .indirect_symbol must be in a symbol pointer or stub section." +msgstr "los .indirect_symbol tienen que estar en punteros de símbolo o secciones «stub»." + +#: config/obj-macho.c:1485 +#, c-format +msgid "'%s' can't be a weak_definition (since it is undefined)" +msgstr "«%s» no puede ser una weak_definition (pues está indefinido)" + +#: config/obj-macho.c:1491 +#, c-format +msgid "Non-global symbol: '%s' can't be a weak_definition." +msgstr "Símbolo no global: «%s» no puede ser una weak_definition" + +#: config/obj-macho.c:1497 +#, c-format +msgid "internal error: [%s] unexpected code [%lx] in frob symbol" +msgstr "error interno: [%s] código inesperado [%lx] en símbolo «frob»" + +#: config/obj-macho.c:1538 +#, c-format +msgid "unrecognized stab type '%c'" +msgstr "tipo de «stab» no reconocido '%c'" + +#: config/obj-macho.c:1589 +#, c-format +msgid "`%s' can't be undefined in `%s' - `%s' {%s section}" +msgstr "«%s» no puede estar indefinido en «%s» - «%s» {sección %s}" + +#: config/obj-macho.c:1597 +#, c-format +msgid "`%s' can't be undefined in `%s' {%s section} - `%s'" +msgstr "«%s» no puede estar indefinido en «%s» {sección %s} - «%s»" + +#: 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: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 .indirect_symbols definidos en la sección %s no coincide con el número esperado (%d definido, %d esperado)" + +#: config/obj-macho.c:1826 +#, c-format +msgid "internal error: failed to allocate %d indirectsymbol pointers" +msgstr "error interno: no se ha podido asignar %d punteros de símbolo indirectos" + +#: 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 «mach-o» indirectos que los esperados" + +#: config/obj-som.c:56 +msgid "Only one .compiler pseudo-op per file!" +msgstr "¡Sólo un pseudo-operador .compiler por fichero!" + +#: config/obj-som.c:73 config/obj-som.c:144 config/obj-som.c:186 +msgid "Expected quoted string" +msgstr "Se esperaba una cadena entrecomillada" + +#: config/obj-som.c:86 +msgid ".compiler directive missing language and version" +msgstr "faltan el lenguaje y la versión en la directiva .compiler" + +#: config/obj-som.c:96 +msgid ".compiler directive missing version" +msgstr "falta la versión en la directiva .compiler" + +#: config/obj-som.c:112 +#, c-format +msgid "FATAL: Attaching compiler header %s" +msgstr "FATAL: Adjuntando el encabezado de compilador %s" + +#: config/obj-som.c:127 +msgid "Only one .version pseudo-op per file!" +msgstr "¡Sólo un pseudo-operador .version por fichero!" + +#: config/obj-som.c:151 +#, c-format +msgid "attaching version header %s: %s" +msgstr "adjuntando el encabezado de versión %s: %s" + +#: config/obj-som.c:169 +msgid "Only one .copyright pseudo-op per file!" +msgstr "¡Sólo un pseudo-operador .copyright por fichero!" + +#: config/obj-som.c:193 +#, c-format +msgid "attaching copyright header %s: %s" +msgstr "adjuntando encabezado de copyright %s: %s" + +#: 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: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: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: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: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: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: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: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: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:461 +#, c-format +msgid "expected an Advanced SIMD vector register at operand %d" +msgstr "se esperaba un registro vectorial SIMD avanzado para el operando %d" + +#: config/tc-aarch64.c:463 +#, c-format +msgid "expected an SVE vector register at operand %d" +msgstr "se esperaba un registro vectorial SVE para el operando %d" + +#. 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: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:474 +#, c-format +msgid "expected a vector register at operand %d" +msgstr "se esperaba un registro vectorial para el operando %d" + +#: config/tc-aarch64.c:476 +#, c-format +msgid "expected an SVE vector or predicate register at operand %d" +msgstr "se esperaba un registro vectorial SVE o de predicado para el operando %d" + +#: config/tc-aarch64.c:478 +#, c-format +msgid "expected a vector or predicate register at operand %d" +msgstr "se esperaba un registro vectorial o de predicado para el operando %d" + +#: 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: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 vectorial SIMD avanzado para el operando %d" + +#: 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 vectorial 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 vectorial 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:507 +#, c-format +msgid "expected an SVE vector register or ZA tile slice at operand %d" +msgstr "se esperaba un registro vectorial SVE o una rodaja de matriz ZA para el operando %d" + +#: 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 incorrecta" + +#: config/tc-aarch64.c:728 config/tc-sparc.c:3380 +msgid "bad segment" +msgstr "segmento incorrecto" + +#: 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 incorrecto %d en el especificador de anchura del vector" + +#: config/tc-aarch64.c:1081 +#, c-format +msgid "unexpected character `%c' in element size" +msgstr "carácter inesperado `%c' en el tamaño del elemento" + +#: config/tc-aarch64.c:1083 +msgid "missing element size" +msgstr "falta el tamaño del elemento" + +#: config/tc-aarch64.c:1093 +#, c-format +msgid "invalid element size %d and vector size combination %c" +msgstr "combinación no válida del tamaño del elemento %d y del tamaño del vector %c" + +#: config/tc-aarch64.c:1129 +#, c-format +msgid "unexpected character `%c' in predication type" +msgstr "carácter inesperado `%c' en tipo de predicación" + +#: config/tc-aarch64.c:1132 +msgid "missing predication type" +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: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 se puede indexar" + +#: config/tc-aarch64.c:1310 +msgid "index not allowed inside register list" +msgstr "índice no permitido dentro del listado de registros" + +#. Indexed vector register expected. +#: config/tc-aarch64.c:1325 +msgid "indexed vector register expected" +msgstr "se esperaba un registro vectorial indexado" + +#: config/tc-aarch64.c:1332 +msgid "invalid use of vector register" +msgstr "utilización no válida de registro vectorial" + +#: config/tc-aarch64.c:1454 +msgid "invalid vector register in list" +msgstr "el registro vectorial inválido en listado" + +#: config/tc-aarch64.c:1462 +msgid "invalid scalar register in list" +msgstr "el registro escalar inválido en listado" + +#: config/tc-aarch64.c:1475 +msgid "invalid range in vector register list" +msgstr "rango no válido en listado de registros de vector" + +#: config/tc-aarch64.c:1488 +msgid "type mismatch in vector register list" +msgstr "discordancia de tipos en listado de registros de vector" + +#: config/tc-aarch64.c:1509 +msgid "end of vector register list not found" +msgstr "final del listado de registros de vector no encontrado" + +#: config/tc-aarch64.c:1527 +msgid "expected index" +msgstr "se esperaba índice" + +#: config/tc-aarch64.c:1534 +msgid "too many registers in vector register list" +msgstr "demasiados registros en el listado de registros de vector" + +#: config/tc-aarch64.c:1539 +msgid "empty vector register list" +msgstr "listado de registros de vector vacío" + +#: 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 registro interno «%s»" + +#: 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:1660 config/tc-arm.c:2604 +#, c-format +msgid "unknown register '%s' -- .req ignored" +msgstr "el registro «%s» desconocido -- se descarta .req" + +#: config/tc-aarch64.c:1718 config/tc-arm.c:2812 +msgid "invalid syntax for .req directive" +msgstr "sintaxis no válida para directiva .reg" + +#: config/tc-aarch64.c:1739 config/tc-arm.c:2845 +msgid "invalid syntax for .unreq directive" +msgstr "sintaxis no válida para directiva .unreq" + +#: config/tc-aarch64.c:1745 config/tc-arm.c:2852 +#, c-format +msgid "unknown register alias '%s'" +msgstr "alias de registro desconocido «%s»" + +#: config/tc-aarch64.c:1747 +#, c-format +msgid "ignoring attempt to undefine built-in register '%s'" +msgstr "se descarta el intento de suprimir la definición del registro interno «%s»" + +#: 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:2242 config/tc-aarch64.c:7473 config/tc-arm.c:3845 +#: config/tc-arm.c:7677 +msgid "unrecognized relocation suffix" +msgstr "sufijo de reubicación no reconocido" + +#: config/tc-aarch64.c:2244 +msgid "unimplemented relocation suffix" +msgstr "sufijo de reubicación no implementado" + +#: 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:2561 +msgid "missing immediate expression" +msgstr "falta expresión inmediata" + +#: 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 no válida" + +#: config/tc-aarch64.c:3575 config/tc-arm.c:5452 config/tc-arm.c:5462 +msgid "shift expression expected" +msgstr "se esperaba expresión de desplazamiento" + +#: config/tc-aarch64.c:3583 +msgid "shift operator expected" +msgstr "se esperaba operador de desplazamiento" + +#: config/tc-aarch64.c:3591 +msgid "invalid use of 'MSL'" +msgstr "utilización no válida de 'MSL'" + +#: config/tc-aarch64.c:3599 +msgid "invalid use of 'MUL'" +msgstr "utilización no válida de 'MUL'" + +#: config/tc-aarch64.c:3608 +msgid "extending shift is not permitted" +msgstr "no está permitido extender el desplazamiento" + +#: config/tc-aarch64.c:3616 +msgid "'ROR' shift is not permitted" +msgstr "el desplazamiento 'ROR' no está permitido" + +#: config/tc-aarch64.c:3624 +msgid "only 'LSL' shift is permitted" +msgstr "solo está permitido el desplazamiento 'LSL'" + +#: config/tc-aarch64.c:3632 +msgid "only 'MUL' is permitted" +msgstr "solo 'MUL' está permitido" + +#: config/tc-aarch64.c:3650 +msgid "only 'MUL VL' is permitted" +msgstr "solo 'MUL VL' está permitido" + +#: config/tc-aarch64.c:3658 +msgid "invalid shift for the register offset addressing mode" +msgstr "desplazamiento inválido para el modo de direccionamiento de desplazamiento de registro" + +#: config/tc-aarch64.c:3666 +msgid "invalid shift operator" +msgstr "operador de desplazamiento no válido" + +#: config/tc-aarch64.c:3700 +msgid "missing shift amount" +msgstr "falta la cantidad de desplazamiento" + +#: config/tc-aarch64.c:3707 +msgid "constant shift amount required" +msgstr "cantidad de desplazamiento constante requerida" + +#: config/tc-aarch64.c:3716 +msgid "shift amount out of range 0 to 63" +msgstr "cantidad de desplazamiento fuera del rango 0 a 63" + +#: config/tc-aarch64.c:3766 +msgid "unexpected shift operator" +msgstr "operador de desplazamiento inesperado" + +#: config/tc-aarch64.c:3802 +msgid "unexpected register in the immediate operand" +msgstr "el registro no esperado en el operando inmediato" + +#: config/tc-aarch64.c:3827 +msgid "integer register expected in the extended/shifted operand register" +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: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: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 "este modificador de reubicación no está permitido en esta instrucción" + +#: 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:4129 +msgid "invalid address" +msgstr "dirección no válida" + +#: 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 "el 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 "el 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 de registro de 32 bits" + +#: config/tc-aarch64.c:4203 +msgid "offset has different size from base" +msgstr "el desplazamiento tiene distinto tamaño que la base" + +#: config/tc-aarch64.c:4209 +msgid "invalid use of 64-bit register offset" +msgstr "utilización no válida de desplazamiento de registro de 64 bits" + +#. [Xn],#expr +#: 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:4272 config/tc-arm.c:6051 config/tc-arm.c:6650 +msgid "']' expected" +msgstr "se esperaba ']'" + +#: config/tc-aarch64.c:4280 +msgid "register offset not allowed in pre-indexed addressing mode" +msgstr "desplazamiento de registro no permitido en modo direccionamiento pre-indexado" + +#: 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-indexación" + +#. Reject [Rn]! +#: config/tc-aarch64.c:4340 +msgid "missing offset in the pre-indexed address" +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:4746 +msgid "invalid vector group size" +msgstr "tamaño de grupo de vectores no válido" + +#: config/tc-aarch64.c:4753 +msgid "expected ']'" +msgstr "se esperaba ']'" + +#: 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 "el procesador seleccionado no admite el nombre de campo PSTATE '%s'" + +#: config/tc-aarch64.c:5017 config/tc-aarch64.c:5062 +#, c-format +msgid "selected processor does not support system register name '%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:5023 config/tc-aarch64.c:5065 +#, c-format +msgid "system register name '%s' is deprecated and may be removed in a future release" +msgstr "el nombre de registro del sistema «%s» está obsoleto y puede desaparecer en futuras versiones" + +#: config/tc-aarch64.c:5104 +msgid "immediate value out of range " +msgstr "valor inmediato fuera de rango " + +#: config/tc-aarch64.c:5707 messages.c:151 +#, c-format +msgid "Info: " +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: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:5829 +#, c-format +msgid "%s at operand %d -- `%s'" +msgstr "%s en el operando %d -- «%s»" + +#: config/tc-aarch64.c:5835 +#, c-format +msgid "operand %d must be %s -- `%s'" +msgstr "el operando %d debe ser %s -- `%s'" + +#: config/tc-aarch64.c:5841 +#, c-format +msgid "operand mismatch -- `%s'" +msgstr "el operando no coincide -- «%s»" + +#. Print the hint. +#: config/tc-aarch64.c:5901 +msgid " did you mean this?" +msgstr " ¿quiso decir ésto?" + +#: config/tc-aarch64.c:5904 config/tc-aarch64.c:5931 +#, c-format +msgid " %s" +msgstr " %s" + +#: config/tc-aarch64.c:5909 +msgid " other valid variant(s):" +msgstr " otra(s) variante(s) válida(s):" + +#: config/tc-aarch64.c:5938 +#, c-format +msgid "operand %d must have the same immediate value as operand 1 -- `%s'" +msgstr "el operando %d debe tener el mismo valor inmediato que el operando 1 -- «%s»" + +#: config/tc-aarch64.c:5944 +#, c-format +msgid "operand %d must be the same register as operand 1 -- `%s'" +msgstr "el operando %d debe ser el mismo registro que el operando 1 -- «%s»" + +#: config/tc-aarch64.c:5949 +#, c-format +msgid "%s%d-%s%d expected at operand %d -- `%s'" +msgstr "se esperaba %s%d-%s%d en el 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 rango %d a %d en el operando %d -- «%s»" + +#: 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:5960 +#, c-format +msgid "%s must be %d at operand %d -- `%s'" +msgstr "%s debe ser %d en el operando %d -- «%s»" + +#: config/tc-aarch64.c:5967 +#, c-format +msgid "unexpected vector group size at operand %d -- `%s'" +msgstr "tamaño de grupo de vectores inesperado en el operando %d -- «%s»" + +#: config/tc-aarch64.c:5970 +#, c-format +msgid "operand %d must have a vector group size of %d -- `%s'" +msgstr "el operando %d debe tener un tamaño de grupo de vectores de %d -- «%s»" + +#: config/tc-aarch64.c:5976 +#, c-format +msgid "expected a single-register list at operand %d -- `%s'" +msgstr "se esperaba una lista de registros sencillos en el operando %d -- «%s»" + +#: config/tc-aarch64.c:5979 +#, c-format +msgid "expected a list of %d registers at operand %d -- `%s'" +msgstr "se esperaba una lista de %d registros en el operando %d -- «%s»" + +#: config/tc-aarch64.c:5982 +#, c-format +msgid "expected a list of %d or %d registers at operand %d -- `%s'" +msgstr "se esperaba una lista de %d o %d registros en el operando %d -- «%s»" + +#: config/tc-aarch64.c:5986 +#, c-format +msgid "invalid number of registers in the list at operand %d -- `%s'" +msgstr "número no válido de registros en la lista en el operando %d -- `%s'" + +#: config/tc-aarch64.c:5992 +#, c-format +msgid "the register list must have a stride of %d at operand %d -- `%s'" +msgstr "la lista de registros debe tener un avance de %d en el operando %d -- «%s»" + +#: config/tc-aarch64.c:5995 +#, c-format +msgid "the register list must have a stride of %d or %d at operand %d -- `%s`" +msgstr "la lista de registros debe tener un avance de %d o %d en el operando %d -- «%s»" + +#: config/tc-aarch64.c:5999 +#, c-format +msgid "invalid register stride at operand %d -- `%s'" +msgstr "avance de registro inesperado en el operando %d -- «%s»" + +#: config/tc-aarch64.c:6004 +#, c-format +msgid "immediate value must be a multiple of %d at operand %d -- `%s'" +msgstr "el valor inmediato debe ser múltiplo de %d en el operando %d «%s»" + +#: config/tc-aarch64.c:6448 +msgid "the specified relocation type is not allowed for MOVK" +msgstr "el tipo de reubicación especificado no está permitido para MOVK" + +#: 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 de reubicación especificado no está permitido para registros de 32 bits" + +#: config/tc-aarch64.c:6602 +msgid "relocation qualifier does not match instruction size" +msgstr "el cualificador de reubicación no coincide con el tamaño de la instrucción" + +#: config/tc-aarch64.c:6703 +msgid "comma expected between operands" +msgstr "se esperaba coma entre los operandos" + +#: config/tc-aarch64.c:6739 +msgid "invalid Rt register number in 64-byte load/store" +msgstr "número de registro Rt no válido en carga/almacenamiento de 64 bytes" + +#: config/tc-aarch64.c:6876 +msgid "the top half of a 128-bit FP/SIMD register is expected" +msgstr "se espera la mitad superior de un registro FP/SIMD de 128 bits" + +#: 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:7046 +msgid "expected element type rather than vector type" +msgstr "se esperaba un tipo de elemento en vez de un tipo de vector" + +#: config/tc-aarch64.c:7064 +msgid "missing type suffix" +msgstr "falta sufijo de tipo" + +#: config/tc-aarch64.c:7086 +msgid "C8 - C9 expected" +msgstr "se esperaba C8 - C9" + +#: config/tc-aarch64.c:7092 +msgid "C0 - C7 expected" +msgstr "se esperaba C0 - C7" + +#: config/tc-aarch64.c:7098 +msgid "C0 - C15 expected" +msgstr "se esperaba C0 - C15" + +#: config/tc-aarch64.c:7210 config/tc-aarch64.c:7234 +msgid "immediate zero expected" +msgstr "se esperaba cero inmediato" + +#: config/tc-aarch64.c:7331 +msgid "shift not allowed for bitmask immediate" +msgstr "desplazamiento no permitido para inmediato de máscara de bits" + +#: config/tc-aarch64.c:7385 +msgid "can't mix relocation modifier with explicit shift" +msgstr "no se puede entremezclar un modificador de reubicación con un desplazamiento explícito" + +#: 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: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:7468 +msgid "invalid use of \"=immediate\"" +msgstr "empleo no válido de \"=inmediato\"" + +#: 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 no válido" + +#: config/tc-aarch64.c:7594 +msgid "the optional immediate offset can only be 0" +msgstr "el desplazamiento de inmediato opcional solo puede ser 0" + +#: 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:7744 +msgid "writeback value must be an immediate constant" +msgstr "el valor retroescritura debe ser una constante 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 ausente" + +#. Make sure this has priority over +#. "invalid addressing mode". +#: config/tc-aarch64.c:7803 +msgid "constant offset required" +msgstr "se requiere un desplazamiento constante" + +#: config/tc-aarch64.c:7951 +msgid "unknown or missing system register name" +msgstr "nombre de registro del sistema desconocido o ausente" + +#: config/tc-aarch64.c:8004 +msgid "unknown or missing operation name" +msgstr "nombre de operación desconocido o ausente" + +#: config/tc-aarch64.c:8017 +msgid "the specified option is not accepted in ISB" +msgstr "la opción especificada no se acepta en ISB" + +#: config/tc-aarch64.c:8029 config/tc-aarch64.c:8046 +msgid "the specified option is not accepted in DSB" +msgstr "la opción especificada no se acepta en DSB" + +#: config/tc-aarch64.c:8060 +msgid "immediate value must be 16, 20, 24, 28" +msgstr "el valor inmediato debe ser 16, 20, 24, 28" + +#: config/tc-aarch64.c:8097 config/tc-aarch64.c:8132 +msgid "missing register index" +msgstr "falta el índice de registros" + +#: config/tc-aarch64.c:8119 +msgid "expected '}' after ZT0" +msgstr "se esperaba '}' tras ZT0" + +#: 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 no manejado" + +#: config/tc-aarch64.c:8292 +msgid "unexpected comma before the omitted optional operand" +msgstr "coma inesperada antes del operando opcional omitido" + +#: config/tc-aarch64.c:8320 +msgid "unexpected characters following instruction" +msgstr "caracteres inesperados después de la instrucción" + +#: 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:8405 +msgid "literal pool insertion failed" +msgstr "falló la inserción en el conjunto de literales" + +#: config/tc-aarch64.c:8476 config/tc-aarch64.c:8529 +#, c-format +msgid "unpredictable transfer with writeback -- `%s'" +msgstr "transferencia impredecible con retroescritura -- «%s»" + +#. ldiapp, stilp +#: config/tc-aarch64.c:8488 +#, c-format +msgid "unpredictable load pair transfer with register overlap -- `%s'" +msgstr "transferencia de par de carga impredecible con solapamiento de registros -- «%s»" + +#: config/tc-aarch64.c:8506 +#, c-format +msgid "unpredictable transfer with writeback (load) -- `%s'" +msgstr "transferencia impredecible con retroescritura (carga) -- «%s»" + +#: config/tc-aarch64.c:8510 +#, c-format +msgid "unpredictable transfer with writeback (store) -- `%s'" +msgstr "transferencia impredecible con retroescritura (almacenamiento) -- «%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 de registros -- «%s»" + +#: config/tc-aarch64.c:8554 config/tc-aarch64.c:8567 +#, c-format +msgid "unpredictable: identical transfer and status registers --`%s'" +msgstr "impredecible: registros de transferencia y estado idénticos -- «%s»" + +#: config/tc-aarch64.c:8562 config/tc-aarch64.c:8576 +#, c-format +msgid "unpredictable: identical base and status registers --`%s'" +msgstr "impredecible: registros de base y estado idénticos -- «%s»" + +#: config/tc-aarch64.c:8596 +#, c-format +msgid "previous `%s' sequence has not been closed" +msgstr "la secuencia «%s» previa no se ha cerrado" + +#: config/tc-aarch64.c:8685 +#, c-format +msgid "unknown mnemonic -- `%s'" +msgstr "mnemónico desconocido -- `%s'" + +#: config/tc-aarch64.c:8695 +#, c-format +msgid "unknown mnemonic `%s' -- `%s'" +msgstr "mnemónico desconocido `%s' -- `%s'" + +#: config/tc-aarch64.c:8703 +#, c-format +msgid "unexpected comma after the mnemonic name `%s' -- `%s'" +msgstr "coma inesperada tras el nombre de nemónico «%s» -- «%s»" + +#: config/tc-aarch64.c:8760 +#, c-format +msgid "selected processor does not support `%s'" +msgstr "el procesador seleccionado no admite «%s»" + +#: config/tc-aarch64.c:9262 config/tc-arm.c:27396 +msgid "GOT already in the symbol table" +msgstr "GOT ya está en la tabla de símbolos" + +#: config/tc-aarch64.c:9425 +msgid "immediate cannot be moved by a single instruction" +msgstr "el inmediato no puede moverse mediante una instrucción sencilla" + +#: 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 rango" + +#: 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: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 rango" + +#: 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:9684 +msgid "pc-relative load offset not word aligned" +msgstr "desplazamiento de carga relativo a pc no alineado con palabra" + +#: config/tc-aarch64.c:9687 +msgid "pc-relative load offset out of range" +msgstr "desplazamiento de carga relativo a pc fuera de rango" + +#: config/tc-aarch64.c:9699 +msgid "pc-relative address offset out of range" +msgstr "desplazamiento de dirección relativo a pc fuera de rango" + +#: config/tc-aarch64.c:9711 config/tc-aarch64.c:9726 +msgid "conditional branch target not word aligned" +msgstr "objetivo de ramificación condicional no alineado con palabra" + +#: 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 rango" + +#: config/tc-aarch64.c:9742 +msgid "branch target not word aligned" +msgstr "objetivo de ramificación no alineado con palabra" + +#: 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 rango" + +#: 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 rango" + +#: config/tc-aarch64.c:9819 +msgid "unsigned value out of range" +msgstr "valor sin signo fuera de rango" + +#: config/tc-aarch64.c:9830 +msgid "signed value out of range" +msgstr "valor con signo fuera de rango" + +#: config/tc-aarch64.c:9985 +#, c-format +msgid "unexpected %s fixup" +msgstr "corrección inesperada %s" + +#: 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:10096 +#, c-format +msgid "cannot do %u-byte relocation" +msgstr "no puede hacer reubicación de %u bytes" + +#: config/tc-aarch64.c:10524 config/tc-arm.c:30425 +msgid "assemble for big-endian" +msgstr "ensamblar para big-endian" + +#: config/tc-aarch64.c:10525 config/tc-arm.c:30426 +msgid "assemble for little-endian" +msgstr "ensamblar para little-endian" + +#: config/tc-aarch64.c:10528 +msgid "temporary switch for dumping" +msgstr "intercambiado temporal para volcado" + +#: config/tc-aarch64.c:10530 +msgid "output verbose error messages" +msgstr "sacar mensajes de error detallados" + +#: config/tc-aarch64.c:10532 +msgid "do not output verbose error messages" +msgstr "no sacar mensajes de error detallados" + +#: 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:10901 config/tc-arm.c:31646 +msgid "must specify extensions to add before specifying those to remove" +msgstr "se deben especificar las extensiones que hay que añadir antes de especificar las que hay que borrar" + +#: config/tc-aarch64.c:10909 config/tc-arm.c:31654 +msgid "missing architectural extension" +msgstr "falta la extensión de la arquitectura" + +#: config/tc-aarch64.c:10937 config/tc-arm.c:31740 +#, c-format +msgid "unknown architectural extension `%s'" +msgstr "extensión arquitectural desconocida «%s»" + +#: config/tc-aarch64.c:10962 config/tc-arm.c:31790 config/tc-metag.c:5832 +#, c-format +msgid "missing cpu name `%s'" +msgstr "falta el nombre de cpu «%s»" + +#: 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 "cpu desconocida `%s'" + +#: config/tc-aarch64.c:10991 config/tc-arm.c:31843 +#, c-format +msgid "missing architecture name `%s'" +msgstr "falta el nombre de la arquitectura «%s»" + +#: 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 "arquitectura desconocida «%s» \n" + +#: config/tc-aarch64.c:11029 +#, c-format +msgid "missing abi name `%s'" +msgstr "falta el nombre de abi «%s»" + +#: config/tc-aarch64.c:11040 +#, c-format +msgid "unknown abi `%s'\n" +msgstr "abi desconocida «%s»\n" + +#: config/tc-aarch64.c:11053 +msgid "<abi name>\t specify for ABI <abi name>" +msgstr "<nombre de abi>\t específica para ABI el <nombre de abi>" + +#: 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 de cpu>\t ensambla para la CPU <nombre de cpu>" + +#: config/tc-aarch64.c:11057 config/tc-arm.c:31954 +msgid "<arch name>\t assemble for architecture <arch name>" +msgstr "<nombre de arq>\t ensambla para la arquitectura <nombre de arq>" + +#: 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:11135 +#, c-format +msgid " AArch64-specific assembler options:\n" +msgstr " Opciones de ensamblador específicas de AArch64:\n" + +#: 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 una cpu big-endian\n" + +#: 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 una cpu little-endian\n" + +#: config/tc-alpha.c:648 +#, c-format +msgid "No !literal!%ld was found" +msgstr "No se ha encontrado ningún !literal!%ld" + +#: config/tc-alpha.c:655 +#, c-format +msgid "No !tlsgd!%ld was found" +msgstr "No se ha encontrado ningún !tlsgd!%ld" + +#: config/tc-alpha.c:662 +#, c-format +msgid "No !tlsldm!%ld was found" +msgstr "No se ha encontrado ningún !tlsldm!%ld" + +#: config/tc-alpha.c:671 +#, c-format +msgid "No ldah !gpdisp!%ld was found" +msgstr "No se ha encontrado ningún !gpdisp!%ld ldah" + +#: config/tc-alpha.c:721 +#, c-format +msgid "too many !literal!%ld for %s" +msgstr "demasiados !literal!%ld para %s" + +#: config/tc-alpha.c:751 +#, c-format +msgid "No lda !gpdisp!%ld was found" +msgstr "No se ha encontrado ningún !gpdisp!%ld lda" + +#. Only support one relocation op per insn. +#: 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:925 config/tc-arc.c:1137 +msgid "No relocation operand" +msgstr "No hay operando de reubicación" + +#: config/tc-alpha.c:935 +#, c-format +msgid "Unknown relocation operand: !%s" +msgstr "Operando de reubicación desconocido: !%s" + +#: 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:955 +#, c-format +msgid "!%s does not use a sequence number" +msgstr "!%s no utiliza un número de secuencia" + +#: config/tc-alpha.c:965 +#, c-format +msgid "Bad sequence number: !%s!%s" +msgstr "Número de secuencia incorrecto: !%s!%s" + +#: 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 de operación «%s»" + +#: 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 de operación «%s» para el objetivo %s" + +#: 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 de operación desconocido «%s»" + +#: config/tc-alpha.c:1271 config/tc-alpha.c:1530 +msgid "overflow in literal (.lita) table" +msgstr "desbordamiento en la tabla (.lita) de literales" + +#: 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: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:1489 +msgid "bignum invalid; zero assumed" +msgstr "bignum inválido; se asume cero" + +#: 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:1496 +msgid "can't handle expression" +msgstr "no se puede manejar la expresión" + +#: config/tc-alpha.c:1536 +msgid "overflow in literal (.lit8) table" +msgstr "desbordamiento en la tabla (.lit8) de literales" + +#: 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: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:1845 +#, c-format +msgid "too many lda insns for !gpdisp!%ld" +msgstr "demasiadas insns lda para !gpdisp!%ld" + +#: 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:1904 +#, c-format +msgid "too many lituse insns for !lituse_tlsldm!%ld" +msgstr "demasiadas insns lituse para !lituse_tlsldm!%ld" + +#: config/tc-alpha.c:1921 +#, c-format +msgid "duplicate !tlsgd!%ld" +msgstr "!tlsgd!%ld duplicado" + +#: 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:1937 +#, c-format +msgid "duplicate !tlsldm!%ld" +msgstr "!tlsldm!%ld duplicado" + +#: 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: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:2133 +msgid "invalid relocation for instruction" +msgstr "reubicación no válida para la instrucción" + +#: config/tc-alpha.c:2147 +msgid "invalid relocation for field" +msgstr "reubicación no válida para el campo" + +#: 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-microblaze.c:183 config/tc-ppc.c:2407 +#, c-format +msgid ".COMMon length (%ld.) <0! Ignored." +msgstr "¡Longitud de .COMMon (%ld.) <0! Se descarta." + +#: 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: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." + +#: config/tc-alpha.c:3724 +msgid ".ent directive has no name" +msgstr "la directiva .ent no tiene nombre" + +#: config/tc-alpha.c:3732 +msgid "nested .ent directives" +msgstr "directivas .ent anidadas" + +#: config/tc-alpha.c:3776 ecoff.c:2996 +msgid ".end directive has no name" +msgstr "la directiva .end no tiene nombre" + +#: config/tc-alpha.c:3784 +msgid ".end directive without matching .ent" +msgstr "directiva .end sin su correspondiente .ent" + +#: config/tc-alpha.c:3786 +msgid ".end directive names different symbol than .ent" +msgstr "la directiva .end nombra un símbolo diferente que la .ent" + +#: 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:5582 ecoff.c:3196 +msgid ".mask outside of .ent" +msgstr ".mask fuera de .ent" + +#: config/tc-alpha.c:3839 ecoff.c:3139 +msgid "bad .fmask directive" +msgstr "directiva .fmask incorrecta" + +#: config/tc-alpha.c:3841 ecoff.c:3203 +msgid "bad .mask directive" +msgstr "directiva .mask incorrecta" + +#: 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:19937 ecoff.c:3171 +msgid "bad .frame directive" +msgstr "directiva .frame incorrecta" + +#: config/tc-alpha.c:3919 +msgid ".prologue directive without a preceding .ent directive" +msgstr "directiva .prologue sin una directiva .ent precedente" + +#: config/tc-alpha.c:3937 +#, c-format +msgid "Invalid argument %d to .prologue." +msgstr "Argumento inválido %d para .prologue." + +#: config/tc-alpha.c:4026 +msgid "ECOFF debugging is disabled." +msgstr "La depuración ECOFF está desactivada." + +#: config/tc-alpha.c:4040 +msgid ".ent directive without matching .end" +msgstr "directiva .ent sin su correspondiente .end" + +#: config/tc-alpha.c:4133 +msgid ".usepv directive has no name" +msgstr "la directiva .usepv no tiene nombre" + +#: config/tc-alpha.c:4146 +msgid ".usepv directive has no type" +msgstr "la directiva .usepv no tiene tipo" + +#: config/tc-alpha.c:4161 +msgid "unknown argument for .usepv" +msgstr "argumento desconocido para .usepv" + +#: config/tc-alpha.c:4274 +#, c-format +msgid "unknown section attribute %s" +msgstr "atributo de sección %s desconocido" + +#: config/tc-alpha.c:4369 +msgid "previous .ent not closed by a .end" +msgstr "el .ent previo no está cerrado por un .end" + +#: config/tc-alpha.c:4390 +msgid ".ent directive has no symbol" +msgstr "la directiva .ent no tiene símbolo" + +#: config/tc-alpha.c:4415 +msgid ".handler directive has no name" +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 incorrecto" + +#: config/tc-alpha.c:4456 +#, c-format +msgid "Bad RA (%d) register for .frame" +msgstr "Registro RA (%d) incorrecto para .frame" + +#: config/tc-alpha.c:4461 +msgid "Bad .frame directive 3./4. param" +msgstr "Parámetro 3./4. de directiva .frame incorrecto" + +#: config/tc-alpha.c:4497 +msgid ".pdesc directive not in link (.link) section" +msgstr "la directiva .pdesc no está en la sección de enlace (.link)" + +#: config/tc-alpha.c:4504 +msgid ".pdesc directive has no entry symbol" +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 incorrecto" + +#: config/tc-alpha.c:4526 +msgid ".pdesc doesn't match with last .ent" +msgstr ".pdesc no se corresponde con el último .ent" + +#: config/tc-alpha.c:4541 +msgid "No comma after .pdesc <entryname>" +msgstr "No hay una coma tras .pdesc <nombredeentrada>" + +#: config/tc-alpha.c:4561 +msgid "unknown procedure kind" +msgstr "clase de procedimiento desconocida" + +#: config/tc-alpha.c:4656 +msgid ".name directive not in link (.link) section" +msgstr "la directiva .name no está en la sección de enlace (.link)" + +#: config/tc-alpha.c:4664 +msgid ".name directive has no symbol" +msgstr "la directiva .name no tiene símbolo" + +#: config/tc-alpha.c:4698 +msgid "No symbol after .linkage" +msgstr "No hay un símbolo tras .linkage" + +#: config/tc-alpha.c:4745 +msgid "No symbol after .code_address" +msgstr "No hay un símbolo tras .code_address" + +#: config/tc-alpha.c:4771 config/tc-score.c:5588 +msgid "Bad .mask directive" +msgstr "Directiva .mask incorrecta" + +#: config/tc-alpha.c:4789 +msgid "Bad .fmask directive" +msgstr "Directiva .fmask incorrecta" + +#: config/tc-alpha.c:4946 +#, c-format +msgid "Expected comma after name \"%s\"" +msgstr "Se esperaba una coma tras nombre «%s»" + +#: config/tc-alpha.c:4958 +#, c-format +msgid "unhandled: .proc %s,%d" +msgstr "sin manejar: .proc %s,%d" + +#: config/tc-alpha.c:4991 +#, c-format +msgid "Tried to .set unrecognized mode `%s'" +msgstr "Se ha intentado .set de un modo no reconocido «%s»" + +#: config/tc-alpha.c:5017 +#, c-format +msgid "Bad base register, using $%d." +msgstr "Registro base incorrecto; se usa $%d." + +#: config/tc-alpha.c:5038 +#, c-format +msgid "Alignment too large: %d. assumed" +msgstr "Alineación demasiado grande: se asume %d." + +#: 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:5628 +#, c-format +msgid "Unknown CPU identifier `%s'" +msgstr "Identificador de CPU desconocido «%s»" + +#: config/tc-alpha.c:5328 +#, c-format +msgid "Chose GP value of %lx\n" +msgstr "Se ha escogido 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 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 +#, c-format +msgid "duplicate %s" +msgstr "duplicado «%s»" + +#: 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 de sintaxis" + +#: config/tc-alpha.c:5679 +msgid "" +"Alpha options:\n" +"-32addr\t\t\ttreat addresses as 32-bit values\n" +"-F\t\t\tlack floating point instructions support\n" +"-mev4 | -mev45 | -mev5 | -mev56 | -mpca56 | -mev6 | -mev67 | -mev68 | -mall\n" +"\t\t\tspecify variant of Alpha architecture\n" +"-m21064 | -m21066 | -m21164 | -m21164a | -m21164pc | -m21264 | -m21264a | -m21264b\n" +"\t\t\tthese variants include PALcode opcodes\n" +msgstr "" +"Opciones Alpha:\n" +"-32addr\t\t\ttrata direcciones como valores de 32 bits\n" +"-F\t\t\tsin soporte de instrucciones de coma flotante\n" +"-mev4 | -mev45 | -mev5 | -mev56 | -mpca56 | -mev6 | -mev67 | -mev68 | -mall\n" +"\t\t\tespecifica variante de la arquitectura Alpha\n" +"-m21064 | -m21066 | -m21164 | -m21164a | -m21164pc | -m21264 | -m21264a | -m21264b\n" +"\t\t\testas variantes incluyen códigos de operación PALcode\n" + +#: config/tc-alpha.c:5689 +msgid "" +"VMS options:\n" +"-+\t\t\tencode (don't truncate) names longer than 64 characters\n" +"-H\t\t\tshow new symbol after hash truncation\n" +"-replace/-noreplace\tenable or disable the optimization of procedure calls\n" +msgstr "" +"Opciones VMS:\n" +"-+\t\t\tcodifica (no trunca) los nombres más largos de 64 caracteres\n" +"-H\t\t\tmuestra el símbolo nuevo después del truncado hash\n" +"-replace/-noreplace\tactiva o desactiva la optimización de llamadas a procedimientos\n" + +#: config/tc-alpha.c:5946 config/tc-arc.c:3145 +#, c-format +msgid "unhandled relocation type %s" +msgstr "tipo de reubicación %s sin manejar" + +#: 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:5973 +#, c-format +msgid "type %d reloc done?\n" +msgstr "¿tipo %d de reubicación hecha?\n" + +#: 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: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: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:6246 config/tc-arc.c:3282 +#, c-format +msgid "internal error? cannot generate `%s' relocation" +msgstr "¿error interno? no se puede generar la reubicación «%s»" + +#: 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:831 +#, c-format +msgid "invalid %s option for %s cpu" +msgstr "opción %s no válida para cpu %s" + +#: config/tc-arc.c:836 +msgid "conflicting ISA extension attributes." +msgstr "atributos de extensión ISA en conflicto." + +#: config/tc-arc.c:856 +msgid "Multiple .cpu directives found" +msgstr "Se han encontrado varias directivas .cpu" + +#: config/tc-arc.c:874 +msgid "Command-line value overrides \".cpu\" directive" +msgstr "el Valor de línea de órdenes invalida la directiva «.cpu»" + +#: config/tc-arc.c:890 +#, c-format +msgid "unknown architecture: %s\n" +msgstr "arquitectura desconocida: %s\n" + +#: 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 ha podido establecer la arquitectura y la máquina" + +#: config/tc-arc.c:1126 +msgid "No valid label relocation operand" +msgstr "Operando de reubicación de etiqueta no válido" + +#: config/tc-arc.c:1150 +#, c-format +msgid "Unknown relocation operand: @%s" +msgstr "Operando de reubicación desconocido: @%s" + +#: config/tc-arc.c:1163 +#, c-format +msgid "Unable to parse TLS base: %s" +msgstr "Imposible interpretar base TLS: %s" + +#: 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:1193 +#, c-format +msgid "Bad expression: @%s + %s." +msgstr "Expresión incorrecta: @%s + %s." + +#: config/tc-arc.c:1343 +msgid "Brackets in operand field incorrect" +msgstr "Corchetes en campo de operando incorrectos" + +#: config/tc-arc.c:1345 config/tc-xtensa.c:2072 +msgid "extra comma" +msgstr "coma extra" + +#: config/tc-arc.c:1347 config/tc-pru.c:1457 config/tc-pru.c:1705 +#: config/tc-xtensa.c:2076 +msgid "missing argument" +msgstr "falta un argumento" + +#: config/tc-arc.c:1349 config/tc-xtensa.c:2078 +msgid "missing comma or colon" +msgstr "falta coma o dos puntos" + +#: config/tc-arc.c:1418 +msgid "extra dot" +msgstr "punto extra" + +#: config/tc-arc.c:1420 +msgid "unrecognized flag" +msgstr "marca no reconocida" + +#: config/tc-arc.c:1422 +msgid "failed to parse flags" +msgstr "no se han podido interpretar las marcas" + +#: config/tc-arc.c:1448 +msgid "Unhandled reloc type" +msgstr "Tipo de reubicación no manejado" + +#: config/tc-arc.c:1967 +msgid "immediate is out of bounds" +msgstr "el inmediato está fuera de límites" + +#: config/tc-arc.c:1975 +msgid "immediate is not 32bit aligned" +msgstr "el inmediato no está alineado a 32 bits" + +#: config/tc-arc.c:1982 +msgid "immediate is not 16bit aligned" +msgstr "el inmediato no está alineado a 16 bits" + +#: config/tc-arc.c:2063 +msgid "operand is not duplicate of the previous one" +msgstr "el operando no es un duplicado del anterior" + +#: config/tc-arc.c:2083 +msgid "flag mismatch" +msgstr "marca discordante" + +#: 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 la instrucción «%s»" + +#: config/tc-arc.c:2502 +#, c-format +msgid "inappropriate arguments for opcode '%s'" +msgstr "argumentos inapropiados para el código de operación «%s»" + +#: config/tc-arc.c:2504 +#, c-format +msgid "opcode '%s' not supported for target %s" +msgstr "no se admite el código de operación «%s» para el objetivo %s" + +#: config/tc-arc.c:2508 config/tc-tic6x.c:3188 +#, c-format +msgid "unknown opcode '%s'" +msgstr "código de operación desconocido «%s»" + +#: 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 ha podido establecer la arquitectura y la máquina" + +#: config/tc-arc.c:2815 +#, c-format +msgid "unhandled reloc %s in md_pcrel_from_section" +msgstr "reubicación no manejada %s en md_pcrel_from_section" + +#: config/tc-arc.c:2880 +msgid "Unaligned operand. Needs to be 32bit aligned" +msgstr "Operando no alineado. Requiere ser alineado a 32 bits" + +#: config/tc-arc.c:2885 +msgid "Unaligned operand. Needs to be 16bit aligned" +msgstr "Operando no alineado. Requiere ser alineado a 16 bits" + +#: config/tc-arc.c:3016 +#, c-format +msgid "PC relative relocation not allowed for (internal) type %d" +msgstr "Reubicación relativa a PC no permitida para el tipo (interno) %d" + +#. FIXME! Check for the conditionality of +#. the insn. +#. FIXME! Check for the conditionality of +#. the insn. +#: config/tc-arc.c:3061 config/tc-arc.c:4042 +msgid "TLS_*_S9 relocs are not supported yet" +msgstr "Las reubicaciones TLS_*_S9 todavía no están disponibles" + +#. 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:3097 +msgid "Unsupported operation on reloc" +msgstr "Operación no soportada en reubicación" + +#: config/tc-arc.c:3173 config/tc-arc.c:3189 +msgid "unknown fixup size" +msgstr "tamaño de la corrección desconocido" + +#: 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:3576 +#, c-format +msgid "ARC-specific assembler options:\n" +msgstr "Opciones de ensamblador específicas de ARC:\n" + +#: config/tc-arc.c:3602 +#, c-format +msgid " -mrelax enable relaxation\n" +msgstr " -mrelax activa la relajación\n" + +#: 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 "" +"Las siguientes opciones de ensamblador específicas de ARC están obsoletas y\n" +"se aceptan únicamente por compatibilidad:\n" + +#: config/tc-arc.c:3608 +#, c-format +msgid "" +" -mEA\n" +" -mbarrel-shifter\n" +" -mbarrel_shifter\n" +" -mcrc\n" +" -mdsp-packa\n" +" -mdsp_packa\n" +" -mdvbf\n" +" -mld-extension-reg-mask\n" +" -mlock\n" +" -mmac-24\n" +" -mmac-d16\n" +" -mmac_24\n" +" -mmac_d16\n" +" -mmin-max\n" +" -mmin_max\n" +" -mmul64\n" +" -mno-mpy\n" +" -mnorm\n" +" -mrtsc\n" +" -msimd\n" +" -mswap\n" +" -mswape\n" +" -mtelephony\n" +" -muser-mode-only\n" +" -mxy\n" +msgstr "" +" -mEA\n" +" -mbarrel-shifter\n" +" -mbarrel_shifter\n" +" -mcrc\n" +" -mdsp-packa\n" +" -mdsp_packa\n" +" -mdvbf\n" +" -mld-extension-reg-mask\n" +" -mlock\n" +" -mmac-24\n" +" -mmac-d16\n" +" -mmac_24\n" +" -mmac_d16\n" +" -mmin-max\n" +" -mmin_max\n" +" -mmul64\n" +" -mno-mpy\n" +" -mnorm\n" +" -mrtsc\n" +" -msimd\n" +" -mswap\n" +" -mswape\n" +" -mtelephony\n" +" -muser-mode-only\n" +" -mxy\n" + +#: config/tc-arc.c:3698 +#, c-format +msgid "Unable to find %s relocation for instruction %s" +msgstr "No se ha podido encontrar la reubicacion de %s para la instrucción %s" + +#: config/tc-arc.c:3993 +#, c-format +msgid "Unable to use @plt relocation for insn %s" +msgstr "No se ha podido utilizar la reubicación de @plt para la insn %s" + +#: config/tc-arc.c:4012 +#, c-format +msgid "Unable to use @pcl relocation for insn %s" +msgstr "No se ha podido emplear la reubicación de @pcl para la insn %s" + +#: config/tc-arc.c:4068 +#, c-format +msgid "invalid relocation %s for field" +msgstr "reubicación no válida %s para el campo" + +#: 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 de salto/bifurcación %s en su ranura de retardo." + +#: 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 su ranura de retardo." + +#: 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:4313 +#, c-format +msgid "Jump/Branch instruction detected at the end of the ZOL label @%s" +msgstr "Instrucción de Salto/Bifurcación detectada al final de la etiqueta ZOL @%s" + +#: config/tc-arc.c:4320 +#, c-format +msgid "Kernel instruction detected at the end of the ZOL label @%s" +msgstr "Instrucción del núcleo detectada al final de la etiqueta ZOL @%s" + +#: config/tc-arc.c:4325 +#, c-format +msgid "A jump instruction with long immediate detected at the end of the ZOL label @%s" +msgstr "Instrucción de salto con inmediato largo detectada al final de la etiqueta ZOL @%s" + +#: config/tc-arc.c:4331 +#, c-format +msgid "An illegal use of delay slot detected at the end of the ZOL label @%s" +msgstr "Uso ilegal de la ranura de retardo detectado al final del etiqueta ZOL @%s" + +#: config/tc-arc.c:4440 +msgid "expected comma after instruction name" +msgstr "se esperaba coma después del nombre de la instrucción" + +#: config/tc-arc.c:4452 +msgid "expected comma after major opcode" +msgstr "se esperaba coma después del código de operación mayor" + +#: config/tc-arc.c:4637 +#, c-format +msgid "Pseudocode already used %s" +msgstr "Pseudocódigo ya utilizado %s" + +#: config/tc-arc.c:4645 +#, c-format +msgid "major opcode not in range [0x%02x - 0x%02x]" +msgstr "código de operación mayor no dentro del rango [0x%02x - 0x%02x]" + +#: config/tc-arc.c:4649 +msgid "minor opcode not in range [0x00 - 0x3f]" +msgstr "código de operación menor no dentro del rango [0x00 - 0x3f]" + +#: config/tc-arc.c:4655 +msgid "Improper use of OP1_IMM_IMPLIED" +msgstr "Utilización impropia de OP1_IMM_IMPLIED" + +#: 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:4673 +msgid "Couldn't generate extension instruction opcodes" +msgstr "No se han podido generar códigos de operación de instrucciones de extensión" + +#: config/tc-arc.c:4708 +msgid "expected comma after name" +msgstr "se esperaba una coma tras el nombre" + +#: config/tc-arc.c:4719 +#, c-format +msgid "%s second argument cannot be a negative number %d" +msgstr "el segundo argumento de %s no puede ser un número negativo %d" + +#: config/tc-arc.c:4734 +msgid "expected comma after register number" +msgstr "se esperaba coma después del número de registro" + +#: config/tc-arc.c:4755 +msgid "invalid mode" +msgstr "modo inválido" + +#: config/tc-arc.c:4773 +msgid "expected comma after register mode" +msgstr "se esperaba coma después del modo de registro" + +#: config/tc-arc.c:4788 +msgid "shortcut designator invalid" +msgstr "designador de atajo inválido" + +#: config/tc-arc.c:4886 +#, c-format +msgid "core register %s value (%d) too large" +msgstr "el registro %s core con un valor (%d) demasiado grande" + +#: config/tc-arc.c:4898 +#, c-format +msgid "duplicate aux register %s" +msgstr "el registro aux duplicado %s" + +#: config/tc-arc.c:4903 +#, c-format +msgid "condition code %s value (%d) too large" +msgstr "código %s de condición con un valor (%d) demasiado grande" + +#: config/tc-arc.c:4920 +msgid "Unknown extension" +msgstr "Extensión desconocida" + +#: config/tc-arc.c:5027 +msgid "Overwrite explicitly set Tag_ARC_CPU_base" +msgstr "La sobreescritura establece explícitamente Tag_ARC_CPU_base" + +#: config/tc-arc.c:5077 +msgid "Overwrite explicitly set Tag_ARC_ABI_rf16 to full register file" +msgstr "La sobreescritura establece explícitamente Tag_ARC_ABI_rf16 al fichero de registros completo" + +#: config/tc-arm.c:702 +msgid "ARM register expected" +msgstr "se esperaba registro ARM" + +#: config/tc-arm.c:703 +msgid "bad or missing co-processor number" +msgstr "número de coprocesador incorrecto o ausente" + +#: config/tc-arm.c:704 +msgid "co-processor register expected" +msgstr "se esperaba un registro de coprocesador" + +#: config/tc-arm.c:705 +msgid "VFP single precision register expected" +msgstr "se esperaba un registro de precisión sencilla VFP" + +#: 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:707 +msgid "Neon quad precision register expected" +msgstr "se esperaba un registro de precisión cuádruple Neon" + +#: config/tc-arm.c:708 +msgid "VFP single or double precision register expected" +msgstr "se esperaba un registro de precisión sencilla o doble VFP" + +#: 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:710 +msgid "Neon single or double precision register expected" +msgstr "se esperaba un registro de precisión sencilla o doble Neon" + +#: config/tc-arm.c:711 +msgid "VFP single, double or Neon quad precision register expected" +msgstr "se esperaba un registro de precisión sencilla o doble VFP, o cuádruple Neon" + +#: config/tc-arm.c:713 +msgid "VFP system register expected" +msgstr "se esperaba un registro de sistema VFP" + +#: config/tc-arm.c:714 +msgid "iWMMXt data register expected" +msgstr "se esperaba un registro de datos iWMMXt" + +#: 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:716 +msgid "iWMMXt scalar register expected" +msgstr "se esperaba un registro escalar iWMMXt" + +#: config/tc-arm.c:717 +msgid "XScale accumulator register expected" +msgstr "se esperaba un registro acumulador XScale" + +#: config/tc-arm.c:718 +msgid "MVE vector register expected" +msgstr "se esperaba un registro vectorial MVE" + +#: config/tc-arm.c:720 +msgid "ZR register expected" +msgstr "se esperaba un registro ZR" + +#: config/tc-arm.c:721 +msgid "Pseudo register expected" +msgstr "Se esperaba un psuedoregistro" + +#. For score5u : div/mul will pop warning message, mmu/alw/asw will pop error message. +#: config/tc-arm.c:889 config/tc-score.c:255 +msgid "bad arguments to instruction" +msgstr "argumentos incorrectos para la instrucción" + +#: config/tc-arm.c:890 +msgid "r13 not allowed here" +msgstr "no se permite r13 aquí" + +#: config/tc-arm.c:891 +msgid "r15 not allowed here" +msgstr "no se permite r15 aquí" + +#: config/tc-arm.c:892 +msgid "Odd register not allowed here" +msgstr "No se permite aquí un registro impar" + +#: config/tc-arm.c:893 +msgid "Even register not allowed here" +msgstr "No se permite aquí un registro par" + +#: config/tc-arm.c:894 +msgid "instruction cannot be conditional" +msgstr "la instrucción no puede ser condicional" + +#: config/tc-arm.c:895 +msgid "registers may not be the same" +msgstr "los registros no pueden ser el mismo" + +#: config/tc-arm.c:896 +msgid "lo register required" +msgstr "se requiere registro lo" + +#: 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:898 +msgid "instruction does not accept this addressing mode" +msgstr "la instrucción no acepta este modo de direccionamiento" + +#: config/tc-arm.c:899 +msgid "branch must be last instruction in IT block" +msgstr "la bifurcación debe ser la última instrucción en el bloque IT" + +#: config/tc-arm.c:900 +msgid "branch out of range or not a multiple of 2" +msgstr "ramificación fuera de rango o no es múltiplo de 2" + +#: config/tc-arm.c:901 +msgid "instruction not allowed in VPT block" +msgstr "no se permite la instrucción en el bloque VPT" + +#: 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:903 +msgid "instruction missing MVE vector predication code" +msgstr "a la instrucción le falta el código de predicación de vector MVE." + +#: 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:905 +msgid "thumb conditional instruction should be in IT block" +msgstr "la instrucción condicional «thumb» debería estar en un bloque IT" + +#: config/tc-arm.c:907 +msgid "vector predicated instruction should be in VPT/VPST block" +msgstr "la strucción predicada de vector debería estar en un bloque VPT/VPST" + +#: config/tc-arm.c:908 +msgid "incorrect condition in IT block" +msgstr "condición incorrecta en bloque IT" + +#: config/tc-arm.c:909 +msgid "incorrect condition in VPT/VPST block" +msgstr "condición incorrecta en bloque VPT/VPST" + +#: config/tc-arm.c:910 +msgid "IT falling in the range of a previous IT block" +msgstr "IT dentro del rango del bloque IT anterior" + +#: config/tc-arm.c:911 +msgid "missing .fnstart before unwinding directive" +msgstr "falta .fnstart antes de directiva de desenrollado" + +#: 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: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:917 +msgid "selected processor does not support fp16 instruction" +msgstr "el procesador seleccionado no admite instrucción fp16" + +#: config/tc-arm.c:918 +msgid "selected processor does not support bf16 instruction" +msgstr "el procesador seleccionado no admite la instrucción bf16" + +#: config/tc-arm.c:919 +msgid "selected processor does not support cde instruction" +msgstr "el procesador seleccionado no admite la instrucción cde" + +#: config/tc-arm.c:920 +msgid "coprocessor for insn is not enabled for cde" +msgstr "el coprocesador para insn no está habilitado para cde" + +#: config/tc-arm.c:921 +msgid "using " +msgstr "empleando " + +#: config/tc-arm.c:922 +msgid "relocation valid in thumb1 code only" +msgstr "reubicación válida solamente en código thumb1" + +#: config/tc-arm.c:923 +msgid "Warning: instruction is UNPREDICTABLE in an IT block" +msgstr "Aviso: la instrucción es IMPREDECIBLE en un bloque IT" + +#: config/tc-arm.c:925 +msgid "Warning: instruction is UNPREDICTABLE in a VPT block" +msgstr "Aviso: la instrucción es IMPREDECIBLE en un bloque VPT" + +#: config/tc-arm.c:927 +msgid "Warning: instruction is UNPREDICTABLE with PC operand" +msgstr "Aviso: la instrucción es IMPREDECIBLE en un operando de PC" + +#: config/tc-arm.c:929 +msgid "Warning: instruction is UNPREDICTABLE with SP operand" +msgstr "Aviso: la instrucción es IMPREDECIBLE en un operando de SP" + +#: config/tc-arm.c:931 +msgid "bad type in SIMD instruction" +msgstr "tipo incorrecto en instrucción SIMD" + +#: 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 "El modo de autodetección de GAS y -march=all está obsoleto para MVE; debe utilizar una opción -arch o -mcpu válida." + +#: config/tc-arm.c:935 +msgid "Warning: 32-bit element size and same destination and source operands makes instruction UNPREDICTABLE" +msgstr "Aviso: el tamaño del elemento de 32 bits y los mismos operandos de destino y origen hacen la instrucción IMPREDECIBLE" + +#: config/tc-arm.c:937 +msgid "bad element type for instruction" +msgstr "tipo elemental incorrecto para la instrucción" + +#: config/tc-arm.c:938 +msgid "MVE vector register Q[0..7] expected" +msgstr "se esperaba un registro vectorial MVE Q[0..7]" + +#: config/tc-arm.c:939 +msgid "selected processor does not support PACBTI extention" +msgstr "el procesador seleccionado no admite la extensión PACBTI" + +#: config/tc-arm.c:1159 +msgid "immediate expression requires a # prefix" +msgstr "e xpresión inmediata requiere un prefijo #" + +#: config/tc-arm.c:1188 read.c:4077 +msgid "missing expression" +msgstr "falta expresión" + +#: 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:1337 +msgid "expected #constant" +msgstr "se esperaba #constant" + +#: config/tc-arm.c:1509 config/tc-arm.c:1540 +#, c-format +msgid "bad size %d in type specifier" +msgstr "tamaño incorrecto %d en el especificador de tipo" + +#: config/tc-arm.c:1516 +msgid "unexpected type character `b' -- did you mean `bf'?" +msgstr "carácter de tipo inesperado `b' -- ¿quiso decir `bf'?" + +#: config/tc-arm.c:1523 +#, c-format +msgid "unexpected character `%c' in type specifier" +msgstr "carácter inesperado `%c' en el especificador de tipo" + +#: config/tc-arm.c:1590 +msgid "only one type should be specified for operand" +msgstr "solo se debe especificar un tipo para el operando" + +#: config/tc-arm.c:1596 +msgid "vector type expected" +msgstr "se esperaba un tipo vector" + +#: config/tc-arm.c:1705 +msgid "expected MVE register [q0..q7]" +msgstr "se esperaba un registro MVE [q0..q7]" + +#: config/tc-arm.c:1725 +msgid "can't redefine type for operand" +msgstr "no se puede redefinir el tipo para el operando" + +#: config/tc-arm.c:1741 +msgid "only D and Q registers may be indexed" +msgstr "solo se pueden indexar los registros D y Q" + +#: config/tc-arm.c:1743 +msgid "only D registers may be indexed" +msgstr "solo se pueden indexar los registros D" + +#: config/tc-arm.c:1749 +msgid "can't change index for operand" +msgstr "no se puede modificar el índice para el operando" + +#: 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:1863 +msgid "scalar must have an index" +msgstr "el escalar debe tener un índice" + +#: 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 rango" + +#: config/tc-arm.c:1947 +msgid "r0-r12, lr or APSR expected" +msgstr "se esperaba r0-r12, lr o APSR" + +#: config/tc-arm.c:1974 config/tc-arm.c:4376 +msgid "bad range in register list" +msgstr "rango incorrecto en la lista de registros" + +#: 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:1994 +msgid "Warning: register range not in ascending order" +msgstr "Aviso: el rango de registros no está en orden ascendente" + +#: config/tc-arm.c:2005 +msgid "missing `}'" +msgstr "falta `}'" + +#: config/tc-arm.c:2021 +msgid "invalid register mask" +msgstr "máscara de registro no válida" + +#: config/tc-arm.c:2098 +msgid "expecting {" +msgstr "se esperaba {" + +#: config/tc-arm.c:2165 config/tc-arm.c:2273 +msgid "VPR expected last" +msgstr "se esperaba VPR lo último" + +#: config/tc-arm.c:2171 +msgid "VFP single precision register or VPR expected" +msgstr "Se esperaba un registro VFP de precisión simple o VPR" + +#. regtype == REG_TYPE_VFD. +#: config/tc-arm.c:2174 +msgid "VFP/Neon double precision register or VPR expected" +msgstr "Se esperaba un registro VFP/Neon de precisión doble o VPR" + +#: config/tc-arm.c:2191 config/tc-arm.c:2235 +msgid "register out of range in list" +msgstr "el registro fuera de rango en la lista" + +#: 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:2244 +msgid "register range not in ascending order" +msgstr "el rango de registros no está en orden ascendente" + +#: config/tc-arm.c:2283 +msgid "non-contiguous register range" +msgstr "el rango de registros no es contiguo" + +#: config/tc-arm.c:2343 +msgid "register stride must be 1" +msgstr "el avance de registro debe ser 1" + +#: config/tc-arm.c:2344 +msgid "register stride must be 1 or 2" +msgstr "el avance de registro debe ser 1 o 2" + +#: config/tc-arm.c:2345 +msgid "mismatched element/structure types in list" +msgstr "los tipos de elementos/estructuras no coinciden en la lista" + +#: config/tc-arm.c:2415 +msgid "don't use Rn-Rm syntax with non-unit stride" +msgstr "no utilice la sintaxis Rn-Rm con avance no unitario" + +#: config/tc-arm.c:2470 +msgid "error parsing element/structure list" +msgstr "error al analizar la lista de elementos/estructuras" + +#: config/tc-arm.c:2476 +msgid "expected }" +msgstr "se esperaba }" + +#: config/tc-arm.c:2566 +msgid "attempt to redefine typed alias" +msgstr "se intentó redefinir el alias con tipo" + +#: config/tc-arm.c:2701 +msgid "bad type for register" +msgstr "tipo incorrecto para el registro" + +#: config/tc-arm.c:2712 +msgid "expression must be constant" +msgstr "la expresión debe ser constante" + +#: config/tc-arm.c:2729 +msgid "can't redefine the type of a register alias" +msgstr "no se puede redefinir el tipo de un alias de registro" + +#: config/tc-arm.c:2736 +msgid "you must specify a single type only" +msgstr "solo debe especificar un único tipo" + +#: 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:2757 +msgid "scalar index must be constant" +msgstr "el índice escalar debe ser constante" + +#: config/tc-arm.c:2766 +msgid "expecting ]" +msgstr "se esperaba ]" + +#: config/tc-arm.c:2818 +msgid "invalid syntax for .dn directive" +msgstr "sintaxis no válida para la directiva .dn" + +#: config/tc-arm.c:2824 +msgid "invalid syntax for .qn directive" +msgstr "sintaxis no válida para la directiva .qn" + +#: 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 fijo: «%s»" + +#: config/tc-arm.c:3116 +#, c-format +msgid "Failed to find real start of function: %s\n" +msgstr "No se ha podido encontrar el inicio real de la función: %s\n" + +#: config/tc-arm.c:3133 +msgid "selected processor does not support THUMB opcodes" +msgstr "el procesador seleccionado no admite códigos operacionales THUMB" + +#: config/tc-arm.c:3146 +msgid "selected processor does not support ARM opcodes" +msgstr "el procesador seleccionado no admite códigos operacionales ARM" + +#: config/tc-arm.c:3158 +#, c-format +msgid "invalid instruction size selected (%d)" +msgstr "se ha seleccionado un tamaño de instrucción no válido (%d)" + +#: 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:3246 +#, c-format +msgid "expected comma after name \"%s\"" +msgstr "se esperaba una coma después del nombre «%s»" + +#: 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:3329 +#, c-format +msgid "unrecognized syntax mode \"%s\"" +msgstr "modo de sintaxis no reconocido «%s»" + +#: config/tc-arm.c:3359 +msgid ".ref pseudo-op only available with -mccs flag." +msgstr "pseudo-op .ref solo disponible con el indicador -mccs." + +#: config/tc-arm.c:3400 +msgid ".asmfunc repeated." +msgstr ".asmfunc repetido." + +#: config/tc-arm.c:3404 +msgid ".asmfunc without function." +msgstr ".asmfunc sin función." + +#: config/tc-arm.c:3410 +msgid ".asmfunc pseudo-op only available with -mccs flag." +msgstr "pseudo-op .asmfunc solo disponible con el indicador -mccs." + +#: config/tc-arm.c:3421 +msgid ".endasmfunc without a .asmfunc." +msgstr ".endasmfunc sin un .asmfunc." + +#: config/tc-arm.c:3425 +msgid ".endasmfunc without function." +msgstr ".endasmfunc sin función." + +#: config/tc-arm.c:3436 +msgid ".endasmfunc pseudo-op only available with -mccs flag." +msgstr "pseudo-op .endasmfunc solo disponible con el indicador -mccs." + +#: config/tc-arm.c:3445 +msgid ".def pseudo-op only available with -mccs flag." +msgstr "pseudo-op .def solo disponible con el indicador -mccs." + +#: config/tc-arm.c:3603 +msgid "invalid type for literal pool" +msgstr "tipo no válido para conjunto de literales" + +#: 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:3860 +msgid "(plt) is only valid on branch targets" +msgstr "(plt) solo es válido en objetivos de bifurcación" + +#: 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:3948 +msgid ".inst.n operand too big. Use .inst.w instead" +msgstr "operando de .inst.n demasiado grande. Utilice .inst.w en su lugar" + +#: 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. Utilice .inst.n/.inst.w en su lugar" + +#: 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:4042 dwarf2dbg.c:1467 +msgid "expected 0 or 1" +msgstr "se esperaba 0 ó 1" + +#: config/tc-arm.c:4046 +msgid "missing comma" +msgstr "falta coma" + +#: config/tc-arm.c:4079 +msgid "duplicate .fnstart directive" +msgstr "directiva .fnstart duplicada" + +#: config/tc-arm.c:4109 config/tc-tic6x.c:410 +msgid "duplicate .handlerdata directive" +msgstr "directiva .handlerdata duplicada" + +#: config/tc-arm.c:4128 +msgid ".fnend directive without .fnstart" +msgstr "directiva .fnend sin .fnstart" + +#: config/tc-arm.c:4195 config/tc-tic6x.c:391 +msgid "personality routine specified for cantunwind frame" +msgstr "se especificó una rutina de personalidad para el marco cantunwind" + +#: config/tc-arm.c:4212 config/tc-tic6x.c:452 +msgid "duplicate .personalityindex directive" +msgstr "directiva .personalityindex duplicada" + +#: config/tc-arm.c:4219 config/tc-tic6x.c:459 +msgid "bad personality routine number" +msgstr "número de rutina de personalidad incorrecto" + +#: config/tc-arm.c:4241 config/tc-tic6x.c:476 +msgid "duplicate .personality directive" +msgstr "directiva .personality duplicada" + +#: config/tc-arm.c:4267 +#, c-format +msgid "Unknown register no. encountered: %d\n" +msgstr "Nº del registro encontrado desconocido: %d\n" + +#: config/tc-arm.c:4363 +msgid "Warning: register list not in ascending order" +msgstr "Aviso: la lista de registros no está en orden ascendente" + +#: 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: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 "rango de registro incorrecto" + +#: config/tc-arm.c:4729 +msgid "register expected" +msgstr "se esperaba un registro" + +#: 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:4801 +msgid "SP and PC not permitted in .unwind_movsp directive" +msgstr "PS y PC no se permiten en la directiva .unwind_movsp" + +#: config/tc-arm.c:4806 +msgid "unexpected .unwind_movsp directive" +msgstr "directiva .unwind_movsp inesperada" + +#: config/tc-arm.c:4833 +msgid "stack increment must be multiple of 4" +msgstr "el incremento de pila debe ser múltiplo de 4" + +#: config/tc-arm.c:4881 +msgid "expected <reg>, <reg>" +msgstr "se esperaba <reg>, <reg>" + +#: 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:4938 +msgid "expected <offset>, <opcode>" +msgstr "se esperaba <desplazamiento>, <códigoop>" + +#: config/tc-arm.c:4950 +msgid "unwind opcode too long" +msgstr "código de operación de desenrollado demasiado largo" + +#: config/tc-arm.c:4955 +msgid "invalid unwind opcode" +msgstr "código de operación de desenredo inválido" + +#: config/tc-arm.c:5070 config/tc-arm.c:31769 +#, c-format +msgid "unrecognised float16 format \"%s\"" +msgstr "formato float16 no reconocido «%s»" + +#: config/tc-arm.c:5081 +msgid "float16 format cannot be set more than once, ignoring." +msgstr "el formato float16 no puede establecerse más de una vez; se descarta." + +#: config/tc-arm.c:5094 +msgid "the floating-point format has not been set (or has been disabled)" +msgstr "el formato de coma flotante no se ha establecido (o se ha deshabilitado)" + +#: 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 rango" + +#: config/tc-arm.c:5474 +msgid "'UXTW' not allowed here" +msgstr "no se permite 'UXTW' aquí" + +#: config/tc-arm.c:5482 +msgid "'LSL' or 'ASR' required" +msgstr "'LSL' o 'ASR' requerido" + +#: config/tc-arm.c:5490 +msgid "'LSL' required" +msgstr "'LSL' requerido" + +#: config/tc-arm.c:5498 +msgid "'ASR' required" +msgstr "'ASR' requerido" + +#: config/tc-arm.c:5505 +msgid "'UXTW' required" +msgstr "'UXTW' requerido" + +#: config/tc-arm.c:5584 +msgid "invalid rotation" +msgstr "rotación no válida" + +#: config/tc-arm.c:5766 config/tc-arm.c:5979 +msgid "unknown group relocation" +msgstr "reubicación de grupo desconocida" + +#: config/tc-arm.c:5802 +msgid "alignment must be constant" +msgstr "el alineamiento debe ser constante" + +#: 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:6069 +msgid "'}' expected at end of 'option' field" +msgstr "se esperaba '}' al final del campo 'option'" + +#: config/tc-arm.c:6074 +msgid "cannot combine index with option" +msgstr "no se puede combinar índice con opción" + +#: config/tc-arm.c:6339 +msgid "unexpected bit specified after APSR" +msgstr "no se esperaba el bit especificado después de APSR" + +#: config/tc-arm.c:6351 +msgid "selected processor does not support DSP extension" +msgstr "el procesador seleccionado no admite la extensión DSP" + +#: config/tc-arm.c:6363 +msgid "bad bitmask specified after APSR" +msgstr "se especificó una máscara de bit incorrecta tras APSR" + +#: config/tc-arm.c:6387 +msgid "writing to APSR without specifying a bitmask is deprecated" +msgstr "escribir en APSR sin especificar una máscara de bit está obsoleto" + +#: 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 "el procesador seleccionado no admite el registro de propósito especial solicitado" + +#: 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:6468 +msgid "unrecognized CPS flag" +msgstr "no se reconoce la opción CPS" + +#: config/tc-arm.c:6475 +msgid "missing CPS flags" +msgstr "faltan las opciones CPS" + +#: 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:6526 +msgid "missing rotation field after comma" +msgstr "falta el campo rotation tras la coma" + +#: config/tc-arm.c:6541 +msgid "rotation can only be 0, 8, 16, or 24" +msgstr "la rotación solo puede ser 0, 8, 16 o 24" + +#: config/tc-arm.c:6570 +msgid "condition required" +msgstr "se requiere una condición" + +#: config/tc-arm.c:6612 config/tc-arm.c:9731 +msgid "'[' expected" +msgstr "se esperaba '['" + +#: config/tc-arm.c:6625 +msgid "',' expected" +msgstr "se esperaba ','" + +#: config/tc-arm.c:6642 +msgid "invalid shift" +msgstr "desplazamiento inválido" + +#: config/tc-arm.c:6722 +msgid "expected ARM or MVE vector register" +msgstr "se esperaba un registro ARM o vectorial MVE" + +#: 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:6840 +msgid "expected <Rm> or <Dm> or <Qm> operand" +msgstr "se esperaba un operando <Rm> o <Dm> o <Qm>" + +#: config/tc-arm.c:6940 +msgid "VFP single, double or MVE vector register expected" +msgstr "Se esperaba un registro VFP de precisión simple o doble o un registro vectorial MVE" + +#: config/tc-arm.c:6960 +msgid "parse error" +msgstr "error de análisis" + +#: config/tc-arm.c:7256 +msgid "immediate value 48 or 64 expected" +msgstr "se esperaba valor inmediato 48 o 64" + +#. ISB can only take SY as an option. +#: config/tc-arm.c:7305 +msgid "invalid barrier type" +msgstr "tipo de barrera no válido" + +#: config/tc-arm.c:7474 +msgid "only floating point zero is allowed as immediate value" +msgstr "solo se permite cero en punto flotante como valor inmediato" + +#: config/tc-arm.c:7569 +msgid "immediate value is out of range" +msgstr "el valor inmediato está fuera de rango" + +#: config/tc-arm.c:7730 +msgid "iWMMXt data or control register expected" +msgstr "se esperaba un registro de datos o de control iWMMXt" + +#: 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:8019 +msgid "operand must be LR register" +msgstr "el operando debe ser registro LR" + +#: config/tc-arm.c:8024 +msgid "operand must be SP register" +msgstr "el operando debe ser registro SP" + +#: config/tc-arm.c:8029 +msgid "operand must be r12" +msgstr "el operando debe ser r12" + +#: 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:8150 +msgid "use of r13 is deprecated" +msgstr "el uso de r13 es obsoleto" + +#: config/tc-arm.c:8168 config/tc-arm.c:20335 +msgid "scalar fp16 instruction cannot be conditional, the behaviour is UNPREDICTABLE" +msgstr "una instrucción fp16 escalar no puede ser condicional, el comportamiento es IMPREDECIBLE" + +#: config/tc-arm.c:8243 +msgid "D register out of range for selected VFP version" +msgstr "el registro D fuera de rango para la versión VFP seleccionada" + +#: 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:8348 +msgid "instruction does not accept preindexed addressing" +msgstr "la instrucción no acepta el direccionamiento preindexado" + +#. unindexed - only for coprocessor +#: config/tc-arm.c:8364 config/tc-arm.c:11221 +msgid "instruction does not accept unindexed addressing" +msgstr "la instrucción no acepta el direccionamiento sin indexar" + +#: config/tc-arm.c:8372 +msgid "destination register same as write-back base" +msgstr "el registro de destino es el mismo que la base de retroescritura" + +#: config/tc-arm.c:8373 +msgid "source register same as write-back base" +msgstr "el registro de origen es el mismo que la base de retroescritura" + +#: config/tc-arm.c:8423 +msgid "use of PC in this instruction is deprecated" +msgstr "el uso de PC en esta instrucción está obsoleto" + +#: config/tc-arm.c:8446 +msgid "instruction does not accept scaled register index" +msgstr "la instrucción no acepta el índice de registro escalado" + +#: config/tc-arm.c:8749 +msgid "invalid pseudo operation" +msgstr "pseudo operación no válida" + +#. 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 +msgid "constant expression not supported" +msgstr "no se admiten las expresiones constantes" + +#: config/tc-arm.c:8995 +msgid "invalid co-processor operand" +msgstr "operando de coprocesador no válido" + +#: config/tc-arm.c:9011 +msgid "instruction does not support unindexed addressing" +msgstr "la instrucción no admite el direccionamiento sin indexar" + +#: config/tc-arm.c:9026 +msgid "pc may not be used with write-back" +msgstr "pc no puede utilizarse con retroescritura" + +#: config/tc-arm.c:9031 +msgid "instruction does not support writeback" +msgstr "la instrucción no admite retroescritura" + +#: config/tc-arm.c:9137 +msgid "Rn must not overlap other operands" +msgstr "Rn no debe solaparse con otros operandos" + +#: config/tc-arm.c:9142 +msgid "swp{b} use is obsoleted for ARMv8 and later" +msgstr "el uso de swp{b} es obsoleto para ARMv8 y posterior" + +#: config/tc-arm.c:9145 +msgid "swp{b} use is deprecated for ARMv6 and ARMv7" +msgstr "el uso de swp{b} es obsoleto para ARMv6 y ARMv7" + +#: 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: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: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: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: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: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:9676 config/tc-arm.c:9685 +msgid "writeback of base register is UNPREDICTABLE" +msgstr "la retroescritura del registro base es IMPREDECIBLE" + +#: config/tc-arm.c:9679 +msgid "writeback of base register when in register list is UNPREDICTABLE" +msgstr "la retroescritura del registro base cuando está en la lista de registros es IMPREDECIBLE" + +#: 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:9726 +msgid "first transfer register must be even" +msgstr "el primer registro de transferencia debe ser par" + +#: config/tc-arm.c:9729 +msgid "can only transfer two consecutive registers" +msgstr "solamente se pueden transferir dos registros consecutivos" + +#. If op 1 were present and equal to PC, this function wouldn't +#. 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: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:9742 +msgid "base register written back, and overlaps second transfer register" +msgstr "el registro base se escribió hacia atrás, y se solapa con el segundo registro de transferencia" + +#: config/tc-arm.c:9752 +msgid "index register overlaps transfer register" +msgstr "el registro de índice se solapa con el registro de transferencia" + +#: config/tc-arm.c:9781 config/tc-arm.c:10498 +msgid "offset must be zero in ARM encoding" +msgstr "el desplazamiento debe ser cero en codificación ARM" + +#: config/tc-arm.c:9794 config/tc-arm.c:10525 +msgid "even register required" +msgstr "se requiere un registro par" + +#: config/tc-arm.c:9797 +msgid "can only load two consecutive registers" +msgstr "solamente se pueden cargar dos registros consecutivos" + +#: config/tc-arm.c:9815 +msgid "ldr to register 15 must be 4-byte aligned" +msgstr "ldr al registro 15 debe estar alineado a 4-bytes" + +#: 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-indexada" + +#: config/tc-arm.c:9897 +msgid "Rd and Rm should be different in mla" +msgstr "Rd y Rm deberían ser diferentes en mla" + +#: config/tc-arm.c:9924 config/tc-arm.c:13100 +msgid ":lower16: not allowed in this instruction" +msgstr ":lower16: no permitido en esta instrucción" + +#: config/tc-arm.c:9926 config/tc-arm.c:13105 +msgid ":upper16: not allowed in this instruction" +msgstr ":upper16: no permitido en esta instrucción" + +#: config/tc-arm.c:9943 +msgid "operand 1 must be FPSCR" +msgstr "el operando 1 debe ser FPSCR" + +#: config/tc-arm.c:9996 config/tc-arm.c:10005 config/tc-arm.c:10059 +#: config/tc-arm.c:10068 +msgid "selected processor does not support instruction" +msgstr "el procesador seleccionado no admite la instrucción" + +#: config/tc-arm.c:10008 config/tc-arm.c:10071 +msgid "accessing MVE system register without MVE is UNPREDICTABLE" +msgstr "acceder al registro del sistema MVE sin MVE es IMPREDECIBLE" + +#: config/tc-arm.c:10099 config/tc-arm.c:13219 +msgid "bad register for mrs" +msgstr "registro incorrecto para mrs" + +#: config/tc-arm.c:10106 config/tc-arm.c:13243 +msgid "'APSR', 'CPSR' or 'SPSR' expected" +msgstr "se esperaba 'APSR', 'CPSR' o 'SPSR'" + +#: config/tc-arm.c:10147 +msgid "Rd and Rm should be different in mul" +msgstr "Rd y Rm deberían ser diferentes en mul" + +#: 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:10172 +msgid "rdhi, rdlo and rm must all be different" +msgstr "rdhi, rdlo y rm deben ser todos diferentes" + +#: config/tc-arm.c:10238 +msgid "'[' expected after PLD mnemonic" +msgstr "se esperaba '[' después del mnemónico PLD" + +#: 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-indexada en la instrucción de precarga" + +#: 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:10244 config/tc-arm.c:10259 +msgid "unindexed addressing used in preload instruction" +msgstr "se utilizó un direccionamiento sin indexar en la instrucción de precarga" + +#: config/tc-arm.c:10253 +msgid "'[' expected after PLI mnemonic" +msgstr "se esperaba '[' tras el mnemónico PLI" + +#: 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:10346 config/tc-arm.c:13728 +msgid "setend use is deprecated for ARMv8" +msgstr "el uso de setend está obsoleto para ARMv8" + +#: 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 del operando para la insn de desplazamiento" + +#: config/tc-arm.c:10377 config/tc-arm.c:13927 +msgid "immediate too large (bigger than 0xF)" +msgstr "inmediato demasiado grande (mayor que 0xF)" + +#: config/tc-arm.c:10401 config/tc-arm.c:10410 +msgid "selected processor does not support SETPAN instruction" +msgstr "el procesador seleccionado no admite instrucción SETPAN" + +#: config/tc-arm.c:10469 +msgid "SRS base register must be r13" +msgstr "el registro base SRS debe ser r13" + +#: config/tc-arm.c:10528 +msgid "can only store two consecutive registers" +msgstr "solamente se pueden almacenar dos registros consecutivos" + +#: 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 SP VFP consecutivos aquí" + +#: 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:10843 +msgid "immediate value out of range, expected range [0, 16]" +msgstr "valor inmediato fuera de rango, se esperaba el rango [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:10850 +msgid "immediate value out of range, expected range [1, 32]" +msgstr "valor inmediato fuera de rango, se esperaba el rango [1, 32]" + +#: config/tc-arm.c:10891 +msgid "only r15 allowed here" +msgstr "solo se permite r15 aquí" + +#: config/tc-arm.c:11026 +msgid "immediate operand requires iWMMXt2" +msgstr "el operando inmediato requiere iWMMXt2" + +#: config/tc-arm.c:11119 +msgid "shift by register not allowed in thumb mode" +msgstr "no se permite desplazar por registro en modo «thumb»" + +#: 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:11164 +msgid "cannot use register index with this instruction" +msgstr "no se puede utilizar índice de registro con esta instrucción" + +#: config/tc-arm.c:11166 +msgid "Thumb does not support negative register indexing" +msgstr "Thumb no admite el indexado negativo de registro" + +#: config/tc-arm.c:11168 +msgid "Thumb does not support register post-indexing" +msgstr "Thumb no admite el post-indexado de registro" + +#: config/tc-arm.c:11170 +msgid "Thumb does not support register indexing with writeback" +msgstr "Thumb no admite el indexado de registro con retroescritura" + +#: config/tc-arm.c:11172 +msgid "Thumb supports only LSL in shifted register indexing" +msgstr "Thumb solo admite LSL en el indexado desplazado de registro" + +#: config/tc-arm.c:11181 config/tc-arm.c:19703 +msgid "shift out of range" +msgstr "desplazamiento fuera de rango" + +#: 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:11211 +msgid "cannot use post-indexing with PC-relative addressing" +msgstr "no se puede usar post-indexado con el direccionamiento relativo al PC" + +#: config/tc-arm.c:11212 +msgid "cannot use post-indexing with this instruction" +msgstr "no se puede usar post-indexado con esta instrucción" + +#: config/tc-arm.c:11450 +msgid "cannot honor width suffix" +msgstr "no se puede honrar el sufijo de anchura" + +#: config/tc-arm.c:11464 +msgid "only SUBS PC, LR, #const allowed" +msgstr "solo se permiten SUBS PC, LR, #const" + +#: 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:11552 +msgid "shift value over 3 not allowed in thumb mode" +msgstr "no se permite el valor de desplazamiento superior a 3 en modo «thumb»" + +#: config/tc-arm.c:11554 +msgid "only LSL shift allowed in thumb mode" +msgstr "solamente se permite el desplazamiento LSL en modo «thumb»" + +#: 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:11593 config/tc-arm.c:11830 config/tc-arm.c:13343 +msgid "dest must overlap one source register" +msgstr "dest debe solaparse con un registro fuente" + +#: 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:11965 +msgid "selected architecture does not support wide conditional branch instruction" +msgstr "la arquitectura seleccionada no admite la instrucción de bifurcación condicional ancha" + +#: config/tc-arm.c:11998 +msgid "instruction is always unconditional" +msgstr "la instrucción es siempre incondicional" + +#: config/tc-arm.c:12173 +msgid "selected processor does not support 'A' form of this instruction" +msgstr "el procesador seleccionado no admite la forma 'A' de esta instrucción" + +#: 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:12301 +msgid "SP not allowed in register list" +msgstr "SP no admitido en lista de registros" + +#: config/tc-arm.c:12305 +msgid "having the base register in the register list when using write back is UNPREDICTABLE" +msgstr "tener el registro base en la lista de registros al usar retroescritura es IMPREDECIBLE" + +#: 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 en la lista de registros" + +#: config/tc-arm.c:12321 +msgid "PC not allowed in register list" +msgstr "PC no admitido en la lista de registros" + +#: config/tc-arm.c:12366 +msgid "Thumb load/store multiple does not support {reglist}^" +msgstr "Thumb carga/almacenamiento múltiples no admite {reglist}^" + +#: config/tc-arm.c:12444 config/tc-arm.c:12478 +#, c-format +msgid "value stored for r%d is UNKNOWN" +msgstr "el valor almacenado para r%d es DESCONOCIDO" + +#: config/tc-arm.c:12471 +msgid "Thumb-2 instruction only valid in unified syntax" +msgstr "Thumb-2 como instrucción solo válida en sintaxis unificada" + +#: 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: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: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: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: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: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:12668 +msgid "r15 based store not allowed" +msgstr "no se permite el almacenamiento basado en r15" + +#: 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:12727 +msgid "r12 not allowed here" +msgstr "r12 no permitido aquí" + +#: config/tc-arm.c:12733 +msgid "base register written back, and overlaps one of transfer registers" +msgstr "registro base escrito atrás, y se solapa con uno de los registros de transferencia" + +#: 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 "La utilización de r%u como registro origen está obsoleta cuando r%u es el registro destino." + +#: 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 solo se admiten en la sintaxis unificada" + +#: config/tc-arm.c:13084 +msgid "only lo regs allowed with immediate" +msgstr "solo se permiten registros lo con inmediatos" + +#: 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:13348 +msgid "Thumb-2 MUL must not set flags" +msgstr "MUL de Thumb-2 no debe establecer modificadores" + +#: config/tc-arm.c:13413 +msgid "Thumb does not support NOP with hints" +msgstr "Thumb no admite NOP con pistas" + +#: 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:13848 +msgid "source1 and dest must be same register" +msgstr "source1 y dest deben ser el mismo registro" + +#: config/tc-arm.c:13873 +msgid "ror #imm not supported" +msgstr "no se admite ror #imm" + +#: 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:14090 +msgid "Thumb encoding does not support rotation" +msgstr "Thumb como codificación no admite rotación" + +#: config/tc-arm.c:14110 +msgid "instruction requires register index" +msgstr "la instrucción requiere un índice de registro" + +#: 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:14276 config/tc-arm.c:29201 +msgid "out of range label-relative fixup value" +msgstr "valor de corrección relativo a etiqueta fuera de rango" + +#: config/tc-arm.c:14600 +msgid "invalid neon suffix for non neon instruction" +msgstr "sufijo neon inválido para instrucción que no es neon" + +#: 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 "aspecto de la instrucción no válido" + +#: config/tc-arm.c:15247 +msgid "types specified in both the mnemonic and operands" +msgstr "tipos especificado tanto en mnemónico como en operandos" + +#: 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:15290 +msgid "type specifier has the wrong number of parts" +msgstr "el especificador de tipo tiene un número incorrecto de partes" + +#: 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 operando debe coincidir con la anchura del registro" + +#: config/tc-arm.c:15398 +msgid "inconsistent types in Neon instruction" +msgstr "tipos incoherente en la instrucción Neon" + +#: 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: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 rango [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 rango [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 rango para desplazamiento" + +#: 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: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 "el 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 rango [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 rango [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 rango [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 rango [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 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:18326 +msgid "instruction form not available on this architecture." +msgstr "relleno de instrucción no disponible en esta arquitectura." + +#: config/tc-arm.c:18329 +msgid "this instruction implies use of ARMv8.1 AdvSIMD." +msgstr "" + +#: config/tc-arm.c:18436 config/tc-arm.c:18461 +msgid "immediate out of range for insert" +msgstr "inmediato fuera de rango para insert" + +#: config/tc-arm.c:18608 +msgid "immediate out of range for narrowing operation" +msgstr "inmediato fuera de rango para la operación de estrechamiento" + +#: 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:18861 config/tc-arm.c:21138 +msgid "invalid rounding mode" +msgstr "modo entorno inválido" + +#: 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: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:19577 +msgid "vfmal/vfmsl with FP16 type cannot be conditional, the behaviour is UNPREDICTABLE" +msgstr "" + +#: 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: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: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 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:20228 config/tc-arm.c:20239 +msgid "VFP registers must be adjacent" +msgstr "VFP como registros deben ser adyacentes" + +#: config/tc-arm.c:20329 +msgid "invalid suffix" +msgstr "sufijo inválido" + +#: config/tc-arm.c:20483 +msgid "bad list length for table lookup" +msgstr "longitud de lista incorrecta para la búsqueda de tabla" + +#: 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: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:20595 +msgid "Use of PC here is deprecated" +msgstr "El uso de PC aquí es obsoleto" + +#: config/tc-arm.c:20629 +#, fuzzy +#| msgid "instruction does not accept scaled register index" +msgid "instruction does not accept register index" +msgstr "la 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 "la 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 incorrecta" + +#: config/tc-arm.c:20729 +msgid "bad list type for instruction" +msgstr "tipo de lista incorrecto para la instrucción" + +#: config/tc-arm.c:20773 +msgid "unsupported alignment for instruction" +msgstr "no se admite la alineamiento para la instrucción" + +#: 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 incorrecta" + +#: 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: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:20978 +msgid "post-index must be a register" +msgstr "el post-índice debe ser un registro" + +#: config/tc-arm.c:20980 +msgid "bad register for post-index" +msgstr "el registro incorrecto para el post-índice" + +#: config/tc-arm.c:21202 +msgid "scalar out of range" +msgstr "escalar fuera de rango" + +#: 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: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 rango [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:22836 +msgid "Warning: conditional outside an IT block for Thumb." +msgstr "Aviso: condicional fuera de un bloque IT para Thumb." + +#: config/tc-arm.c:23164 +msgid "Short branches, Undefined, SVC, LDM/STM" +msgstr "" + +#: config/tc-arm.c:23165 +msgid "Miscellaneous 16-bit instructions" +msgstr "Instrucciones 16-bit miscelánea" + +#: config/tc-arm.c:23166 +msgid "ADR" +msgstr "DIR" + +#: config/tc-arm.c:23167 +msgid "Literal loads" +msgstr "Cargas literales" + +#: 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: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:23172 +msgid "ADD/SUB sp, sp #imm" +msgstr "ADD/SUB sp, sp #imm" + +#: 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:23206 +#, c-format +msgid "IT blocks containing 16-bit Thumb instructions of the following class are performance deprecated in ARMv8-A and ARMv8-R: %s" +msgstr "" + +#: config/tc-arm.c:23220 +msgid "IT blocks containing more than one conditional instruction are performance deprecated in ARMv8-A and ARMv8-R" +msgstr "" + +#: config/tc-arm.c:23338 +#, c-format +msgid "bad instruction `%s'" +msgstr "la instrucción incorrecta «%s»" + +#: 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:23364 +msgid "SVC is not permitted on this architecture" +msgstr "No se admite SVC en esta arquitectura" + +#: config/tc-arm.c:23366 +#, c-format +msgid "selected processor does not support `%s' in Thumb mode" +msgstr "el procesador seleccionado no admite «%s» dentro de modo Thumb" + +#: config/tc-arm.c:23372 +msgid "Thumb does not support conditional execution" +msgstr "Thumb no admite la ejecución condicional" + +#: config/tc-arm.c:23392 +#, c-format +msgid "selected processor does not support 32bit wide variant of instruction `%s'" +msgstr "el procesador seleccionado no admite variante de 32 bit de instrucción «%s»" + +#: config/tc-arm.c:23395 +#, c-format +msgid "selected processor does not support `%s' in Thumb-2 mode" +msgstr "el procesador seleccionado no admite «%s» modo Thumb-2" + +#: 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:23462 +#, c-format +msgid "selected processor does not support `%s' in ARM mode" +msgstr "el procesador seleccionado no admite «%s» en modo ARM" + +#: 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: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 solo es Thumb -- «%s»" + +#: 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: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: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: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:27008 +msgid "handlerdata in cantunwind frame" +msgstr "handlerdata en un marco cantunwind" + +#: 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:27059 +msgid "attempt to recreate an unwind entry" +msgstr "trata recrear una entrada relajada" + +#: config/tc-arm.c:27070 +msgid "too many unwind opcodes" +msgstr "demasiados códigos operacionales de desenredo" + +#: config/tc-arm.c:27374 +#, c-format +msgid "[-mwarn-syms]: Assignment makes a symbol match an ARM instruction: %s" +msgstr "" + +#: 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: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: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: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: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:27878 config/tc-arm.c:27927 +#, c-format +msgid "bad immediate value for offset (%ld)" +msgstr "valor inmediato incorrecto para el desplazamiento (%ld)" + +#: config/tc-arm.c:27908 +#, c-format +msgid "bad immediate value for 8-bit offset (%ld)" +msgstr "valor inmediato incorrecto para el desplazamiento de 8-bit (%ld)" + +#: config/tc-arm.c:27968 +msgid "offset not a multiple of 4" +msgstr "desplazamiento no un múltiplo de 4" + +#: config/tc-arm.c:28171 +msgid "invalid smc expression" +msgstr "expresión smc no válida" + +#: config/tc-arm.c:28181 +msgid "invalid hvc expression" +msgstr "expresión hvc no válida" + +#: 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:28211 +msgid "invalid expression in load/store multiple" +msgstr "expresión no válida en load/store múltiples" + +#: 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:28292 +msgid "misaligned branch destination" +msgstr "destinaciones ramificadas desalineadas" + +#: 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:28462 +msgid "Thumb2 branch out of range" +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:28577 +msgid "rel31 relocation overflow" +msgstr "desbordamiento de reubicación rel31" + +#: 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 rango" + +#: 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: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:28757 +msgid "invalid Hi register with immediate" +msgstr "el registro Hi inválido con el inmediato" + +#: 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:28792 +msgid "address calculation needs a strongly defined nearby symbol" +msgstr "" + +#: config/tc-arm.c:28808 +msgid "symbol too far away" +msgstr "símbolo fuera muy lejos" + +#: 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:28850 +#, c-format +msgid "invalid immediate: %ld is out of range" +msgstr "inmediato inválido: %ld está fuera de rango" + +#: config/tc-arm.c:28862 +#, c-format +msgid "invalid shift value: %ld" +msgstr "valor de desplazamiento inválido: %ld" + +#: 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:28964 +#, c-format +msgid "Unable to process relocation for thumb opcode: %lx" +msgstr "No se ha podido procesar reubicación para código de operación pulgar: %lx" + +#: config/tc-arm.c:29043 +#, c-format +msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)" +msgstr "desplazamiento incorrecto 0x%08lX (solo hay 12 bits disponibles para esta magnitud)" + +#: config/tc-arm.c:29082 +#, c-format +msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)" +msgstr "desplazamiento incorrecto 0x%08lX (solo hay 8 bits disponibles para esta magnitud)" + +#: config/tc-arm.c:29122 +#, c-format +msgid "bad offset 0x%08lX (must be word-aligned)" +msgstr "desplazamiento incorrecto 0x%08lX (debe ser alineado a word)" + +#: config/tc-arm.c:29127 +#, c-format +msgid "bad offset 0x%08lX (must be an 8-bit number of words)" +msgstr "desplazamiento incorrecto 0x%08lX (debe ser un número de 8-bit de words)" + +#: 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:29465 +msgid "literal referenced across section boundary" +msgstr "se referencía una literal a través de un límite de sección" + +#: 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: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: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:29579 +msgid "internal_relocation (type: OFFSET_IMM) not fixed up" +msgstr "reubicación_interna (tipo OFFSET_IMM) no compuesta" + +#: 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:30000 +#, c-format +msgid "%s: unexpected function type: %d" +msgstr "%s: tipo de función inesperado: %d" + +#: 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: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: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:30415 +msgid "generate PIC code" +msgstr "genera código PIC" + +#: config/tc-arm.c:30416 +msgid "assemble Thumb code" +msgstr "ensambla código Thumb" + +#: config/tc-arm.c:30417 +msgid "support ARM/Thumb interworking" +msgstr "admite la interoperación ARM/Thumb" + +#: 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:30420 +msgid "code uses 26-bit program counter" +msgstr "el código utiliza un contador de programa de 26-bit" + +#: 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:30423 +msgid "re-entrant code" +msgstr "código reentrante" + +#: 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:30430 +msgid "use frame pointer" +msgstr "usa puntero de marco" + +#: config/tc-arm.c:30431 +msgid "use stack size checking" +msgstr "usa revisión del tamaño de la pila" + +#: 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: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: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:30458 config/tc-arm.c:30459 +msgid "use -mcpu=arm1" +msgstr "emplea -mcpu=arm1" + +#: config/tc-arm.c:30460 config/tc-arm.c:30461 +msgid "use -mcpu=arm2" +msgstr "emplea -mcpu=arm2" + +#: config/tc-arm.c:30462 config/tc-arm.c:30463 +msgid "use -mcpu=arm250" +msgstr "emplea -mcpu=arm250" + +#: config/tc-arm.c:30464 config/tc-arm.c:30465 +msgid "use -mcpu=arm3" +msgstr "emplea -mcpu=arm3" + +#: config/tc-arm.c:30466 config/tc-arm.c:30467 +msgid "use -mcpu=arm6" +msgstr "emplea -mcpu=arm6" + +#: config/tc-arm.c:30468 config/tc-arm.c:30469 +msgid "use -mcpu=arm600" +msgstr "emplea -mcpu=arm600" + +#: config/tc-arm.c:30470 config/tc-arm.c:30471 +msgid "use -mcpu=arm610" +msgstr "emplea -mcpu=arm610" + +#: config/tc-arm.c:30472 config/tc-arm.c:30473 +msgid "use -mcpu=arm620" +msgstr "emplea -mcpu=arm620" + +#: config/tc-arm.c:30474 config/tc-arm.c:30475 +msgid "use -mcpu=arm7" +msgstr "emplea -mcpu=arm7" + +#: config/tc-arm.c:30476 config/tc-arm.c:30477 +msgid "use -mcpu=arm70" +msgstr "emplea -mcpu=arm70" + +#: config/tc-arm.c:30478 config/tc-arm.c:30479 +msgid "use -mcpu=arm700" +msgstr "emplea -mcpu=arm700" + +#: config/tc-arm.c:30480 config/tc-arm.c:30481 +msgid "use -mcpu=arm700i" +msgstr "emplea -mcpu=arm700i" + +#: config/tc-arm.c:30482 config/tc-arm.c:30483 +msgid "use -mcpu=arm710" +msgstr "emplea -mcpu=arm710" + +#: config/tc-arm.c:30484 config/tc-arm.c:30485 +msgid "use -mcpu=arm710c" +msgstr "emplea -mcpu=arm710c" + +#: config/tc-arm.c:30486 config/tc-arm.c:30487 +msgid "use -mcpu=arm720" +msgstr "emplea -mcpu=arm720" + +#: config/tc-arm.c:30488 config/tc-arm.c:30489 +msgid "use -mcpu=arm7d" +msgstr "emplea -mcpu=arm7d" + +#: config/tc-arm.c:30490 config/tc-arm.c:30491 +msgid "use -mcpu=arm7di" +msgstr "emplea -mcpu=arm7di" + +#: config/tc-arm.c:30492 config/tc-arm.c:30493 +msgid "use -mcpu=arm7m" +msgstr "emplea -mcpu=arm7m" + +#: config/tc-arm.c:30494 config/tc-arm.c:30495 +msgid "use -mcpu=arm7dm" +msgstr "emplea -mcpu=arm7dm" + +#: config/tc-arm.c:30496 config/tc-arm.c:30497 +msgid "use -mcpu=arm7dmi" +msgstr "emplea -mcpu=arm7dmi" + +#: config/tc-arm.c:30498 config/tc-arm.c:30499 +msgid "use -mcpu=arm7100" +msgstr "emplea -mcpu=arm7100" + +#: config/tc-arm.c:30500 config/tc-arm.c:30501 +msgid "use -mcpu=arm7500" +msgstr "emplea -mcpu=arm7500" + +#: config/tc-arm.c:30502 config/tc-arm.c:30503 +msgid "use -mcpu=arm7500fe" +msgstr "emplea -mcpu=arm7500fe" + +#: 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:30508 config/tc-arm.c:30509 +msgid "use -mcpu=arm710t" +msgstr "emplea -mcpu=arm710t" + +#: config/tc-arm.c:30510 config/tc-arm.c:30511 +msgid "use -mcpu=arm720t" +msgstr "emplea -mcpu=arm720t" + +#: config/tc-arm.c:30512 config/tc-arm.c:30513 +msgid "use -mcpu=arm740t" +msgstr "emplea -mcpu=arm740t" + +#: config/tc-arm.c:30514 config/tc-arm.c:30515 +msgid "use -mcpu=arm8" +msgstr "emplea -mcpu=arm8" + +#: config/tc-arm.c:30516 config/tc-arm.c:30517 +msgid "use -mcpu=arm810" +msgstr "emplea -mcpu=arm810" + +#: config/tc-arm.c:30518 config/tc-arm.c:30519 +msgid "use -mcpu=arm9" +msgstr "emplea -mcpu=arm9" + +#: config/tc-arm.c:30520 config/tc-arm.c:30521 +msgid "use -mcpu=arm9tdmi" +msgstr "emplea -mcpu=arm9tdmi" + +#: config/tc-arm.c:30522 config/tc-arm.c:30523 +msgid "use -mcpu=arm920" +msgstr "emplea -mcpu=arm920" + +#: config/tc-arm.c:30524 config/tc-arm.c:30525 +msgid "use -mcpu=arm940" +msgstr "emplea -mcpu=arm940" + +#: config/tc-arm.c:30526 +msgid "use -mcpu=strongarm" +msgstr "emplea -mcpu=strongarm" + +#: config/tc-arm.c:30528 +msgid "use -mcpu=strongarm110" +msgstr "emplea -mcpu=strongarm110" + +#: config/tc-arm.c:30530 +msgid "use -mcpu=strongarm1100" +msgstr "emplea -mcpu=strongarm1100" + +#: config/tc-arm.c:30532 +msgid "use -mcpu=strongarm1110" +msgstr "emplea -mcpu=strongarm1110" + +#: config/tc-arm.c:30533 +msgid "use -mcpu=xscale" +msgstr "emplea -mcpu=xscale" + +#: config/tc-arm.c:30534 +msgid "use -mcpu=iwmmxt" +msgstr "emplea -mcpu=iwmmxt" + +#: 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:30538 config/tc-arm.c:30539 +msgid "use -march=armv2" +msgstr "emplea -march=armv2" + +#: config/tc-arm.c:30540 config/tc-arm.c:30541 +msgid "use -march=armv2a" +msgstr "emplea -march=armv2a" + +#: config/tc-arm.c:30542 config/tc-arm.c:30543 +msgid "use -march=armv3" +msgstr "emplea -march=armv3" + +#: config/tc-arm.c:30544 config/tc-arm.c:30545 +msgid "use -march=armv3m" +msgstr "emplea -march=armv3m" + +#: config/tc-arm.c:30546 config/tc-arm.c:30547 +msgid "use -march=armv4" +msgstr "emplea -march=armv4" + +#: config/tc-arm.c:30548 config/tc-arm.c:30549 +msgid "use -march=armv4t" +msgstr "emplea -march=armv4t" + +#: config/tc-arm.c:30550 config/tc-arm.c:30551 +msgid "use -march=armv5" +msgstr "emplea -march=armv5" + +#: config/tc-arm.c:30552 config/tc-arm.c:30553 +msgid "use -march=armv5t" +msgstr "emplea -march=armv5t" + +#: config/tc-arm.c:30554 config/tc-arm.c:30555 +msgid "use -march=armv5te" +msgstr "emplea -march=armv5te" + +#: config/tc-arm.c:30556 +#, fuzzy +#| msgid "use -mfpu=fpe" +msgid "use -mfpu=softvfp" +msgstr "emplea -mfpu=fpe" + +#: 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: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: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: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:31913 +#, c-format +msgid "unknown EABI `%s'\n" +msgstr "desconoce EABI «%s»\n" + +#: 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: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: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: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: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: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: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: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: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: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:32823 +#, c-format +msgid "unknown architecture extension `%s'\n" +msgstr "desconoce extensión de arquitectura «%s»\n" + +#: 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:662 +#, c-format +msgid "" +"AVR Assembler options:\n" +" -mmcu=[avr-name] select microcontroller variant\n" +" [avr-name] can be:\n" +" avr1 - classic AVR core without data RAM\n" +" avr2 - classic AVR core with up to 8K program memory\n" +" avr25 - classic AVR core with up to 8K program memory\n" +" plus the MOVW instruction\n" +" avr3 - classic AVR core with up to 64K program memory\n" +" avr31 - classic AVR core with up to 128K program memory\n" +" avr35 - classic AVR core with up to 64K program memory\n" +" plus the MOVW instruction\n" +" avr4 - enhanced AVR core with up to 8K program memory\n" +" avr5 - enhanced AVR core with up to 64K program memory\n" +" avr51 - enhanced AVR core with up to 128K program memory\n" +" avr6 - enhanced AVR core with up to 256K program memory\n" +" avrxmega2 - XMEGA, > 8K, < 64K FLASH, < 64K RAM\n" +" avrxmega3 - XMEGA, RAM + FLASH < 64K, Flash visible in RAM\n" +" avrxmega4 - XMEGA, > 64K, <= 128K FLASH, <= 64K RAM\n" +" avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n" +" avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM\n" +" avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\n" +" avrtiny - AVR Tiny core with 16 gp registers\n" +msgstr "" +"Opciones de ensamblador AVR:\n" +" -mmcu=[nombre-avr] selecciona la variante de microcontrolador\n" +" [nombre-avr] puede ser:\n" +" avr1 - núcleo AVR nuclear sin RAM de datos\n" +" avr2 - núcleo AVR nuclear hasta con 8K de memoria de programa\n" +" avr25 - núcleo AVR nuclear hasta con 8K de memoria de programa\n" +" más la instrucción MOVW\n" +" avr3 - núcleo AVR nuclear hasta con 64K de memoria de programa\n" +" avr31 - núcleo AVR nuclear hasta con 128K de memoria de programa\n" +" avr35 - núcleo AVR nuclear hasta con 64K de memoria de programa\n" +" más la instrucción MOVW\n" +" avr4 - núcleo AVR mejorado hasta con 8K de memoria de programa\n" +" avr5 - núcleo AVR mejorado hasta con 64K de memoria de programa\n" +" avr51 - núcleo AVR mejorado hasta con 128K de memoria de programa\n" +" avr6 - núcleo AVR mejorado hasta con 256K de memoria de programa\n" +" avrxmega3 - XMEGA, > 8K, ≤ 64K FLASH, > 64K RAM\n" +" avrxmega4 - XMEGA, > 64K, ≤ 128K FLASH, ≤ 64K RAM\n" +" avrxmega5 - XMEGA, > 64K, ≤ 128K FLASH, > 64K RAM\n" +" avrxmega6 - XMEGA, > 128K, ≤ 256K FLASH, ≤ 64K RAM\n" +" avrxmega7 - XMEGA, > 128K, ≤ 256K FLASH, > 64K RAM\n" +" avrtinyo Núcleo -AVR Tiny con registros 16 gp\n" + +#: 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" +" (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" +" -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" +" -mno-skip-bug desactiva los avisos para las instrucciones que omiten\n" +" dos palabras (por defecto para avr4, avr5)\n" +" -mno-wrap rechaza las instrucciones rjmp/rcall con envoltura de 8K\n" +" (por defecto para avr3, avr5)\n" +" -mrmw acepta instrucciones Leer-Modificar-Escribir\n" +" -mlink-relax genera reubicación para relajación de enlazador (predef.)\n" +" -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:726 +#, c-format +msgid "unknown MCU: %s\n" +msgstr "desconoce MCU: %s\n" + +#: 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:869 +msgid "constant value required" +msgstr "se requiere un valor constante" + +#: 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:898 config/tc-avr.c:1035 +#, c-format +msgid "constant out of 8-bit range: %d" +msgstr "constante fuera del rango de 8-bit: %d" + +#: config/tc-avr.c:966 config/tc-score.c:1194 read.c:4075 +msgid "illegal expression" +msgstr "expresión ilegal" + +#: config/tc-avr.c:995 config/tc-avr.c:2004 config/tc-pru.c:1870 +msgid "`)' required" +msgstr "`)' requerido" + +#: 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: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:1119 +msgid "register r16-r23 required" +msgstr "se requiere los registros r16-r23" + +#: 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: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:1137 +msgid "register r24, r26, r28 or r30 required" +msgstr "se requieren los registros r24, r26, r28 o r30" + +#: config/tc-avr.c:1158 +msgid "pointer register (X, Y or Z) required" +msgstr "el registro puntero (X, Y o Z) requerido" + +#: config/tc-avr.c:1165 +msgid "cannot both predecrement and postincrement" +msgstr "no se puede predecrementar y postincrementar" + +#: config/tc-avr.c:1173 +msgid "addressing mode not supported" +msgstr "no se admite el modo de direccionamiento" + +#: config/tc-avr.c:1179 +msgid "can't predecrement" +msgstr "no se puede predecrementar" + +#: config/tc-avr.c:1182 +msgid "pointer register Z required" +msgstr "se requiere el registro puntero Z" + +#: config/tc-avr.c:1201 +msgid "postincrement not supported" +msgstr "no se admite el postincremento" + +#: 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:1333 config/tc-xgate.c:1354 +#, c-format +msgid "unknown constraint `%c'" +msgstr "desconoce constante `%c'" + +#: config/tc-avr.c:1396 config/tc-avr.c:2686 +msgid "`,' required" +msgstr "`,' requerido" + +#: config/tc-avr.c:1417 +msgid "undefined combination of operands" +msgstr "combinación indefinida de operandos" + +#: config/tc-avr.c:1426 +msgid "skipping two-word instruction" +msgstr "se omite la instrucción de dos word" + +#: 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: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 rango: %ld" + +#: config/tc-avr.c:1677 +#, c-format +msgid "operand out of range: 0x%lx" +msgstr "operando fuera de rango: 0x%lx" + +#: 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:1810 +msgid "only constant expression allowed" +msgstr "solo se permite una expresión constante" + +#. xgettext:c-format. +#: 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: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 de operación " + +#: config/tc-avr.c:1905 +#, c-format +msgid "illegal opcode %s for mcu %s" +msgstr "código de operación %s ilegal para el mcu %s" + +#: config/tc-avr.c:1921 +#, c-format +msgid "pseudo instruction `%s' not supported" +msgstr "pseudo instrucción «%s» no admitida" + +#: config/tc-avr.c:1943 +msgid "garbage at end of line" +msgstr "basura al final de la línea" + +#: 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: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:2242 +#, c-format +msgid "Failed to create property section `%s'\n" +msgstr "Fallado para crear secciones propietarias `%s'\n" + +#: config/tc-avr.c:2678 +#, c-format +msgid "%s requires value 0-2 as operand 1" +msgstr "" + +#: 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:2706 +#, c-format +msgid "`%s %d' but no chunk open yet" +msgstr "«%s %d» pero no recorta abierto aún" + +#: config/tc-avr.c:2794 +#, c-format +msgid "dangling `__gcc_isr %d'" +msgstr "`__gcc_isr colgado %d'" + +#: config/tc-avr.c:2796 +msgid "dangling `__gcc_isr'" +msgstr "colgado `__gcc_isr'" + +#: config/tc-bfin.c:93 config/tc-frv.c:1603 config/tc-frv.c:1613 +msgid "missing ')'" +msgstr "ausente ')'" + +#: 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: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:430 +#, c-format +msgid " -mfdpic assemble for the FDPIC ABI\n" +msgstr " -mfdpic ensambla para la ABI de FDPIC\n" + +#: 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:444 +msgid "Could not set architecture and machine." +msgstr "No se pueden establecer la arquitectura y la máquina." + +#: config/tc-bfin.c:591 +msgid "Parse failed." +msgstr "Falló la decodificación." + +#: 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:682 +msgid "pcrel too far BFD_RELOC_BFIN_12" +msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_12" + +#: 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:717 +msgid "pcrel too far BFD_RELOC_BFIN_5" +msgstr "pcrel demasiado lejos de BFD_RELOC_BFIN_5" + +#: 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:739 +msgid "rel too far BFD_RELOC_8" +msgstr "rel demasiado lejos de BFD_RELOC_8" + +#: config/tc-bfin.c:746 +msgid "rel too far BFD_RELOC_16" +msgstr "rel demasiado lejos de BFD_RELOC_16" + +#: 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 "la 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: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: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: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:394 +#, c-format +msgid "Unknown register pair - index relative mode: `%d'" +msgstr "Registros modo relativo par - indexado desconocido: '%d'" + +#: 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:694 config/tc-i386.c:17857 config/tc-s390.c:2340 +msgid "GOT already in symbol table" +msgstr "GOT ya está en la tabla de símbolos" + +#. Missing or bad expr becomes absolute 0. +#: 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:928 +#, c-format +msgid "GOT bad expression with %s." +msgstr "GOT como expresión incorrecta con %s." + +#: 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: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:1112 +#, c-format +msgid "Illegal register (`%s') in Instruction: `%s'" +msgstr "Registro ilegal («%s») en Instruction: «%s»" + +#: 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: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:1250 +msgid "unmatched '['" +msgstr "desemparejado '['" + +#: 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:1404 config/tc-crx.c:887 +#, c-format +msgid "Illegal operands (whitespace): `%s'" +msgstr "Operandos ilegales (espacios en blanco): «%s»" + +#: 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:1472 config/tc-crx.c:949 +#, c-format +msgid "Unknown exception: `%s'" +msgstr "Excepción desconocida: «%s»" + +#: 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: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: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: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: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: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: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: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: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:2092 +msgid "RA register is saved twice." +msgstr "El registro RA se guarda dos veces." + +#: config/tc-cr16.c:2096 +#, c-format +msgid "`%s' Illegal use of registers." +msgstr "«%s» Uso inválido de registros." + +#: 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:2116 +#, c-format +msgid "`%s' Illegal use of register." +msgstr "«%s» Uso inválido de registro." + +#: 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: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:2304 config/tc-crx.c:1527 +msgid "Incorrect number of operands" +msgstr "Número incorrecto de operandos" + +#: 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:2312 config/tc-crx.c:1535 +#, c-format +msgid "Operand out of range (arg %d)" +msgstr "Operando fuera de rango (arg %d)" + +#: 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: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: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: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: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: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:3904 +#, c-format +msgid "internal inconsistency problem in %s: fr_subtype %d" +msgstr "problema de inconsistencia interna en %s: fr_subtype %d" + +#: config/tc-cris.c:904 +msgid "Relaxation to long branches for .arch common_v10_v32 not implemented" +msgstr "La relajación a grandes ramificaciones para .arch common_v10_v32 no está implementada" + +#: config/tc-cris.c:934 +msgid "Complicated LAPC target operand is not a multiple of two. Use LAPC.D" +msgstr "Operando de objetivo complicado LAPC no es un múltiplo de dos. Use LAPC.D" + +#: config/tc-cris.c:939 +#, c-format +msgid "Internal error found in md_convert_frag: offset %ld. Please report this." +msgstr "Se encontró un error interno en md_convert_frag: desplazamiento %ld. Por favor repórtelo." + +#: config/tc-cris.c:964 +#, c-format +msgid "internal inconsistency in %s: bdapq no symbol" +msgstr "inconsistencia interna en %s: bdapq no es un símbolo" + +#: config/tc-cris.c:977 +#, c-format +msgid "internal inconsistency in %s: bdap.w with no symbol" +msgstr "inconsistencia interna en %s: bdap.w sin algún símbolo" + +#: config/tc-cris.c:1001 +msgid "section alignment must be >= 4 bytes to check MULS/MULU safeness" +msgstr "la alineamiento de la sección debe ser ≥ 4 bytes para marcar seguridad de MULS/MULU" + +#: config/tc-cris.c:1010 +msgid "dangerous MULS/MULU location; give it higher alignment" +msgstr "ubicación de MULS/MULU peligrosa; déles una alineamiento superior" + +#. Bail out for compatibility mode. (It seems it can be implemented, +#. perhaps with a 10-byte sequence: "move.d NNNN,$pc/$acr", "jump +#. $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 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 tabla de case .word: la tabla es demasiado grande" + +#: 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:1656 +#, c-format +msgid "Immediate value not in 5 bit unsigned range: %ld" +msgstr "El valor inmediato no está en el rango de 5 bit sin signo: %ld" + +#: 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 rango de 4 bit sin signo: %ld" + +#: config/tc-cris.c:1724 +#, c-format +msgid "Immediate value not in 6 bit range: %ld" +msgstr "El valor inmediato no está en el rango de 6 bit: %ld" + +#: 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 rango de 6 bit sin signo: %ld" + +#. Others have a generic warning. +#: 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:2093 +msgid "Illegal operands" +msgstr "Operandos ilegales" + +#: 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 rango de 8 bit: %ld" + +#: 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 rango de 16 bit: %ld" + +#: 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 rango de 8 bit con signo: %ld" + +#: 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 rango de 8 bit sin signo: %ld" + +#: 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 rango de 16 bit con signo: %ld" + +#: 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 rango de 16 bit sin signo: %ld" + +#: 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: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: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:3383 +msgid "32-bit conditional branch generated" +msgstr "generada una ramificación condicional de 32-bit" + +#: 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:3594 +msgid "Bad call to md_atof () - floating point formats are not supported" +msgstr "Llamada incorrecta a md_atof () - no se admiten los formatos de coma flotante" + +#: 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:3707 +#, c-format +msgid "Value not in 16 bit range: %ld" +msgstr "El valor no está en el rango de 16 bit: %ld" + +#: config/tc-cris.c:3715 +#, c-format +msgid "Value not in 16 bit signed range: %ld" +msgstr "El valor no está en el rango de 16 bit con signo: %ld" + +#: config/tc-cris.c:3723 +#, c-format +msgid "Value not in 8 bit range: %ld" +msgstr "El valor no está en el rango de 8 bit: %ld" + +#: config/tc-cris.c:3730 +#, c-format +msgid "Value not in 8 bit signed range: %ld" +msgstr "El valor no está en el rango de 8 bit con signo: %ld" + +#: config/tc-cris.c:3740 +#, c-format +msgid "Value not in 4 bit unsigned range: %ld" +msgstr "El valor no está en el rango de 4 bit sin signo: %ld" + +#: config/tc-cris.c:3747 +#, c-format +msgid "Value not in 5 bit unsigned range: %ld" +msgstr "El valor no está en el rango de 5 bit sin signo: %ld" + +#: config/tc-cris.c:3754 +#, c-format +msgid "Value not in 6 bit range: %ld" +msgstr "El valor no está en el rango de 6 bit: %ld" + +#: config/tc-cris.c:3761 +#, c-format +msgid "Value not in 6 bit unsigned range: %ld" +msgstr "El valor no está en el rango de 6 bit sin signo: %ld" + +#: 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: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:3829 +msgid "--pic is invalid for this object format" +msgstr "--pic es inválido en este formato de objeto" + +#: 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: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: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:4013 +#, c-format +msgid "CRIS-specific options:\n" +msgstr "Opciones específicas de CRIS:\n" + +#: 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: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: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:4021 +msgid " Registers will not need any prefix.\n" +msgstr " Los registros no necesitarán ningún prefijo.\n" + +#: 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:4025 +msgid " Registers will require a `$'-prefix.\n" +msgstr " Los registros requerirán un prefijo `$'.\n" + +#: 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: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" +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:4080 +msgid "Invalid pc-relative relocation" +msgstr "Reubicación relativa a pc no válida" + +#: 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: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: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:4201 +msgid "Unknown .syntax operand" +msgstr "Desconoce operando .syntax" + +#: 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: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: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:4390 +msgid "unknown operand to .arch" +msgstr "operando desconocido para .arch" + +#: 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: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:771 +#, c-format +msgid "Illegal Scale - `%d'" +msgstr "Escala ilegal - '%d'" + +#. Issue a error message when register is illegal. +#: 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:1215 +#, c-format +msgid "Illegal co-processor register in instruction `%s'" +msgstr "Registro coprocesador ilegal en Instrucción `%s'" + +#: config/tc-crx.c:1222 +#, c-format +msgid "Illegal co-processor special register in instruction `%s'" +msgstr "Registro especial de coprocesador ilegal en la Instrucción «%s»" + +#: 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:1546 +#, c-format +msgid "Invalid CST4 operand value (arg %d)" +msgstr "Valor de operando CST4 inválido (arg %d)" + +#: 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:1683 +msgid "Invalid register in register list" +msgstr "Registrador inválido en listado de registro" + +#: 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: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: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:1783 +#, c-format +msgid "Illegal register `%s' in register list" +msgstr "Registro ilegal «%s» en la lista de registros" + +#: 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: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: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:1812 +msgid "HI/LO registers should be specified together" +msgstr "Los registros HI/LO se deben especificar juntos" + +#: 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 coprocesador 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 de operación" + +#: 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 rango [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 "" +"D10V options:\n" +"-O Optimize. Will do some operations in parallel.\n" +"--gstabs-packing Pack adjacent short instructions together even\n" +" when --gstabs is specified. On by default.\n" +"--no-gstabs-packing If --gstabs is specified, do not pack adjacent\n" +" instructions together.\n" +msgstr "" +"Opciones D10V:\n" +"-O Optimiza. Hará algunas operaciones en paralelo.\n" +"--gstabs-packing Empaqueta instrucciones pares adyacentes cortas juntas\n" +" cuando se especifique --gstabs. Activado por defecto.\n" +"--no-gstabs-packing Si se especifica --gstabs, no empaqueta juntas\n" +" las instrucciones adjacentes.\n" + +#: config/tc-d10v.c:573 +msgid "operand is not an immediate" +msgstr "operando no es un inmediato" + +#: config/tc-d10v.c:590 +#, c-format +msgid "operand out of range: %lu" +msgstr "operando fuera de rango: %lu" + +#: 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: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:811 +#, c-format +msgid "resource conflict (R%d)" +msgstr "conflicto de recurso (R%d)" + +#: config/tc-d10v.c:814 +#, c-format +msgid "resource conflict (A%d)" +msgstr "conflicto de recurso (A%d)" + +#: config/tc-d10v.c:816 +msgid "resource conflict (PSW)" +msgstr "conflicto de recurso (PSW)" + +#: config/tc-d10v.c:818 +msgid "resource conflict (C flag)" +msgstr "conflicto de recurso (opción C)" + +#: config/tc-d10v.c:820 +msgid "resource conflict (F flag)" +msgstr "conflicto de recurso (opción F)" + +#: 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:973 +msgid "Long instructions may not be combined." +msgstr "Las instrucciones long no se pueden combinar." + +#: 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: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: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: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: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: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: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: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:1188 config/tc-d10v.c:1361 +msgid "bad opcode or operands" +msgstr "código de operación u operandos incorrectos" + +#: config/tc-d10v.c:1263 +msgid "value out of range" +msgstr "valor fuera de rango" + +#: 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:1372 +msgid "Register number must be EVEN" +msgstr "El número de registro debe ser PAR" + +#: config/tc-d10v.c:1375 +msgid "Unsupported use of sp" +msgstr "No se admite el uso de sp" + +#: 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: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:1761 +msgid "can't find previous opcode " +msgstr "no se puede encontrar el código de operación previo " + +#: config/tc-d10v.c:1773 +#, c-format +msgid "could not assemble: %s" +msgstr "no se puede ensamblar: %s" + +#: 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: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:236 +#, c-format +msgid "" +"\n" +"D30V options:\n" +"-O Make adjacent short instructions parallel if possible.\n" +"-n Warn about all NOPs inserted by the assembler.\n" +"-N Warn about NOPs inserted after word multiplies.\n" +"-c Warn about symbols whose names match register names.\n" +"-C Opposite of -C. -c is the default.\n" +msgstr "" +"\n" +"Opciones D30V:\n" +"-O Crea instrucciones short adyacentes cortas paralelas si es posible.\n" +"-n Avisa sobre todos los NOPs insertados por el ensamblador.\n" +"-N Avisa sobre los NOPs insertados tras los múltiplos de palabra.\n" +"-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:364 +msgid "unexpected 12-bit reloc type" +msgstr "tipo reubicado de 12-bit inesperado" + +#: config/tc-d30v.c:371 +msgid "unexpected 18-bit reloc type" +msgstr "tipo reubicado de 18-bit inesperado" + +#: config/tc-d30v.c:622 +#, c-format +msgid "%s NOP inserted" +msgstr "%s NOP insertados" + +#: config/tc-d30v.c:623 +msgid "sequential" +msgstr "secuencial" + +#: config/tc-d30v.c:623 +msgid "parallel" +msgstr "paralelo" + +#: 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:1043 +#, c-format +msgid "Executing %s in IU may not work" +msgstr "Ejecutar %s en IU podría no funcionar" + +#: 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: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: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: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: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:1329 config/tc-d30v.c:1365 +#, c-format +msgid "unknown condition code: %s" +msgstr "desconoce código condicional: %s" + +#: 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:1393 +#, c-format +msgid "unknown opcode: %s" +msgstr "desconoce código de operación: %s" + +#: 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 de operación «%s» no coincide con ningún formato válido" + +#: 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:1621 +msgid "First opcode is long. Unable to mix instructions as specified." +msgstr "El primer código de operación es long. No se pueden mezclar las instrucciones como se especificó." + +#: 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: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: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: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: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" + +#: config/tc-dlx.c:213 +msgid "missing .proc" +msgstr "ausente .proc" + +#: config/tc-dlx.c:230 +msgid ".endfunc missing for previous .proc" +msgstr "ausente .endfunc para el .proc previo" + +#: config/tc-dlx.c:320 +#, c-format +msgid "Bad operand for a load instruction: <%s>" +msgstr "Operando incorrecto para una instrucción load <%s>" + +#: config/tc-dlx.c:434 +#, c-format +msgid "Bad operand for a store instruction: <%s>" +msgstr "Operando incorrecto para una instrucción store <%s>" + +#: 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:627 +#, c-format +msgid "Invalid expression after %%%%\n" +msgstr "Expresión no válida tras %%%%\n" + +#: config/tc-dlx.c:692 config/tc-tic4x.c:2456 +#, c-format +msgid "Unknown opcode `%s'." +msgstr "Desconoce código de operación «%s»." + +#: 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:715 +#, c-format +msgid "Missing arguments for opcode <%s>." +msgstr "Ausentes argumentos para el código de operación <%s>." + +#: config/tc-dlx.c:749 +#, c-format +msgid "Too many operands: %s" +msgstr "Demasiados operandos: %s" + +#: 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:857 +msgid "failed regnum sanity check." +msgstr "inspección sanitaria de regnum ha fallado." + +#: config/tc-dlx.c:870 +msgid "failed general register sanity check." +msgstr "la inspección sanitara de registros generales ha fallado." + +#. Types or values of args don't match. +#: config/tc-dlx.c:878 +msgid "Invalid operands" +msgstr "Operandos inválidos" + +#: config/tc-dlx.c:1097 +#, c-format +msgid "label \"$%d\" redefined" +msgstr "etiqueta \"$%d\" redefinida" + +#: 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: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»)" + +#: config/tc-epiphany.c:126 +#, c-format +msgid "EPIPHANY specific command line options:\n" +msgstr "Opciones de la línea de mandatos específicas de EPIPHANY:\n" + +#: 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:371 +msgid "register is out of order" +msgstr "el registro está fuera de orden" + +#: 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: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:432 +msgid "ldrd/strd requires even:odd register pair" +msgstr "ldrd/strd requiere un par de registros par:impar" + +#: 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." + +#: config/tc-fr30.c:81 +#, c-format +msgid " FR30 specific command line options:\n" +msgstr " Opciones de línea de mandatos específicas de FR30:\n" + +#: config/tc-fr30.c:134 +#, c-format +msgid "Instruction %s not allowed in a delay slot." +msgstr "No se permite la instrucción %s en una ranura de retardo." + +#: config/tc-frv.c:403 +#, c-format +msgid "Unknown cpu -mcpu=%s" +msgstr "Desconoce cpu -mcpu=%s" + +#: config/tc-frv.c:456 +#, c-format +msgid "FRV specific command line options:\n" +msgstr "Opciones de línea de mandatos específicas de FVR:\n" + +#: config/tc-frv.c:457 +#, c-format +msgid "-G n Put data <= n bytes in the small data area\n" +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 solo usar 32 GPRs\n" + +#: config/tc-frv.c:459 +#, c-format +msgid "-mgpr-64 Mark generated file as using all 64 GPRs\n" +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 solo usar 32 FPRs\n" + +#: config/tc-frv.c:461 +#, c-format +msgid "-mfpr-64 Mark generated file as using all 64 FPRs\n" +msgstr "-mfpr-64 Marca el fichero generado para usar todos los 64 FPRs\n" + +#: config/tc-frv.c:462 +#, c-format +msgid "-msoft-float Mark generated file as using software FP\n" +msgstr "-msoft-float Marca el fichero generado para usar FP de software\n" + +#: config/tc-frv.c:463 +#, c-format +msgid "-mdword Mark generated file as using a 8-byte stack alignment\n" +msgstr "-mdword Marca el fichero generado para usar alineamiento de pila de 8-bytes\n" + +#: config/tc-frv.c:464 +#, c-format +msgid "-mno-dword Mark generated file as using a 4-byte stack alignment\n" +msgstr "-mno-dword Marca el fichero generado para usar una alineamiento de pila de 4-bytes\n" + +#: config/tc-frv.c:465 +#, c-format +msgid "-mdouble Mark generated file as using double precision FP insns\n" +msgstr "-mdouble Marca el fichero generado para usar insns FP de doble precisión\n" + +#: config/tc-frv.c:466 +#, c-format +msgid "-mmedia Mark generated file as using media insns\n" +msgstr "-mmedia Marca el fichero generado para usar insns media\n" + +#: config/tc-frv.c:467 +#, c-format +msgid "-mmuladd Mark generated file as using multiply add/subtract insns\n" +msgstr "-mmuladd Marca el fichero generado para usar insns adición/sustracción múltiples\n" + +#: config/tc-frv.c:468 +#, c-format +msgid "-mpack Allow instructions to be packed\n" +msgstr "-mpack Permite que se empaqueten las instrucciones\n" + +#: config/tc-frv.c:469 +#, c-format +msgid "-mno-pack Do not allow instructions to be packed\n" +msgstr "-mno-pack No permite que se empaqueten las instrucciones\n" + +#: config/tc-frv.c:470 +#, c-format +msgid "-mpic Mark generated file as using small position independent code\n" +msgstr "-mpic Marca el fichero generado para usar código independiente de posición small\n" + +#: config/tc-frv.c:471 +#, c-format +msgid "-mPIC Mark generated file as using large position independent code\n" +msgstr "-mPIC Marca el fichero generado para usar código independiente de posición large\n" + +#: config/tc-frv.c:472 +#, c-format +msgid "-mlibrary-pic Mark generated file as using position independent code for libraries\n" +msgstr "-mlibrary-pic Marca el fichero generado como usando posición de código independiente para bibliotecas\n" + +#: config/tc-frv.c:473 +#, c-format +msgid "-mfdpic Assemble for the FDPIC ABI\n" +msgstr "-mfdpic Ensambla para la ABI de FDPIC\n" + +#: config/tc-frv.c:474 +#, c-format +msgid "-mnopic Disable -mpic, -mPIC, -mlibrary-pic and -mfdpic\n" +msgstr "-mnopic Desactiva -mpic, -mPIC, -mlibrary-pic y -mfdpic\n" + +#: config/tc-frv.c:475 +#, c-format +msgid "-mcpu={fr500|fr550|fr400|fr405|fr450|fr300|frv|simple|tomcat}\n" +msgstr "-mcpu={fr500|fr550|fr400|fr405|fr450|fr300|frv|simple|tomcat}\n" + +#: config/tc-frv.c:476 +#, c-format +msgid " Record the cpu type\n" +msgstr " Graba el tipo de cpu\n" + +#: config/tc-frv.c:477 +#, c-format +msgid "-mtomcat-stats Print out stats for tomcat workarounds\n" +msgstr "-mtomcat-stats Muestra estadísticas para las alternativas de tomcat\n" + +#: config/tc-frv.c:478 +#, c-format +msgid "-mtomcat-debug Debug tomcat workarounds\n" +msgstr "-mtomcat-debug Depura las alternativas de tomcat\n" + +#: config/tc-frv.c:1160 +msgid "VLIW packing used for -mno-pack" +msgstr "Se utilizó empaquetado VLIW para -mno-pack" + +#: config/tc-frv.c:1170 +msgid "Instruction not supported by this architecture" +msgstr "La instrucción no se admite en esta arquitectura" + +#: config/tc-frv.c:1180 +msgid "VLIW packing constraint violation" +msgstr "Violación de restricción de empaquetado VLIW" + +#: config/tc-frv.c:1771 +#, c-format +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:102 +msgid "expecting register" +msgstr "se espera un registro" + +#: 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:186 config/tc-pj.c:260 +#, c-format +msgid "unknown opcode %s" +msgstr "desconoce código de operación %s" + +#: config/tc-ft32.c:264 +#, c-format +msgid "unknown width specifier '.%c'" +msgstr "especificador desconocida de anchura `%c'" + +#: config/tc-ft32.c:387 +msgid "internal error in argument parsing" +msgstr "error interno en interpretación argumental" + +#: config/tc-ft32.c:400 +msgid "expected comma separator" +msgstr "esperaba separador de coma" + +#: 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:585 +msgid "bad call to md_atof" +msgstr "llamada incorrecta a md_atof" + +#: config/tc-ft32.c:522 +#, c-format +msgid "FT32 options:\n" +msgstr "Opciones FT32:\n" + +#: config/tc-ft32.c:523 +#, c-format +msgid "" +"\n" +"-no-relax\t\tdon't relax relocations\n" +"\t\t\t\n" +msgstr "" +"\n" +"-no-relax\t\tno relajar reubicaciones\n" +"\t\t\t\n" + +#. These macros must be defined, but is will be a fatal assembler +#. error if we ever hit them. +#: config/tc-ft32.h:35 config/tc-pj.h:40 +msgid "estimate size\n" +msgstr "tamaño estimado\n" + +#: config/tc-ft32.h:36 config/tc-pj.h:39 +msgid "convert_frag\n" +msgstr "convert_frag\n" + +#: 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: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:530 +msgid "invalid operand size requested" +msgstr "se solicitó un tamaño de operando inválido" + +#: 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: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:678 +msgid "invalid suffix after register." +msgstr "sufijo inválido tras registro." + +#: config/tc-h8300.c:700 +msgid "address too high for vector table jmp/jsr" +msgstr "dirección demasiado alta para distribuciones de vectores jmp/jsr" + +#: 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 incorrecto para la arquitectura." + +#: 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: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 indexado" + +#: 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:1024 config/tc-h8300.c:1033 +msgid "expected register" +msgstr "se esperaba un registro" + +#: config/tc-h8300.c:1049 +msgid "expected closing paren" +msgstr "se esperaba un paréntesis que cierra" + +#: 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:1265 +#, c-format +msgid "Opcode `%s' with these operand types not available in %s mode" +msgstr "El código de operación «%s» con esos tipos de operando no está disponible en el modo %s" + +#: config/tc-h8300.c:1274 +msgid "mismatch between opcode size and operand size" +msgstr "no hay coincidencia entre el tamaño del código de operación y el tamaño de operando" + +#: config/tc-h8300.c:1310 +#, c-format +msgid "operand %s0x%lx out of range." +msgstr "operando %s0x%lx fuera de rango." + +#: 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:1470 +#, c-format +msgid "Opcode `%s' with these operand types not available in H8/300 mode" +msgstr "El código de operación «%s» con esos tipos de operando no están disponibles en el modo H8/300" + +#: config/tc-h8300.c:1475 +#, c-format +msgid "Opcode `%s' with these operand types not available in H8/300H mode" +msgstr "El código de operación «%s» con esos tipos de operando no está disponible en el modo H8/300H" + +#: config/tc-h8300.c:1481 +#, c-format +msgid "Opcode `%s' with these operand types not available in H8/300S mode" +msgstr "El código de operación «%s» con esos tipos de operando no está disponible en el modo H8/300S" + +#: 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:1557 +msgid "#4 not valid on H8/300." +msgstr "Nº4 no valida en H8/300." + +#: 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:1774 +msgid "destination operand must be 16 bit register" +msgstr "operando de destino debe ser un registro de 16 bit" + +#: 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: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:1798 +msgid "destination operand must be 8 bit register" +msgstr "operando de destino debe ser un registro de 8 bit" + +#: 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: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:1845 +msgid "operand/size mis-match" +msgstr "no coinciden los operandos/tamaños" + +#: config/tc-h8300.c:1945 config/tc-sh.c:2537 config/tc-z8k.c:1243 +msgid "unknown opcode" +msgstr "desconoce código de operación" + +#: config/tc-h8300.c:1978 +msgid "invalid operand in ldm" +msgstr "operando inválido en ldm" + +#: config/tc-h8300.c:1987 +msgid "invalid operand in stm" +msgstr "operando inválido en stm" + +#: 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:2197 +#, c-format +msgid " H8300-specific assembler options:\n" +msgstr " Opciones de ensamblador específicas de H8300:\n" + +#: config/tc-h8300.c:2198 +#, c-format +msgid "" +" -mach=<name> Set the H8300 machine type to one of:\n" +" h8300h, h8300hn, h8300s, h8300sn, h8300sx, h8300sxn\n" +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: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: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:2219 +#, c-format +msgid "call to md_convert_frag \n" +msgstr "llamada a md_convert_frag \n" + +#: 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: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: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" + +#. Simple range checking for FIELD against HIGH and LOW bounds. +#. IGNORE is used to suppress the error message. +#. Variant of CHECK_FIELD for use in md_apply_fix and other places where +#. the current file and line number are not valid. +#: config/tc-hppa.c:1027 config/tc-hppa.c:1041 +#, c-format +msgid "Field out of range [%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. +#: config/tc-hppa.c:1055 +#, c-format +msgid "Field not properly aligned [%d] (%d)." +msgstr "El campo no está alineado adecuadamente [%d] (%d)." + +#: config/tc-hppa.c:1108 +msgid "Missing .exit\n" +msgstr "Ausente .exit\n" + +#: config/tc-hppa.c:1111 +msgid "Missing .procend\n" +msgstr "Ausente .procend\n" + +#: config/tc-hppa.c:1264 +#, c-format +msgid "Invalid field selector. Assuming F%%." +msgstr "Selector de campo inválido. Asumiendo F%%." + +#: config/tc-hppa.c:1288 +msgid "Bad segment in expression." +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:1379 +msgid "Cannot handle fixup" +msgstr "No se puede manipular la compostura" + +#: config/tc-hppa.c:1663 +#, c-format +msgid " -Q ignored\n" +msgstr " -Q se descarta\n" + +#: 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: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:1912 +msgid "Unknown relocation encountered in md_apply_fix." +msgstr "Se encontró una reubicación desconocida en md_apply_fix." + +#: config/tc-hppa.c:2100 config/tc-hppa.c:2125 +#, c-format +msgid "Undefined register: '%s'." +msgstr "Registro indefinido: «%s»." + +#: config/tc-hppa.c:2159 +#, c-format +msgid "Non-absolute symbol: '%s'." +msgstr "Símbolo no absoluto: «%s»." + +#: config/tc-hppa.c:2174 +#, c-format +msgid "Undefined absolute constant: '%s'." +msgstr "Constante absoluta sin definir: «%s»." + +#: 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:2243 +#, c-format +msgid "Invalid FP Compare Condition: %s" +msgstr "Condición de Comparación de FP Inválida: %s" + +#: config/tc-hppa.c:2298 +#, c-format +msgid "Invalid FTEST completer: %s" +msgstr "Completador FTEST inválido: %s" + +#: 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:2519 +msgid "Bad segment (should be absolute)." +msgstr "Segmento incorrecto (debe ser absoluto)." + +#: 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:2608 +#, c-format +msgid "Invalid argument description: %d" +msgstr "Descripción de argumento no válida: %d" + +#: config/tc-hppa.c:3437 +msgid "Invalid Indexed Load Completer." +msgstr "Completador de Carga Indizado Inválido." + +#: config/tc-hppa.c:3442 +msgid "Invalid Indexed Load Completer Syntax." +msgstr "Sintaxis de Completador de Carga Indizado Inválido." + +#: config/tc-hppa.c:3476 +msgid "Invalid Short Load/Store Completer." +msgstr "Completador Short de Load/Store Inválido." + +#: 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: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:3912 config/tc-hppa.c:3919 +msgid "Invalid permutation completer" +msgstr "Completador de permutación inválido" + +#: 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: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: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: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:4109 +msgid "Missing Branch On Bit Condition" +msgstr "Ausentea Condición de Ramificación de Bit" + +#: 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:4226 +msgid "Invalid Compare and Branch Condition" +msgstr "Condición de Comparación y Ramificación Inválida" + +#: config/tc-hppa.c:4322 +msgid "Invalid Logical Instruction Condition." +msgstr "Condición de Instrucción Lógica Inválida." + +#: config/tc-hppa.c:4384 +msgid "Invalid Shift/Extract/Deposit Condition." +msgstr "Condición Desplazar/Extraer/Depositar Inválida." + +#: config/tc-hppa.c:4501 +msgid "Invalid Unit Instruction Condition." +msgstr "Condición de Instrucción Unit Inválida." + +#: 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:5255 +msgid "Invalid SFU identifier" +msgstr "Identificador SFU inválido" + +#: config/tc-hppa.c:5305 +msgid "Invalid COPR identifier" +msgstr "Identificador COPR inválido" + +#: config/tc-hppa.c:5435 +msgid "Invalid Floating Point Operand Format." +msgstr "Formato de Operando de Coma Flotante Inválido." + +#: 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:5703 +#, c-format +msgid "Invalid operands %s" +msgstr "Operandos inválidos %s" + +#: 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: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: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: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:5918 +#, c-format +msgid "Invalid .CALL argument: %s" +msgstr "Argumento de .CALL inválido: %s" + +#: 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: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:6098 +msgid "Value for ENTRY_GR must be in the range 3..18\n" +msgstr "Valorar para ENTRY_GR debe estar en el rango 3..18\n" + +#: 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 rango 12..21\n" + +#: 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:6167 +#, c-format +msgid "Invalid .CALLINFO argument: %s" +msgstr "Argumento de .CALLINFO inválido: %s" + +#: 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:6305 +msgid "Misplaced .entry. Ignored." +msgstr ".entry mal ubicado. Se descarta." + +#: config/tc-hppa.c:6309 +msgid "Missing .callinfo." +msgstr "Ausente .callinfo." + +#: 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:6390 +msgid "bad or irreducible absolute expression; zero assumed" +msgstr "expresión absoluta incorrecta o irreducible; se asume cero" + +#: config/tc-hppa.c:6401 +msgid ".REG must use a label" +msgstr ".REG debe usar una etiqueta" + +#: config/tc-hppa.c:6403 +msgid ".EQU must use a label" +msgstr ".EQU debe usar una etiqueta" + +#: 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:6508 +msgid ".EXIT must appear within a procedure" +msgstr ".EXIT debe aparecer dentro de un procedimiento" + +#: config/tc-hppa.c:6512 +msgid "Missing .callinfo" +msgstr "Ausente .callinfo" + +#: config/tc-hppa.c:6516 +msgid "No .ENTRY for this .EXIT" +msgstr "No hay .ENTRY para este .EXIT" + +#: 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:6675 +#, c-format +msgid "Undefined .EXPORT/.IMPORT argument (ignored): %s" +msgstr "Argumento indefinido .EXPORT/.IMPORT (descartado): %s" + +#: 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:6789 +msgid "Missing label name on .LABEL" +msgstr "Ausente el nombre de etiqueta en .LABEL" + +#: config/tc-hppa.c:6794 +msgid "extra .LABEL arguments ignored." +msgstr "se descartan los argumentos extra de .LABEL." + +#: 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:6848 +msgid "Unrecognized .LEVEL argument\n" +msgstr "No reconocido el argumento de .LEVEL\n" + +#: 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:6913 +msgid "Nested procedures" +msgstr "Procedimientos anidados" + +#: 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:7021 +msgid "misplaced .procend" +msgstr ".procend mal ubicado" + +#: config/tc-hppa.c:7024 +msgid "Missing .callinfo for this procedure" +msgstr "Ausente .callinfo para este procedimiento" + +#: config/tc-hppa.c:7027 +msgid "Missing .EXIT for a .ENTRY" +msgstr "Ausente .EXIT para un .ENTRY" + +#: config/tc-hppa.c:7064 +msgid "Not in a space.\n" +msgstr "No está en un espacio.\n" + +#: config/tc-hppa.c:7067 +msgid "Not in a subspace.\n" +msgstr "No está en un subespacio.\n" + +#: config/tc-hppa.c:7155 +msgid "Invalid .SPACE argument" +msgstr "Argumento de .SPACE inválido" + +#: 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: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: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: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: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:7438 +msgid "Alignment must be a power of 2" +msgstr "Alineación debe ser una potencia de 2" + +#: 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:7487 +msgid "Invalid .SUBSPACE argument" +msgstr "Argumento de .SUBSPACE inválido" + +#: 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:8237 +msgid "-R option not supported on this target." +msgstr "No se admite la opción -R en este objetivo." + +#: config/tc-hppa.c:8259 +#, c-format +msgid "internal error: losing opcode: `%s' \"%s\"\n" +msgstr "error interno: se pierde el código de operación: «%s» «%s»\n" + +#: 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-i386.c:1558 +#, c-format +msgid "i386_output_nops called to generate nops of at most %d bytes!" +msgstr "" + +#: config/tc-i386.c:1738 +#, c-format +msgid "invalid single nop size: %d (expect within [0, %d])" +msgstr "" + +#: 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-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-i386.c:2135 config/tc-i386.c:2146 +#, fuzzy +#| msgid "unrecognized symbol suffix" +msgid "unrecognized pseudo-suffix" +msgstr "símbolo sufijo no reconocido" + +#: config/tc-i386.c:2182 +msgid "unrecognized oszc flags or illegal `,' in pseudo-suffix" +msgstr "" + +#: config/tc-i386.c:2199 +msgid "missing `}' or `,' in pseudo-suffix" +msgstr "" + +#: 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: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: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: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:3035 +msgid "bad argument to syntax directive." +msgstr "argumento incorrecto para la directiva syntax." + +#: config/tc-i386.c:3092 +#, c-format +msgid "bad argument to %s_check directive." +msgstr "argumento incorrecto para `%s_check' de directiva." + +#: 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:3123 +#, c-format +msgid "`%s' is not supported on `%s'" +msgstr "«%s» no se admite en «%s»" + +#: 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:3410 +#, c-format +msgid "no such architecture modifier: `%s'" +msgstr "no hay tal modificador de arquitectura: «%s»" + +#: 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:3456 config/tc-i386.c:17765 +msgid "unknown architecture" +msgstr "desconoce arquitectura" + +#: 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:3843 +#, c-format +msgid "unknown relocation (%u)" +msgstr "reubicación desconocida (%u)" + +#: 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: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: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:3863 +msgid "there are no unsigned pc-relative relocations" +msgstr "no hay reubicaciones relativas a pc sin signo" + +#: 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: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:4352 +#, c-format +msgid "ambiguous broadcast for `%s', using %u-bit form" +msgstr "" + +#: 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 "la instrucción «%s» no válida tras «%s»" + +#: config/tc-i386.c:4777 +#, c-format +msgid "missing `lock' with `%s'" +msgstr "ausente `lock' con «%s»" + +#: config/tc-i386.c:4784 +#, c-format +msgid "instruction `%s' after `xacquire' not allowed" +msgstr "la instrucción «%s» tras «xacquire» no permitido" + +#: 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:6224 +#, fuzzy +#| msgid "extra .LABEL arguments ignored." +msgid "`.noopt' arguments ignored" +msgstr "se descartan los argumentos extra de .LABEL." + +#: config/tc-i386.c:6410 +#, c-format +msgid "`%s` changes flags which would affect control flow behavior" +msgstr "" + +#: config/tc-i386.c:6452 +#, c-format +msgid "indirect `%s` with memory operand should be avoided" +msgstr "" + +#: config/tc-i386.c:6462 +#, c-format +msgid "`%s` skips -mlfence-before-indirect-branch on `%s`" +msgstr "" + +#: config/tc-i386.c:6481 +#, c-format +msgid "`%s` skips -mlfence-before-ret on `%s`" +msgstr "" + +#: 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 "@%s operator can be used with `%s', but format is wrong" +msgstr "" + +#: config/tc-i386.c:6841 +#, c-format +msgid "@%s operator requires no SIB" +msgstr "" + +#: 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: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: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: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:6863 +#, c-format +msgid "@%s operator requires `%seax' as base register" +msgstr "" + +#: config/tc-i386.c:6868 +#, c-format +msgid "@%s operator requires `%seax/%srax' as base register" +msgstr "" + +#: config/tc-i386.c:6873 +#, c-format +msgid "@%s operator requires `%sebx' as base register" +msgstr "" + +#: 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: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: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:6893 +#, c-format +msgid "@%s operator requires scale factor of 1" +msgstr "" + +#: 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:6903 +#, c-format +msgid "@%s operator requires 32-bit dest register" +msgstr "" + +#: 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: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:7081 +msgid "operand size mismatch" +msgstr "no coincide tamaño de operando" + +#: config/tc-i386.c:7084 +msgid "operand type mismatch" +msgstr "no coincide el tipo de operando" + +#: config/tc-i386.c:7087 +msgid "register type mismatch" +msgstr "no coincide el tipo de registro" + +#: config/tc-i386.c:7090 +msgid "number of operands mismatch" +msgstr "no coincide el número de operandos" + +#: config/tc-i386.c:7093 +msgid "invalid instruction suffix" +msgstr "invalida sufijo de instrucción" + +#: config/tc-i386.c:7096 +msgid "constant doesn't fit in 4 bits" +msgstr "constante no cabe en 4 bits" + +#: config/tc-i386.c:7099 +msgid "unsupported with Intel mnemonic" +msgstr "no se admite con mnemónico Intel" + +#: config/tc-i386.c:7102 +msgid "unsupported syntax" +msgstr "no se admite la sintaxis" + +#: 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: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: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: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:7173 +msgid "unsupported broadcast" +msgstr "emisión no admitida" + +#: 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:7179 +msgid "unsupported masking" +msgstr "máscara no soportada" + +#: config/tc-i386.c:7182 +msgid "mask not on destination operand" +msgstr "máscara no sobre operando destino" + +#: config/tc-i386.c:7185 +msgid "default mask isn't allowed" +msgstr "" + +#: config/tc-i386.c:7188 +msgid "unsupported static rounding/sae" +msgstr "no admitida reubicación/sae estática" + +#: config/tc-i386.c:7191 +#, c-format +msgid "vector size above %u required for `%s'" +msgstr "" + +#: 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:7198 +#, fuzzy +#| msgid "MIPS internal Error" +msgid "internal error" +msgstr "Error interno de MIPS" + +#: config/tc-i386.c:7201 +#, c-format +msgid "%s for `%s'" +msgstr "%s para «%s»" + +#: 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 "la 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 "el registros de máscaras, indexado, destino deberían ser distintos" + +#: config/tc-i386.c:8589 +msgid "index and destination registers should be distinct" +msgstr "el 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:9725 +#, c-format +msgid "stand-alone `%s' prefix" +msgstr "prefijo «%s» por sí solo" + +#: 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" + +#: 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 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: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:10282 +#, c-format +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" + +#. 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:10426 config/tc-i386.c:10465 config/tc-i386.c:10502 +#, c-format +msgid "incorrect register `%s%s' used with `%c' suffix" +msgstr "el registro incorrecto `%s%s' utilizado con `%c' como sufijo" + +#: 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:10799 +#, c-format +msgid "operand %u `%s%s' implicitly denotes `%s%s' to `%s%s' group in `%s'" +msgstr "" + +#. 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:10853 +#, c-format +msgid "translating to `%s %s%s'" +msgstr "se traslada a `%s %s%s'" + +#: 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: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:11667 +msgid "16-bit jump out of range" +msgstr "16-bit omitido fuera de rango" + +#: 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: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 "la 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:13203 +#, c-format +msgid "missing or invalid expression `%s'" +msgstr "expresión ausentente o no válida «%s»" + +#: 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: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:14283 +#, c-format +msgid "invalid write mask `%s'" +msgstr "marca de escritura no válida «%s»" + +#: config/tc-i386.c:14304 +#, c-format +msgid "duplicated `%s'" +msgstr "duplicado «%s»" + +#: config/tc-i386.c:14314 +#, c-format +msgid "invalid zeroing-masking `%s'" +msgstr "invalida mascarada a cero `%s'" + +#: 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:14344 +#, c-format +msgid "unknown vector operation: `%s'" +msgstr "operación de vector desconocida: «%s»" + +#: config/tc-i386.c:14350 +msgid "zeroing-masking only allowed with write mask" +msgstr "" + +#: config/tc-i386.c:14370 +#, c-format +msgid "at most %d immediate operands are allowed" +msgstr "solo se permiten cuando mucho %d operandos inmediatos" + +#: 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: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: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: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: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:14539 +#, c-format +msgid "at most %d displacement operands are allowed" +msgstr "solo se permiten hasta %d operandos de desubicación" + +#: 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: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: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: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:14961 +msgid "register scaling is being ignored here" +msgstr "el registro escalado está siendo descartado aquí" + +#: config/tc-i386.c:15009 +#, c-format +msgid "Missing '}': '%s'" +msgstr "Ausente '}': «%s»" + +#: config/tc-i386.c:15015 +#, c-format +msgid "Junk after '}': '%s'" +msgstr "Basura tras '}': «%s»" + +#: config/tc-i386.c:15090 +#, c-format +msgid "bad memory operand `%s'" +msgstr "operando de memoria incorrecto «%s»" + +#: config/tc-i386.c:15106 +#, c-format +msgid "junk `%s' after register" +msgstr "«%s» basura tras registro" + +#: 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 incorrecto «%s»" + +#: config/tc-i386.c:15151 +msgid "immediate operand illegal with absolute jump" +msgstr "operando inmediato ilegal con salto absoluto" + +#: 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:15306 +#, c-format +msgid "expecting `,' or `)' after index register in `%s'" +msgstr "se esperaba `,' ó `)' tras registro índice en «%s»" + +#: 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: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: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: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: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:16190 +msgid "jump target out of range" +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:16957 +msgid "no compiled in support for x86_64" +msgstr "no se compiló el soporte para x86_64" + +#: 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: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: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: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:17147 +#, c-format +msgid "invalid -mmnemonic= option: `%s'" +msgstr "opción -mmnemonic= no válida: «%s»" + +#: config/tc-i386.c:17156 +#, c-format +msgid "invalid -msyntax= option: `%s'" +msgstr "opción -msyntax= no válida: «%s»" + +#: 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:17195 +#, c-format +msgid "invalid -moperand-check= option: `%s'" +msgstr "opción -moperand-check= no válida: «%s»" + +#: config/tc-i386.c:17204 +#, c-format +msgid "invalid -mavxscalar= option: `%s'" +msgstr "opción -mavxscalar= no válida: «%s»" + +#: 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:17241 +#, c-format +msgid "invalid -mevexrcig= option: `%s'" +msgstr "invalida opción -mevexrcig=: «%s»" + +#: config/tc-i386.c:17250 +#, c-format +msgid "invalid -mevexwig= option: `%s'" +msgstr "opción -mevexwig= no válida: «%s»" + +#: 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: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: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: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 "" +" -Qy, -Qn ignored\n" +" -V print assembler version number\n" +" -k ignored\n" +msgstr "" +" -Q se descarta\n" +" -V escribe el número de versión del ensamblador\n" +" -k descartado\n" + +#: 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" +" -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:17579 +#, c-format +msgid " -s ignored\n" +msgstr " -s se descarta\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: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:17595 +#, c-format +msgid " --divide ignored\n" +msgstr " --divide se descarta\n" + +#: config/tc-i386.c:17598 +#, c-format +msgid "" +" -march=CPU[,+EXTENSION...]\n" +" generate code for CPU and EXTENSION, 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-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: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: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:17610 +#, c-format +msgid "" +" -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:17616 +#, fuzzy, c-format +#| msgid "" +#| " -moperand-check=[none|error|warning]\n" +#| " check operand combinations for validity\n" +msgid "" +" -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:17619 +#, fuzzy, c-format +#| msgid "" +#| " -mavxscalar=[128|256] encode scalar AVX instructions with specific vector\n" +#| " length\n" +msgid "" +" -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 de vector específica\n" + +#: 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] (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 de vector específica\n" + +#: 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] (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: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] (default: rne)\n" +" encode EVEX instructions with specific EVEX.RC value\n" +" for SAE-only ignored instructions\n" +msgstr "" +" -mevexrcig=[rne|rd|ru|rz]\n" +" codifica instrucciones EVEX con valor EVEX.RC específico\n" +" para instrucciones ignoradas SAE-único\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:17642 +#, c-format +msgid "(default: att)\n" +msgstr "" + +#: config/tc-i386.c:17644 +#, c-format +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:17650 +#, c-format +msgid " -mindex-reg support pseudo index registers\n" +msgstr " -mindex-reg admite registros de pseudo índice\n" + +#: 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:17654 +#, c-format +msgid " -madd-bnd-prefix add BND prefix for all valid branches\n" +msgstr "" + +#: 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: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:17672 +#, fuzzy, c-format +#| msgid "" +#| " -mrelax-relocations=[no|yes]\n" +#| " generate relax relocations\n" +msgid "" +" -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: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] (default: no)\n" +" encode lfence, mfence and sfence as\n" +" lock addl $0x0, (%%{re}sp)\n" +msgstr "" +" -mfence-as-lock-add=[no|sí]\n" +" codifica lfence, mfence y sfence como\n" +" bloqueo addl $0x0, (%%{re}sp\n" + +#: 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 "" +" -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:17714 +#, c-format +msgid "" +" -mlfence-before-indirect-branch=[none|all|register|memory] (default: none)\n" +" generate lfence before indirect near branch\n" +msgstr "" + +#: config/tc-i386.c: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:17722 +#, c-format +msgid " -mintel64 accept only Intel64 ISA\n" +msgstr " -mintel64 acepta solo ISA Intel64\n" + +#: 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: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:17820 +msgid "Intel MCU is 32bit only" +msgstr "Intel MCU es solo 32bit" + +#: 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 de símbolos computacional" + +#: 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: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: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: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:18410 +msgid "bad .section directive: want a,l,w,x,M,S,G,T in string" +msgstr "directiva .section incorrecta: se quiere a,l,w,x,M,S,G,T en la cadena" + +#: config/tc-i386.c:18413 +msgid "bad .section directive: want a,w,x,M,S,G,T in string" +msgstr "directiva .section incorrecta: se quiere a,w,x,M,S,G,T en la cadena" + +#: config/tc-i386.c:18423 +msgid ".largecomm supported only in 64bit mode, producing .comm" +msgstr ".largecomm solo se admite en modo de 64bit, se produce .comm" + +#: config/tc-ia64.c:869 +msgid "bad .section directive: want a,o,s,w,x,M,S,G,T in string" +msgstr "directiva .section incorrecta: se quiere a,o,s,w,x,M,S,G,T en la cadena" + +#: 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: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: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: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:1070 +msgid "expected ',' after section name" +msgstr "esperaba ',' tras nombre de sección" + +#: config/tc-ia64.c:1105 +msgid "expected ',' after symbol name" +msgstr "se esperaba ',' tras nombre de símbolo" + +#: config/tc-ia64.c:1129 +msgid "expected ',' after symbol size" +msgstr "se esperaba ',' tras tamaño de símbolo" + +#: 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:1315 +msgid "Invalid record type for P3 format." +msgstr "Tipo de registro inválido para el formato P3." + +#: 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: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:1616 +msgid "Invalid record type for format X1" +msgstr "Tipo de registro inválido para el formato X1" + +#: 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:1696 +msgid "Previous .save incomplete" +msgstr ".save previo está incompleto" + +#: config/tc-ia64.c:2519 +msgid "spill_mask record unimplemented." +msgstr "no se admite el registro spill_mask." + +#: config/tc-ia64.c:2576 +msgid "record_type_not_valid" +msgstr "tipo_de_registro_no_valido" + +#: 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:2719 +msgid "Only constant space allocation is supported" +msgstr "Sólo se admite el alojamiento de espacio constante" + +#: config/tc-ia64.c:2733 +msgid "Only constant offsets are supported" +msgstr "Sólo se admiten los desplazamientos constantes" + +#: config/tc-ia64.c:2757 +msgid "Section switching in code is not supported." +msgstr "No se admite el cambio de sección en código." + +#: 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:2873 +msgid "frgr_mem record before region record!" +msgstr "¡Registro frgr_mem antes del registro de región!" + +#: 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:2893 +msgid "gr_mem record before region record!" +msgstr "¡Registro gr_mem antes del registro de región!" + +#: 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:2912 +msgid "gr_gr record before region record!" +msgstr "¡Registro gr_gr antes del registro de región!" + +#: 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: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: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: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: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:3158 +#, c-format +msgid "Radix `%s' unsupported or invalid" +msgstr "No se admite el radical «%s» o es inválido" + +#: 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: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:3301 +msgid "First operand to .fframe must be a constant" +msgstr "El primer operando de .fframe debe ser una constante" + +#: 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:3329 +msgid "Operand of .vframe contradicts .prologue" +msgstr "Operando de .vframe contradice a .prologue" + +#: 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: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:3374 +msgid "First operand to .save not a register" +msgstr "El primer operando de .save no debe ser un registro" + +#: 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: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: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: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: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: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:3560 +#, c-format +msgid "Illegal section name `%s' (causes unwind section name clash)" +msgstr "Nombre de sección «%s» ilegal (causa una colisión con el nombre de sección de desenredo)" + +#: 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: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: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: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: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: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: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: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: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: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: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: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: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: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:4000 +msgid "Operand to .spill must be a constant" +msgstr "Operando de .spill debe ser una constante" + +#: 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:4090 +#, c-format +msgid "Missing .label_state %ld" +msgstr "Ausente .label_state %ld" + +#: 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:4163 +msgid "Operand to .copy_state must be a constant" +msgstr "Operando de .copy_state debe ser una constante" + +#: 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:4192 +msgid "Second operand to .unwabi must be a constant" +msgstr "El segundo operando de .unwabi debe ser una constante" + +#: config/tc-ia64.c:4226 +msgid "Missing .endp after previous .proc" +msgstr "Ausente .endp tras .proc previo" + +#: config/tc-ia64.c:4243 +msgid "Empty argument of .proc" +msgstr "Argumento vacío de .proc" + +#: config/tc-ia64.c:4248 +#, c-format +msgid "`%s' was already defined" +msgstr "«%s» ya está definida" + +#: 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:4310 +msgid ".prologue within prologue" +msgstr ".prologue dentro del prólogo" + +#: 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: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: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: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: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: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:4467 +#, c-format +msgid "`%s' was not defined within procedure" +msgstr "«%s» no se definió dentro del procedimiento" + +#: config/tc-ia64.c:4502 +msgid "Empty argument of .endp" +msgstr "Argumento vacío para .endp" + +#: 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: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:4572 config/tc-ia64.c:4879 config/tc-ia64.c:5185 +msgid "Comma expected" +msgstr "Se esperaba una coma" + +#: config/tc-ia64.c:4612 +msgid "Expected '['" +msgstr "Se esperaba '['" + +#: config/tc-ia64.c:4621 config/tc-ia64.c:7719 +msgid "Expected ']'" +msgstr "Se esperaba ']'" + +#: 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: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: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: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:4675 +#, c-format +msgid "Attempt to redefine register set `%s'" +msgstr "Se intenta redefinir el conjunto de registros «%s»" + +#: config/tc-ia64.c:4739 +#, c-format +msgid "Unknown psr option `%s'" +msgstr "Opción ‘psr’ desconocida «%s»" + +#: config/tc-ia64.c:4774 +msgid "Comma expected after section name" +msgstr "Se esperaba una coma tras nombre de sección" + +#: 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:4874 +msgid "Register name expected" +msgstr "Se esperaba un nombre de registro" + +#: config/tc-ia64.c:4887 +msgid "Register value annotation ignored" +msgstr "Se descarta la anotación del valor del registro" + +#: 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:5020 +msgid "Missing predicate relation type" +msgstr "Ausente el tipo de relación del predicado" + +#: config/tc-ia64.c:5026 +msgid "Unrecognized predicate relation type" +msgstr "No reconocido el tipo de relación de predicado" + +#: config/tc-ia64.c:5072 +msgid "Bad register range" +msgstr "Rango de registro incorrecto" + +#: 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:5086 +msgid "Duplicate predicate register ignored" +msgstr "Se descarta el registro de predicado duplicado" + +#: config/tc-ia64.c:5102 +msgid "Predicate source and target required" +msgstr "Se requieren el predicado fuente y destino" + +#: 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:5111 +msgid "At least two PR arguments expected" +msgstr "Se esperaban al menos dos argumentos PR" + +#: config/tc-ia64.c:5125 +msgid "At least one PR argument expected" +msgstr "Se esperaba al menos un argumento PR" + +#: config/tc-ia64.c:5157 +#, fuzzy, c-format +#| msgid "duplicate instruction %s" +msgid "duplicate entry hint %s" +msgstr "la instrucción duplicada %s" + +#. FIXME -- need 62-bit relocation type +#: 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:5718 +msgid "lower 16 bits of mask ignored" +msgstr "16 bit por debajo de máscara descartados" + +#: 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:6066 +msgid "Expected separator `='" +msgstr "Se esperaba el separador `='" + +#: config/tc-ia64.c:6102 +msgid "Duplicate equal sign (=) in instruction" +msgstr "Signo igual (=) duplicado en la instrucción" + +#: config/tc-ia64.c:6109 +#, c-format +msgid "Illegal operand separator `%c'" +msgstr "Separador ilegal de operando `%c'" + +#: 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:6228 +msgid "Wrong number of output operands" +msgstr "Número incorrecto de operandos de salida" + +#: config/tc-ia64.c:6230 +msgid "Wrong number of input operands" +msgstr "Número incorrecto de operandos de entrada" + +#: config/tc-ia64.c:6232 +msgid "Operand mismatch" +msgstr "No coinciden los operandos" + +#: 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: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:6341 +#, c-format +msgid "Invalid duplicate use of `%c%d'" +msgstr "Uso duplicado inválido de `%c%d'" + +#: 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: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:6398 +msgid "Value truncated to 62 bits" +msgstr "Valor truncado a 62 bits" + +#: config/tc-ia64.c:6466 +#, c-format +msgid "Bad operand value: %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: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:6609 +#, c-format +msgid "`%s' must be last in bundle" +msgstr "«%s» debe ser el último en el grupo" + +#: 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: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:6684 +msgid "Label must be first in a bundle" +msgstr "La etiqueta debe estar al inicio de un grupo" + +#: 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: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:6786 +msgid "emit_one_bundle: unexpected dynamic op" +msgstr "emit_one_bundle: operador dinámico inesperado" + +#: 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:6941 +#, c-format +msgid "`%s' does not fit into bundle" +msgstr "«%s» no cabe en el grupo" + +#: 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:6959 +msgid "Missing '}' at end of file" +msgstr "Ausente '}' al final del fichero" + +#: config/tc-ia64.c:7106 +#, c-format +msgid "Unrecognized option '-x%s'" +msgstr "No reconocida la opción '-x%s'" + +#: config/tc-ia64.c:7133 +msgid "" +"IA-64 options:\n" +" --mconstant-gp\t mark output file as using the constant-GP model\n" +"\t\t\t (sets ELF header flag EF_IA_64_CONS_GP)\n" +" --mauto-pic\t\t mark output file as using the constant-GP model\n" +"\t\t\t without function descriptors (sets ELF header flag\n" +"\t\t\t EF_IA_64_NOFUNCDESC_CONS_GP)\n" +" -milp32|-milp64|-mlp64|-mp64\tselect data model (default -mlp64)\n" +" -mle | -mbe\t\t select little- or big-endian byte order (default -mle)\n" +" -mtune=[itanium1|itanium2]\n" +"\t\t\t tune for a specific CPU (default -mtune=itanium2)\n" +" -munwind-check=[warning|error]\n" +"\t\t\t unwind directive check (default -munwind-check=warning)\n" +" -mhint.b=[ok|warning|error]\n" +"\t\t\t hint.b check (default -mhint.b=error)\n" +" -x | -xexplicit\t turn on dependency violation checking\n" +msgstr "" +"Opciones de IA-64:\n" +" --mconstant-gp\t marca el fichero de salida como que usa el modelo\n" +"\t\t\t GP-constante (establece la opción EF_IA_64_CONS_GP\n" +"\t\t\t del encabezado ELF)\n" +" --mauto-pic\t\t marca el fichero de salida como que usa el modelo\n" +"\t\t\t GP-constante sin los descriptores de función\n" +"\t\t\t (establece la opción EF_IA_64_NOFUNCDESC_CONS_GP\n" +"\t\t\t del encabezado ELF)\n" +" -milp32|-milp64|-mlp64|-mp64\tselecciona el modelo de datos\n" +" \t(-mlp64 por defecto)\n" +" -mle | -mbe\t\t selecciona el orden de bytes little- o big-endian\n" +" \t\t (-mle por defecto)\n" +" -mtune=[itanium1|itanium2]\n" +"\t\t\t optimiza para un CPU específico\n" +"\t\t\t (por defecto -mtune=itanium2)\n" +" -munwind-check=[warning|error]\n" +"\t\t\t revisión de directiva de desenredo\n" +"\t\t\t (-munwind-check=warning por defecto)\n" +" -mhint.b=[ok|warning|error]\n" +"\t\t\t revisión de hint.b (-mhint.b=error por defecto)\n" +" -x | -xexplicit\t activa la revisión de violaciones de dependencias\n" +" \t (por defecto)\n" + +#. Note for translators: "automagically" can be translated as "automatically" here. +#: config/tc-ia64.c:7150 +msgid "" +" -xauto\t\t automagically remove dependency violations (default)\n" +" -xnone\t\t turn off dependency violation checking\n" +" -xdebug\t\t debug dependency violation checker\n" +" -xdebugn\t\t debug dependency violation checker but turn off\n" +"\t\t\t dependency violation checking\n" +" -xdebugx\t\t debug dependency violation checker and turn on\n" +"\t\t\t dependency violation checking\n" +msgstr "" +" -xauto\t\t borra las violaciones de dependencias automágicamente\n" +"\t\t\t (por defecto)\n" +" -xnone\t\t desactiva la revisión de violación de dependencias\n" +" -xdebug\t\t depura el revisor de violación de dependencias\n" +" -xdebugn\t\t depura el revisor de violación de dependencias pero\n" +"\t\t\t desactiva la revisión de violación de dependencias\n" +" -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:7165 +msgid "--gstabs is not supported for ia64" +msgstr "no se admite --gstabs para ia64" + +#: 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: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:7622 +msgid "Found '{' after explicit switch to automatic mode" +msgstr "Se encontró '{' tras cambio explícito al modo automático" + +#: 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:7655 +msgid "Expected ')'" +msgstr "Se esperaba ')'" + +#: config/tc-ia64.c:7660 +msgid "Qualifying predicate expected" +msgstr "Se esperaba un predicado calificador" + +#: 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:7708 +msgid "Expected ':'" +msgstr "Se esperaba ':'" + +#: config/tc-ia64.c:7724 +msgid "Tag name expected" +msgstr "Se esperaba un nombre de etiqueta" + +#: 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:7831 +#, c-format +msgid "Index out of range 0..%u" +msgstr "Índice fuera de rango 0..%u" + +#: 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:7852 +msgid "Index can only be applied to rotating or indirect registers" +msgstr "El índice solo se puede aplicar a registros rotantes o indirectos" + +#: config/tc-ia64.c:7888 config/tc-xstormy16.c:145 +msgid "Expected '('" +msgstr "Se esperaba '('" + +#: 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:7914 config/tc-xstormy16.c:161 +msgid "Not a symbolic expression" +msgstr "No es una expresión simbólica" + +#: 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:8022 +msgid "No current frame" +msgstr "Sin marco actual" + +#: config/tc-ia64.c:8024 +#, c-format +msgid "Register number out of range 0..%u" +msgstr "Número de registro fuera de rango 0..%u" + +#: config/tc-ia64.c:8063 +msgid "Standalone `#' is illegal" +msgstr "Un `#' solo es ilegal" + +#: config/tc-ia64.c:8066 +msgid "Redundant `#' suffix operators" +msgstr "Operadores de sufijo `#' redundantes" + +#: 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:9537 +#, c-format +msgid "Unrecognized dependency specifier %d\n" +msgstr "No reconocido el especificador de dependencia %d\n" + +#: 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:10400 +msgid "This is the location of the conflicting usage" +msgstr "Esta es la ubicación del uso conflictivo" + +#: config/tc-ia64.c:10662 +#, c-format +msgid "Unknown opcode `%s'" +msgstr "Código operativo desconocido «%s»" + +#: config/tc-ia64.c:10740 +#, c-format +msgid "AR %d can only be accessed by %c-unit" +msgstr "AR %d solo se puede acceder por %c-unit" + +#: 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:10755 +msgid "hint.b shouldn't be used" +msgstr "no se debe usar hint.b" + +#: config/tc-ia64.c:10794 +#, c-format +msgid "`%s' cannot be predicated" +msgstr "«%s» no puede ser predicado" + +#: config/tc-ia64.c:10867 +msgid "Closing bracket missing" +msgstr "Ausentea llave que cierra" + +#: config/tc-ia64.c:10876 +msgid "Index must be a general register" +msgstr "El índice debe ser un registro general" + +#: 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: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:11332 +msgid "No addend allowed in @fptr() relocation" +msgstr "No se permite addend en la reubicación @fptr()" + +#: config/tc-ia64.c:11371 +msgid "integer operand out of range" +msgstr "operando entero fuera de rango" + +#: 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:11458 +msgid "cannot resolve @slotcount parameter" +msgstr "no se puede resolver el parámetro @slotcount" + +#: config/tc-ia64.c:11491 +msgid "invalid @slotcount value" +msgstr "valor de @slotcount inválido" + +#: 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: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: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: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:11796 +#, c-format +msgid "%s `%s' already has an alias `%s'" +msgstr "%s «%s» ya tiene un alias «%s»" + +#: 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: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" + +#: config/tc-ip2k.c:139 +#, c-format +msgid "IP2K specific command line options:\n" +msgstr "Opciones de la línea de mandatos específicas de IP2K:\n" + +#: config/tc-ip2k.c:140 +#, c-format +msgid " -mip2022 restrict to IP2022 insns \n" +msgstr " -mip2022 restringe a insns de IP2022 \n" + +#: config/tc-ip2k.c:141 +#, c-format +msgid " -mip2022ext permit extended IP2022 insn\n" +msgstr " -mip2022ext permite insns extendidas de IP2022\n" + +#: 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: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: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:388 +msgid "instruction implicitly accesses R31 of previous load." +msgstr "la instrucción accede implícitamente a R31 de carga anterior." + +#: config/tc-iq2000.c:643 config/tc-mep.c:2008 +msgid "Unmatched high relocation" +msgstr "Reubicación high sin coincidencia" + +#: 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: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: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: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:854 +msgid "Expected simple number." +msgstr "Se esperaba un número simple." + +#: 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:885 +msgid "Invalid number" +msgstr "Número inválido" + +#: 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:922 +msgid "missing `.end'" +msgstr "ausente `.end'" + +#: 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 de operación" + +#: 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 "el 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" + +#. Pretend that we do not recognise this option. +#: config/tc-m32r.c:330 +msgid "Unrecognised option: -hidden" +msgstr "No reconocida la opción: -hidden" + +#: config/tc-m32r.c:357 config/tc-sparc.c:602 +msgid "Unrecognized option following -K" +msgstr "No reconoce opción seguida de -K" + +#: config/tc-m32r.c:372 +#, c-format +msgid " M32R specific command line options:\n" +msgstr " Opciones de la línea de mandatos específicas de M32R:\n" + +#: config/tc-m32r.c:374 +#, c-format +msgid " -m32r disable support for the m32rx instruction set\n" +msgstr " -m32r desactivar apoyo para el conjunto de instrucciones m32rx\n" + +#: config/tc-m32r.c:376 +#, c-format +msgid " -m32rx support the extended m32rx instruction set\n" +msgstr " -m32rx admite el conjunto extendido de instrucciones m32rx\n" + +#: config/tc-m32r.c:378 +#, c-format +msgid " -m32r2 support the extended m32r2 instruction set\n" +msgstr " -m32r2 admite el conjunto extendido de instrucciones m32r2\n" + +#: config/tc-m32r.c:380 +#, c-format +msgid " -EL,-little produce little endian code and data\n" +msgstr " -EL,-little produce código y datos little endian\n" + +#: config/tc-m32r.c:382 +#, c-format +msgid " -EB,-big produce big endian code and data\n" +msgstr " -EB,-big produce código y datos big endian\n" + +#: config/tc-m32r.c:384 +#, c-format +msgid " -parallel try to combine instructions in parallel\n" +msgstr " -parallel intenta combinar instrucciones en paralelo\n" + +#: config/tc-m32r.c:386 +#, c-format +msgid " -no-parallel disable -parallel\n" +msgstr " -no-parallel desactiva -parallel\n" + +#: config/tc-m32r.c:388 +#, c-format +msgid " -no-bitinst disallow the M32R2's extended bit-field instructions\n" +msgstr " -no-bitinst desactiva las instrucciones extendidas de campos de bit de M32R2\n" + +#: config/tc-m32r.c:390 +#, c-format +msgid " -O try to optimize code. Implies -parallel\n" +msgstr " -O intenta optimizar código. Implica -parallel\n" + +#: config/tc-m32r.c:393 +#, c-format +msgid " -warn-explicit-parallel-conflicts warn when parallel instructions\n" +msgstr " -warn-explicit-parallel-conflicts avisa cuando hay instrucciones paralelas\n" + +#: config/tc-m32r.c:395 +#, c-format +msgid " might violate constraints\n" +msgstr " quizá viola restricciones\n" + +#: config/tc-m32r.c:397 +#, c-format +msgid " -no-warn-explicit-parallel-conflicts do not warn when parallel\n" +msgstr " -no-warn-explicit-parallel-conflicts no avisa cuando las instrucciones\n" + +#: config/tc-m32r.c:399 +#, c-format +msgid " instructions might violate constraints\n" +msgstr " instrucciones quizá violan restricciones\n" + +#: config/tc-m32r.c:401 +#, c-format +msgid " -Wp synonym for -warn-explicit-parallel-conflicts\n" +msgstr " -Wp sinónimo para -warn-explicit-parallel-conflicts\n" + +#: config/tc-m32r.c:403 +#, c-format +msgid " -Wnp synonym for -no-warn-explicit-parallel-conflicts\n" +msgstr " -Wnp sinónimo para -no-warn-explicit-parallel-conflicts\n" + +#: config/tc-m32r.c:405 +#, c-format +msgid " -ignore-parallel-conflicts do not check parallel instructions\n" +msgstr " -ignore-parallel-conflicts no revisa cuando hay instrucciones paralelas\n" + +#: config/tc-m32r.c:407 +#, c-format +msgid " for constraint violations\n" +msgstr " que violan las restricciones\n" + +#: config/tc-m32r.c:409 +#, c-format +msgid " -no-ignore-parallel-conflicts check parallel instructions for\n" +msgstr " -no-ignore-parallel-conflicts revisa cuando hay instrucciones paralelas\n" + +#: config/tc-m32r.c:411 +#, c-format +msgid " constraint violations\n" +msgstr " que violan las restricciones\n" + +#: config/tc-m32r.c:413 +#, c-format +msgid " -Ip synonym for -ignore-parallel-conflicts\n" +msgstr " -Ip sinónimo para -ignore-parallel-conflicts\n" + +#: config/tc-m32r.c:415 +#, c-format +msgid " -nIp synonym for -no-ignore-parallel-conflicts\n" +msgstr " -nIp sinónimo para -no-ignore-parallel-conflicts\n" + +#: config/tc-m32r.c:418 +#, c-format +msgid " -warn-unmatched-high warn when an (s)high reloc has no matching low reloc\n" +msgstr " -warn-unmatched-high avisa cundo una reubicación (s)high no tiene una reubicación low correspondiente\n" + +#: config/tc-m32r.c:420 +#, c-format +msgid " -no-warn-unmatched-high do not warn about missing low relocs\n" +msgstr " -no-warn-unmatched-high no avisa cuando ausenten reubicaciones low\n" + +#: config/tc-m32r.c:422 +#, c-format +msgid " -Wuh synonym for -warn-unmatched-high\n" +msgstr " -Wuh sinónimo para -warn-unmatched-high\n" + +#: config/tc-m32r.c:424 +#, c-format +msgid " -Wnuh synonym for -no-warn-unmatched-high\n" +msgstr " -Wnuh sinónimo para -no-warn-unmatched-high\n" + +#: config/tc-m32r.c:427 +#, c-format +msgid " -KPIC generate PIC\n" +msgstr " -KPIC genera PIC\n" + +#: 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:855 +msgid "Instructions do not use parallel execution pipelines." +msgstr "Las instrucciones no usan tuberías de ejecución paralela." + +#: 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: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: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» solo es para el M32R2" + +#: 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: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» solo es para el M32RX" + +#: 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: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: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: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: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: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: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: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:2070 +msgid "Unmatched high/shigh reloc" +msgstr "Reubicación high/shigh sin coincidencia" + +#: config/tc-m68hc11.c:416 +#, c-format +msgid "" +"Motorola 68HC11/68HC12/68HCS12 options:\n" +" -m68hc11 | -m68hc12 |\n" +" -m68hcs12 | -mm9s12x |\n" +" -mm9s12xg specify the processor [default %s]\n" +" -mshort use 16-bit int ABI (default)\n" +" -mlong use 32-bit int ABI\n" +" -mshort-double use 32-bit double ABI\n" +" -mlong-double use 64-bit double ABI (default)\n" +" --force-long-branches always turn relative branches into absolute ones\n" +" -S,--short-branches do not turn relative branches into absolute ones\n" +" when the offset is out of range\n" +" --strict-direct-mode do not turn the direct mode into extended mode\n" +" when the instruction does not support direct mode\n" +" --print-insn-syntax print the syntax of instruction in case of error\n" +" --print-opcodes print the list of instructions with syntax\n" +" --xgate-ramoffset offset ram addresses by 0xc000\n" +" --generate-example generate an example of each instruction\n" +" (used for testing)\n" +msgstr "" +"Opciones para Motorola 68HC11/68HC12/68HCS12:\n" +" -m68hc11 | -m68hc12 |\n" +" -m68hcs12 | -mm9s12x |\n" +" -mm9s12xg especifica el procesador [por defecto %s]\n" +" -mshort usa la ABI int de 16-bit (por defecto)\n" +" -mlong usa la ABI int de 32-bit\n" +" -mshort-double usa la ABI double de 32-bit\n" +" -mlong-double usa la ABI double de 64-bit (por defecto)\n" +" --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 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" +" error\n" +" --print-opcodes escribe la lista de instrucciones con sintaxis\n" +" --generate-example genera un ejemplo de cada instrucción\n" +" (se utiliza para pruebas)\n" + +#: config/tc-m68hc11.c:464 config/tc-xgate.c:284 +#, c-format +msgid "Default target `%s' is not supported." +msgstr "No se admite el objetivo por defecto «%s»." + +#. Dump the opcode statistics table. +#: config/tc-m68hc11.c:482 +#, c-format +msgid "Name # Modes Min ops Max ops Modes mask # Used\n" +msgstr "Nombre # Modos Min ops Max ops Masc. modos # Usado\n" + +#: config/tc-m68hc11.c:561 +#, c-format +msgid "Option `%s' is not recognized." +msgstr "No reconocida la opción «%s»." + +#: config/tc-m68hc11.c:746 +msgid "imm3" +msgstr "imm3" + +#: config/tc-m68hc11.c:754 +msgid "RD" +msgstr "RD" + +#: config/tc-m68hc11.c:762 +msgid "RD,RS" +msgstr "RD,RS" + +#: config/tc-m68hc11.c:770 +msgid "RI, #imm4" +msgstr "RI, #imm4" + +#: config/tc-m68hc11.c:802 +msgid "RD, (RI,#offs5)" +msgstr "RD, (RI,#offs5)" + +#: config/tc-m68hc11.c:854 +msgid "#<imm8>" +msgstr "#<imm8>" + +#: config/tc-m68hc11.c:863 +msgid "#<imm16>" +msgstr "#<imm16>" + +#: config/tc-m68hc11.c:872 config/tc-m68hc11.c:881 +msgid "<imm8>,X" +msgstr "<imm8>,X" + +#: config/tc-m68hc11.c:908 +msgid "*<abs8>" +msgstr "*<abs8>" + +#: config/tc-m68hc11.c:920 +msgid "#<mask>" +msgstr "#<máscara>" + +#: config/tc-m68hc11.c:930 +#, c-format +msgid "symbol%d" +msgstr "símbolo%d" + +#: config/tc-m68hc11.c:932 +msgid "<abs>" +msgstr "<abs>" + +#: config/tc-m68hc11.c:951 +msgid "<label>" +msgstr "<etiqueta>" + +#: config/tc-m68hc11.c:967 +#, c-format +msgid "" +"# Example of `%s' instructions\n" +"\t.sect .text\n" +"_start:\n" +msgstr "" +"# Ejemplo de las instrucciones «%s»\n" +"\t.sect .text\n" +"_start:\n" + +#: config/tc-m68hc11.c:1014 +#, c-format +msgid "Instruction `%s' is not recognized." +msgstr "No reconocida la instrucción «%s»." + +#: config/tc-m68hc11.c:1019 +#, c-format +msgid "Instruction formats for `%s':" +msgstr "Formatos de instrucción para «%s»:" + +#: config/tc-m68hc11.c:1171 +#, c-format +msgid "Immediate operand is not allowed for operand %d." +msgstr "No se permite un operando inmediato para el operando %d." + +#: config/tc-m68hc11.c:1215 +msgid "Indirect indexed addressing is not valid for 68HC11." +msgstr "El direccionamiento indexado indirecto no es válido para 68HC11." + +#: config/tc-m68hc11.c:1235 +msgid "Spurious `,' or bad indirect register addressing mode." +msgstr "`,' sobrante o modo de direccionamiento de registro indirecto incorrecto." + +#: 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 indexado indirecto." + +#: config/tc-m68hc11.c:1267 +msgid "Missing second register for indexed-indirect mode." +msgstr "Ausente el segundo registro para el modo indexado indirecto." + +#: config/tc-m68hc11.c:1283 +msgid "Missing `]' to close indexed-indirect mode." +msgstr "Ausente `]' para cerrar el modo indexado directo." + +#: 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: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: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:1399 +msgid "Wrong register in register indirect mode." +msgstr "Registro incorrecto en el modo indirecto de registro." + +#: config/tc-m68hc11.c:1407 +msgid "Missing `]' to close register indirect operand." +msgstr "Ausente `]' para cerrar operando indirecto de registro." + +#: 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: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:1453 +msgid "Invalid indexed indirect mode." +msgstr "Modo indexado indirecto inválido." + +#: 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: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: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 rango 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: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 +#, fuzzy, c-format +#| msgid "Operand out of 16-bit range: `%ld'." +msgid "Operand out of 16-bit range: `%<PRId64>'." +msgstr "Operando fuera del rango de 16-bit: `%ld'." + +#: config/tc-m68hc11.c:1677 config/tc-m68hc11.c:1708 +#, c-format +msgid "Operand `%x' not recognized in fixup16." +msgstr "No reconoce operando `%x' en fixup16." + +#: config/tc-m68hc11.c:1801 +#, c-format +msgid "Unexpected branch conversion with `%x'" +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 rango para una ramificación relativa: `%ld'" + +#: config/tc-m68hc11.c:1987 +msgid "Invalid register for dbcc/tbcc instruction." +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 rango: `%ld'." + +#: config/tc-m68hc11.c:2087 +msgid "Expecting a register." +msgstr "Se espera un registro." + +#: config/tc-m68hc11.c:2102 +msgid "Invalid register for post/pre increment." +msgstr "Registro inválido para post/pre incremento." + +#: config/tc-m68hc11.c:2132 +msgid "Invalid register." +msgstr "Registro inválido." + +#: config/tc-m68hc11.c:2139 +#, c-format +msgid "Offset out of 16-bit range: %ld." +msgstr "Desplazamiento fuera del rango de 16-bit: %ld." + +#: config/tc-m68hc11.c:2145 +#, c-format +msgid "Offset out of 5-bit range for movw/movb insn: %ld." +msgstr "Desplazamiento fuera del rango 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 indexado indirecto." + +#: config/tc-m68hc11.c:2272 +msgid "Indexed indirect mode is not allowed for movb/movw." +msgstr "No se permite el modo indexado directo para movb/movw." + +#: config/tc-m68hc11.c:2289 +msgid "Invalid accumulator register." +msgstr "Registro acumulador inválido." + +#: config/tc-m68hc11.c:2315 +msgid "Invalid indexed register." +msgstr "Registro indexado inválido." + +#: config/tc-m68hc11.c:2325 +msgid "Addressing mode not implemented yet." +msgstr "Modo de direccionamiento aún sin implementar." + +#: config/tc-m68hc11.c:2339 +msgid "Invalid source register for this instruction, use 'tfr'." +msgstr "Registro fuente inválido para esta instrucción, utilice 'tfr'." + +#: config/tc-m68hc11.c:2341 +msgid "Invalid source register." +msgstr "Registro fuente inválido." + +#: config/tc-m68hc11.c:2346 +msgid "Invalid destination register for this instruction, use 'tfr'." +msgstr "Registro destino inválido para esta instrucción, utilice 'tfr'." + +#: config/tc-m68hc11.c:2348 +msgid "Invalid destination register." +msgstr "Registro destino inválido." + +#: config/tc-m68hc11.c:2523 +msgid "Invalid indexed register, expecting register 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 indexado inválido, se esperaba el registro Y." + +#: 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 de operación." + +#: config/tc-m68hc11.c:2854 config/tc-m68hc11.c:3533 +#, c-format +msgid "Opcode `%s' is not recognized." +msgstr "No reconocido el código de operación «%s»." + +#: 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»." + +#: config/tc-m68hc11.c:3440 +#, c-format +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:3683 config/tc-m68hc11.c:3689 +#, c-format +msgid "Invalid operand for `%s'" +msgstr "Operando inválido para «%s»" + +#: config/tc-m68hc11.c:3741 +#, c-format +msgid "Invalid mode: %s\n" +msgstr "Modo inválido: %s\n" + +#: config/tc-m68hc11.c:3800 +msgid "bad .relax format" +msgstr "formato de .relax incorrecto" + +#: 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:4121 +msgid "bra or bsr with undefined symbol." +msgstr "bra o bsr con símbolo indefinido." + +#: 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: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 rango de 16-bit." + +#: 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: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: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:4417 +#, c-format +msgid "Auto increment/decrement offset '%ld' is out of range." +msgstr "El auto incremento/decremento del desplazamiento '%ld' está fuera de rango." + +#: config/tc-m68hc11.c:4430 +#, c-format +msgid "Offset out of 5-bit range for movw/movb insn: %ld" +msgstr "Desplazamiento fuera del rango de 5-bit para insn movw/movb: %ld" + +#: 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:4453 +#, c-format +msgid "Offset out of 16-bit range for movw/movb insn: %ld" +msgstr "Desplazamiento fuera del rango de 16-bit para insn movw/movb: %ld" + +#: 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:4495 config/tc-z80.c:3452 config/tc-z80.c:3472 +msgid "Invalid directive" +msgstr "Directiva no válida" + +#: 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: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: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: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:1202 +#, c-format +msgid "Unable to produce reloc against symbol '%s'" +msgstr "Incapaz producir reubicación contra símbolo «%s»" + +#: 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:1343 config/tc-vax.c:1874 +msgid "No operator" +msgstr "No hay operador" + +#: config/tc-m68k.c:1373 config/tc-vax.c:1890 +msgid "Unknown operator" +msgstr "Operador desconocido" + +#: config/tc-m68k.c:2276 +msgid "invalid instruction for this architecture; needs " +msgstr "la instrucción no válida para esta arquitectura; necesita " + +#: config/tc-m68k.c:2284 +msgid "hardware divide" +msgstr "divide por hardware" + +#: 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:2367 +msgid "operands mismatch" +msgstr "no coinciden los operandos" + +#: 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 rango" + +#: 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: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: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:2690 +msgid "invalid index size for coldfire" +msgstr "tamaño de índice inválido para coldfire" + +#: config/tc-m68k.c:2743 +msgid "Forcing byte displacement" +msgstr "Se fuerza la desubicación de byte" + +#: config/tc-m68k.c:2745 +msgid "byte displacement out of range" +msgstr "desplazamiento byte fuera de rango" + +#: 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: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: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:2938 +msgid "unknown/incorrect operand" +msgstr "operando desconocido/incorrecto" + +#: 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 rango" + +#: 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:3180 +msgid "Expression out of range, using 0" +msgstr "Expresión fuera de rango, utilizando 0" + +#: 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:3387 +msgid "Wrong register in floating-point reglist" +msgstr "Registro incorrecto en la lista de registros de coma flotante" + +#: config/tc-m68k.c:3403 +msgid "incorrect register in reglist" +msgstr "el registro incorrecto en la lista de registros" + +#: config/tc-m68k.c:3409 +msgid "wrong register in floating-point reglist" +msgstr "el 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:3882 +msgid "Extra )" +msgstr "Adicional )" + +#. ERROR. +#: config/tc-m68k.c:3893 +msgid "Missing )" +msgstr "Ausente )" + +#: config/tc-m68k.c:3910 +msgid "Missing operand" +msgstr "Ausente operando" + +#: config/tc-m68k.c:4235 +#, c-format +msgid "unrecognized default cpu `%s'" +msgstr "no reconocido el cpu por defecto «%s»" + +#: config/tc-m68k.c:4289 +#, c-format +msgid "%s -- statement `%s' ignored" +msgstr "%s -- declaración «%s» descartada" + +#: 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: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 tabla de dispersión" + +#: 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:4879 +#, c-format +msgid "value %ld out of range" +msgstr "valora %ld fuera de rango" + +#: config/tc-m68k.c:4893 +msgid "invalid byte branch offset" +msgstr "desplazamiento de ramificación byte inválido" + +#: 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: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: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: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:5124 +msgid "Conversion of PC relative displacement to absolute" +msgstr "Conversión de un desplazamiento relativo a PC a absoluto" + +#: 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:5352 config/tc-m68k.c:5363 config/tc-m68k.c:5407 +msgid "expression out of range: defaulting to 1" +msgstr "expresión fuera de rango: se cambia por defecto a 1" + +#: config/tc-m68k.c:5399 +msgid "expression out of range: defaulting to 0" +msgstr "expresión fuera de rango: se cambia por defecto a 0" + +#: 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:5466 +msgid "expression doesn't fit in BYTE" +msgstr "expresión no cabe en BYTE" + +#: config/tc-m68k.c:5470 +msgid "expression doesn't fit in WORD" +msgstr "expresión no cabe en WORD" + +#: config/tc-m68k.c:5547 +#, c-format +msgid "%s: unrecognized processor name" +msgstr "%s: no reconocido el nombre de procesador" + +#: config/tc-m68k.c:5608 +msgid "bad coprocessor id" +msgstr "id de coprocesador incorrecto" + +#: config/tc-m68k.c:5614 +msgid "unrecognized fopt option" +msgstr "no se reconoce la opción fopt" + +#: 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:5757 +#, c-format +msgid "option `%s' not recognized" +msgstr "opción «%s» no reconocida" + +#: config/tc-m68k.c:5786 +msgid "bad format of OPT NEST=depth" +msgstr "formato incorrecto de OPT NEST=profundidad" + +#: config/tc-m68k.c:5842 +msgid "missing label" +msgstr "ausencia etiquetado" + +#: config/tc-m68k.c:5868 +#, c-format +msgid "bad register list: %s" +msgstr "lista de registros incorrecta: %s" + +#: config/tc-m68k.c:5966 +msgid "restore without save" +msgstr "restaurar sin guardar" + +#: config/tc-m68k.c:6119 config/tc-m68k.c:6489 +msgid "syntax error in structured control directive" +msgstr "error de sintaxis en directiva de control estructurada" + +#: 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: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:6531 +msgid "missing then" +msgstr "ausente then" + +#: config/tc-m68k.c:6612 +msgid "else without matching if" +msgstr "else sin if coincidente" + +#: config/tc-m68k.c:6645 +msgid "endi without matching if" +msgstr "endi sin if coincidente" + +#: config/tc-m68k.c:6685 +msgid "break outside of structured loop" +msgstr "break externo al bucle estructurado" + +#: config/tc-m68k.c:6723 +msgid "next outside of structured loop" +msgstr "next externo al bucle estructurado" + +#: config/tc-m68k.c:6774 +msgid "missing =" +msgstr "ausente =" + +#: config/tc-m68k.c:6812 +msgid "missing to or downto" +msgstr "ausente to o downto" + +#: 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:6983 +msgid "endf without for" +msgstr "endf sin for" + +#: config/tc-m68k.c:7037 +msgid "until without repeat" +msgstr "until sin repeat" + +#: config/tc-m68k.c:7131 +msgid "endw without while" +msgstr "endw sin while" + +#: 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:7269 +#, c-format +msgid "`%s' is deprecated, use `%s'" +msgstr "«%s» es obsoleta, emplee «%s»" + +#: config/tc-m68k.c:7288 +#, c-format +msgid "cpu `%s' unrecognized" +msgstr "cpu «%s» no reconocida" + +#: config/tc-m68k.c:7307 +#, c-format +msgid "architecture `%s' unrecognized" +msgstr "arquitectura «%s» no reconocida" + +#: config/tc-m68k.c:7328 +#, c-format +msgid "extension `%s' unrecognized" +msgstr "extensión «%s» no reconocida" + +#: 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: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:7503 +msgid "selected processor does not have all features of selected architecture" +msgstr "el procesador seleccionado no tiene todas las características de la arquitectura seleccionada" + +#: 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: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:7556 +#, c-format +msgid "" +"-march=<arch>\t\tset architecture\n" +"-mcpu=<cpu>\t\tset cpu [default %s]\n" +msgstr "" +"-march=<arqu>\t\tdefine la arquitectura\n" +"-mcpu=<cpu>\t\tdefine el cpu [por defecto %s]\n" + +#: 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:7567 +#, c-format +msgid "" +"-l\t\t\tuse 1 word for refs to undefined symbols [default 2]\n" +"-pic, -k\t\tgenerate position independent code\n" +"-S\t\t\tturn jbsr into jsr\n" +"--pcrel never turn PC-relative branches into absolute jumps\n" +"--register-prefix-optional\n" +"\t\t\trecognize register names without prefix character\n" +"--bitwise-or\t\tdo not treat `|' as a comment character\n" +"--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 "" +"-l\t\t\tusa 1 word para referencias a símbolos indefinidos [por defecto 2]\n" +"-pic, -k\t\tgenera código independiente de posición\n" +"-S\t\t\tconvierte jbsr en jsr\n" +"--pcrel nunca convierte ramificaciones relativas al PC en saltos absolutos\n" +"--register-prefix-optional\n" +"\t\t\treconoce los nombres de registro sin carácter de prefijo\n" +"--bitwise-or\t\tno trata `|' como un carácter de comentario\n" +"--base-size-default-16\tregistro base sin tamaño es 16 bits\n" +"--base-size-default-32\tregistro base sin tamaño es 32 bits (por defecto)\n" +"--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:7581 +#, c-format +msgid "Architecture variants are: " +msgstr "Las variantes de arquitectura son: " + +#: config/tc-m68k.c:7590 +#, c-format +msgid "Processor variants are: " +msgstr "Las variantes de procesador son: " + +#: config/tc-m68k.c:7597 config/tc-xtensa.c:6412 +#, c-format +msgid "\n" +msgstr "\n" + +#: config/tc-m68k.c:7628 +#, c-format +msgid "Error %s in %s\n" +msgstr "Error %s en %s\n" + +#: config/tc-m68k.c:7632 +#, c-format +msgid "Opcode(%d.%s): " +msgstr "Código operacional(%d.%s): " + +#: config/tc-m68k.c:7777 +msgid "Not a defined coldfire architecture" +msgstr "No es una arquitectura coldfire definida" + +#: 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: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: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:639 +msgid "bad/missing psr specifier" +msgstr "especificador psr incorrecto/ausentente" + +#: 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 rango %u..%u, no %ld" + +#: 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:826 +msgid "operand must be a multiple of 2" +msgstr "operando debe ser un múltiplo de 2" + +#: 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 de operación desconocido «%s»" + +#: config/tc-mcore.c:931 +msgid "invalid register: r15 illegal" +msgstr "el registro inválido: r15 ilegal" + +#: 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 de operación específico cuando ensambla para M210" + +#: 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:1014 +msgid "destination register must be r1" +msgstr "destino debe ser registro r1" + +#: config/tc-mcore.c:1035 +msgid "source register must be r1" +msgstr "origen debe ser registro r1" + +#: 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:1127 +msgid "translating bgeni to movi" +msgstr "se traslada ‘bgeni’ a ‘movi’" + +#: config/tc-mcore.c:1196 +msgid "translating bmaski to movi" +msgstr "se traslada ‘bmaski’ a ‘movi’" + +#: config/tc-mcore.c:1272 +#, c-format +msgid "displacement too large (%d)" +msgstr "desubicación muy grande (%d)" + +#: config/tc-mcore.c:1286 +msgid "Invalid register: r0 and r15 illegal" +msgstr "Registro inválido: r0 y r15 ilegales" + +#: config/tc-mcore.c:1317 +msgid "bad starting register: r0 and r15 invalid" +msgstr "el registro de inicio incorrecto: r0 y r15 inválidos" + +#: config/tc-mcore.c:1330 +msgid "ending register must be r15" +msgstr "el registro final debe ser r15" + +#: config/tc-mcore.c:1350 +msgid "bad base register: must be r0" +msgstr "el registro base incorrecto: debe ser r0" + +#: config/tc-mcore.c:1368 +msgid "first register must be r4" +msgstr "el primer registro debe ser r4" + +#: config/tc-mcore.c:1379 +msgid "last register must be r7" +msgstr "el último registro debe ser r7" + +#: config/tc-mcore.c:1416 +msgid "reg-reg expected" +msgstr "se esperaba registro-registro" + +#: config/tc-mcore.c:1548 +msgid "zero used as immediate value" +msgstr "se utiliza cero como valor inmediato" + +#: config/tc-mcore.c:1575 +msgid "duplicated psr bit specifier" +msgstr "especificador de bit psr duplicado" + +#: config/tc-mcore.c:1581 +msgid "`af' must appear alone" +msgstr "`af' debe aparecer solo" + +#: config/tc-mcore.c:1588 config/tc-microblaze.c:1807 +#, c-format +msgid "unimplemented opcode \"%s\"" +msgstr "código de operación «%s» no implementado" + +#: 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:1673 +#, c-format +msgid "unrecognised cpu type '%s'" +msgstr "no reconocido el tipo de cpu «%s»" + +#: config/tc-mcore.c:1691 +#, c-format +msgid "" +"MCORE specific options:\n" +" -{no-}jsri2bsr\t {dis}able jsri to bsr transformation (def: dis)\n" +" -{no-}sifilter\t {dis}able silicon filter behavior (def: dis)\n" +" -cpu=[210|340] select CPU type\n" +" -EB assemble for a big endian system (default)\n" +" -EL assemble for a little endian system\n" +msgstr "" +"Opciones específicas de MCORE:\n" +" -{no-}jsri2bsr\t {des}activa la transformación de jsri a bsr (def: des)\n" +" -{no-}sifilter\t {des}activa el comportamiento filtrado del silicio (def: des)\n" +" -cpu=[210|340] selecciona el tipo de CPU\n" +" -EB ensambla para un sistema big endian (predet.)\n" +" -EL ensambla para un sistema little endian\n" + +#: config/tc-mcore.c:1709 config/tc-microblaze.c:1926 +msgid "failed sanity check: short_jump" +msgstr "la inspección sanitaria ha fallado: short_jump" + +#: config/tc-mcore.c:1719 config/tc-microblaze.c:1936 +msgid "failed sanity check: long_jump" +msgstr "la inspección sanitaria ha fallado: long_jump" + +#: config/tc-mcore.c:1745 +#, c-format +msgid "odd displacement at %x" +msgstr "desplazamiento impar en %x" + +#: 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: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: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: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: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:2191 config/tc-microblaze.c:2531 config/tc-tic30.c:1365 +msgid "pc-relative " +msgstr "relativo a pc " + +#: config/tc-mep.c:339 +#, c-format +msgid "" +"MeP specific command line options:\n" +" -EB assemble for a big endian system\n" +" -EL assemble for a little endian system (default)\n" +" -mconfig=<name> specify a chip configuration to use\n" +" -maverage -mno-average -mmult -mno-mult -mdiv -mno-div\n" +" -mbitops -mno-bitops -mleadz -mno-leadz -mabsdiff -mno-absdiff\n" +" -mminmax -mno-minmax -mclip -mno-clip -msatur -mno-satur -mcop32\n" +" enable/disable the given opcodes\n" +"\n" +" If -mconfig is given, the other -m options modify it. Otherwise,\n" +" if no -m options are given, all core opcodes are enabled;\n" +" if any enabling -m options are given, only those are enabled;\n" +" if only disabling -m options are given, only those are disabled.\n" +msgstr "" +"Opciones de línea de mandatos específicas para MeP:\n" +" -EB ensambla para un sistema big endian\n" +" -EL ensambla para un sistema little endian (por defecto)\n" +" -mconfig=<nombre> especifica una configuración de chip a usar\n" +" -maverage -mno-average -mmult -mno-mult -mdiv -mno-div\n" +" -mbitops -mno-bitops -mleadz -mno-leadz -mabsdiff -mno-absdiff\n" +" -mminmax -mno-minmax -mclip -mno-clip -msatur -mno-satur -mcop32\n" +" activa/desactiva los códigos operacionales dados\n" +"\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, 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" +msgstr "$hi y $lo están desactivados cuando MUL y DIV están apagados" + +#: config/tc-mep.c:415 +msgid "$mb0, $me0, $mb1, and $me1 are disabled when COP is off" +msgstr "$mb0, $me0, $mb1 y $me1 están desactivados cuando COP está apagado" + +#: config/tc-mep.c:420 +msgid "$dbg and $depc are disabled when DEBUG is off" +msgstr "$dbg y $depc están desactivados cuando DEBUG está apagado" + +#: config/tc-mep.c:611 +msgid "core and copro insn lengths must total 32 bits." +msgstr "las longitudes de las insns core y copro deben ser en total 32 bit." + +#: config/tc-mep.c:614 config/tc-mep.c:751 +msgid "vliw group must consist of 1 core and 1 copro insn." +msgstr "el grupo vliw debe consistir de 1 insn core y 1 copro." + +#: config/tc-mep.c:748 +msgid "core and copro insn lengths must total 64 bits." +msgstr "las longitudes de las insns core y copro deben ser en total 64 bit." + +#: config/tc-mep.c:980 +#, c-format +msgid "cannot pack %s with a 16-bit insn" +msgstr "no se puede empaquetar %s con una insn de 16-bit" + +#: config/tc-mep.c:998 +#, c-format +msgid "cannot pack %s and %s together with a 16-bit insn" +msgstr "no se pueden empaquetar %s y %s juntos con una insn de 16-bit" + +#: config/tc-mep.c:1004 +msgid "too many IVC2 insns to pack with a 16-bit core insn" +msgstr "excesivos insns IVC2 a empaquetar con un insn core de 16-bit" + +#: config/tc-mep.c:1019 +#, c-format +msgid "cannot pack %s into slot P1" +msgstr "no se puede empaquetar %s en la ranura P1" + +#: config/tc-mep.c:1025 +msgid "too many IVC2 insns to pack with a 32-bit core insn" +msgstr "demasiadas insns IVC2 para empaquetar con una insn core de 32-bit" + +#: config/tc-mep.c:1043 +#, c-format +msgid "unable to pack %s by itself?" +msgstr "¿incapaz de empaquetar %s por sí mismo?" + +#: config/tc-mep.c:1073 +#, c-format +msgid "cannot pack %s and %s together" +msgstr "no se pueden empaquetar %s y %s juntos" + +#: config/tc-mep.c:1079 +msgid "too many IVC2 insns to pack together" +msgstr "demasiadas insns IVC2 para empaquetar juntas" + +#. There are no insns in the queue and a plus is present. +#. This is a syntax error. Let's not tolerate this. +#. We can relax this later if necessary. +#: config/tc-mep.c:1316 +msgid "Invalid use of parallelization operator." +msgstr "Uso inválido del operador de paralelizador." + +#: config/tc-mep.c:1362 +msgid "Leading plus sign not allowed in core mode" +msgstr "No se permite el signo más inicial en el modo core" + +#: config/tc-mep.c:1892 +#, c-format +msgid "Don't know how to relocate plain operands of type %s" +msgstr "No se cómo reubicar operandos planos de tipo %s" + +#: config/tc-mep.c:1902 +#, c-format +msgid "Perhaps you are missing %%tpoff()?" +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 incorrecta: se quiere a,v,w,x,M,S en la cadena" + +#: config/tc-mep.c:2147 +msgid ".vliw unavailable when VLIW is disabled." +msgstr ".vliw no está disponible cuando VLIW está desactivado." + +#: config/tc-metag.c:456 +msgid "no floating point unit specified" +msgstr "unidad no especificada de coma flotante" + +#: config/tc-metag.c:721 +#, c-format +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: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: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: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:3117 +msgid "invalid source register" +msgstr "invalida registro fuente" + +#: config/tc-metag.c:1024 +msgid "invalid destination unit" +msgstr "invalida unidad destino" + +#: config/tc-metag.c:1032 +msgid "mov cannot use RD port as destination" +msgstr "mov no puede utilizar puerto RD como destino" + +#: config/tc-metag.c:1057 +msgid "invalid source unit" +msgstr "invalida unidad origen" + +#: config/tc-metag.c:1065 +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: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: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: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 rango" + +#: config/tc-metag.c:1169 +msgid "destination unit must be RD" +msgstr "unidad destino debe ser RD" + +#: config/tc-metag.c:1279 +msgid "invalid destination register list" +msgstr "invalida destino del listado de registro" + +#: config/tc-metag.c:1326 +msgid "invalid source register list" +msgstr "invalida listado registrador origen" + +#: config/tc-metag.c:1351 +msgid "register list must be even numbered" +msgstr "el registro listado debe ser numerado pares" + +#: config/tc-metag.c:1357 +msgid "register list must be from the same unit" +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:1636 +msgid "MDRD value must be between 1 and 8" +msgstr "MDRD validado debe estar entre 1 y 9" + +#: config/tc-metag.c:1727 +msgid "invalid destination memory operand" +msgstr "operando de memoria destino no válida" + +#: config/tc-metag.c:1742 +msgid "invalid source memory operand" +msgstr "operando de memoria origen inválido" + +#: 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: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: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: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:2048 +msgid "source and destination register must be in different units" +msgstr "el registro de origen y destino deben ser unidades diferentes" + +#: 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:2167 +#, c-format +msgid "link register unit must be one of %s" +msgstr "el registro enlazado unitario debe ser uno de %s" + +#: config/tc-metag.c:2173 +msgid "link register must be in a low numbered register" +msgstr "el registro enlazado debe estar dentro de un registro numerado bajo" + +#: config/tc-metag.c:2190 config/tc-metag.c:2715 config/tc-metag.c:2769 +msgid "target out of range" +msgstr "objetivo fuera de rango" + +#: config/tc-metag.c:2671 +msgid "invalid quickrot unit specified" +msgstr "invalida unidad quickrot especificada" + +#: config/tc-metag.c:2687 +msgid "invalid quickrot register specified" +msgstr "invalida registro quickrot especificado" + +#: config/tc-metag.c:2741 +msgid "source register must be in the trigger unit" +msgstr "el registro origen debe estar en la unidad disparadora" + +#: 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:3554 config/tc-metag.c:3718 config/tc-metag.c:3986 +msgid "destination register should be even numbered" +msgstr "el registro destino deberían ser numerados pares" + +#: 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:3692 config/tc-metag.c:3757 +msgid "instruction cannot operate on pair values" +msgstr "la instrucción no puede operar pares de valores" + +#: 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:3724 +msgid "source register should be even numbered" +msgstr "el registro origen deberían ser numerados pares" + +#: 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 rango" + +#: config/tc-metag.c:3975 +msgid "simd instructions operate on pair values (L prefix)" +msgstr "" + +#: config/tc-metag.c:3993 +msgid "source registers should be even numbered" +msgstr "el registros origen deberían ser numerados pares" + +#: config/tc-metag.c:4271 +#, c-format +msgid "expected ']', not %c in %s" +msgstr "esperaba ']', no %c dentro de %s" + +#: config/tc-metag.c:4390 +msgid "invalid register for memory access" +msgstr "el registro para acceso de memoria inválido" + +#: 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:4550 +msgid "'H' modifier only valid for accumulator registers" +msgstr "Registro acumulador inválido" + +#: 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:4676 config/tc-metag.c:5119 +msgid "invalid register" +msgstr "invalida registro" + +#: 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: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:5067 +msgid "invalid operands for cross-unit op" +msgstr "operandos inválidos para op de unidades cruzadas" + +#: config/tc-metag.c:5109 +msgid "missing flags: one of 'P', 'N' or 'Z' required" +msgstr "" + +#: config/tc-metag.c:5137 +msgid "'P', 'N' or 'Z' flags may only be specified when accumulating" +msgstr "" + +#: config/tc-metag.c:5158 +msgid "accumulator not a valid destination" +msgstr "acumulador no un destino válido" + +#: 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: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:5212 +#, c-format +msgid "invalid register operand: %s" +msgstr "operando registrado inválido: %s" + +#: config/tc-metag.c:5246 +msgid "QUICKRoT extension requires 4 registers" +msgstr "Extensión QUICKRoT requiere 4 registros" + +#: config/tc-metag.c:5253 +msgid "invalid fourth register" +msgstr "el registro cuarto inválido" + +#: 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:5288 +msgid "DSP RAM pointer in incorrect unit" +msgstr "" + +#: config/tc-metag.c:5334 +msgid "invalid register operand #1" +msgstr "operando registrado inválido Nº1" + +#: config/tc-metag.c:5348 +msgid "invalid register operand #2" +msgstr "operando registrado inválido Nº2" + +#: 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:5432 +msgid "invalid register operand #3" +msgstr "operando registrado inválido Nº3" + +#: 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:5462 +msgid "invalid register operand #4" +msgstr "operando registrado inválido Nº4" + +#: config/tc-metag.c:5539 +msgid "invalid accumulator register" +msgstr "invalida registro acumulador" + +#: 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:5606 +msgid "conditional instruction cannot use B flag" +msgstr "la instrucción condicional no puede utilizar marca B" + +#: config/tc-metag.c:5617 +msgid "conditional instruction cannot use R flag" +msgstr "la instrucción condicional no puede utilizar marca R" + +#: 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:5858 +#, c-format +msgid "missing fpu name `%s'" +msgstr "ausente el nombre fpu «%s»" + +#: config/tc-metag.c:5869 +#, c-format +msgid "unknown fpu `%s'" +msgstr "desconoce FPU «%s»" + +#: config/tc-metag.c:5884 +#, c-format +msgid "missing DSP name `%s'" +msgstr "nombre DSP ausente «%s»" + +#: config/tc-metag.c:5895 +#, c-format +msgid "unknown DSP `%s'" +msgstr "desconoce DSP `%s'" + +#: 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: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:6039 +msgid "premature end of floating point prefix" +msgstr "final prematuro de prefijo coma flotante" + +#: config/tc-metag.c:6099 +msgid "unknown floating point prefix character" +msgstr "desconoce prefijo de caracteres de coma flotante" + +#: 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:6511 +#, c-format +msgid "instruction mnemonic too long: %s" +msgstr "la instrucción mnemónica demasiado larga: %s" + +#: 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:6573 +#, c-format +msgid "failed to assemble instruction: \"%s\"" +msgstr "fallaba al ensamblar la instrucción: «%s»" + +#: 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:6580 +#, c-format +msgid "unknown mnemonic: \"%s\"" +msgstr "desconoce mnemónico: «%s»" + +#: 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: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:6733 config/tc-nds32.c:7347 +msgid "Bad call to md_atof()" +msgstr "Equivocación de llamada a md_atof()" + +#: 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:723 +msgid "operand must be a constant or a label" +msgstr "operando debe ser una constante o una etiqueta" + +#: config/tc-microblaze.c:732 +#, c-format +msgid "operand must be absolute in range %lx..%lx, not %lx" +msgstr "operando debe ser absoluto en rango %lx..%lx, no %lx" + +#: 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: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: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: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: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:1144 +#, c-format +msgid "Shift value > 32. using <value %% 32>" +msgstr "Valor de desplazamiento > 32. se utiliza <value %% 32>" + +#: 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: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: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: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: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:1874 +msgid "Bad call to MD_NTOF()" +msgstr "Llamada incorrecta a MD_NTOF()" + +#: 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: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: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: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 solo lectura de datos small, pero no está en la sección de solo lectura de datos small" + +#: 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: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:2400 +msgid "Absolute value in relaxation code. Assembler error....." +msgstr "Valor absoluto en código de relajación. Error de ensamblador....." + +#. 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: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: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: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:3057 config/tc-mips.c:16644 +#, c-format +msgid "unrecognized register name `%s'" +msgstr "nombre de registro no reconocido «%s»" + +#: config/tc-mips.c:3284 +msgid "invalid register range" +msgstr "rango inválido registro" + +#: config/tc-mips.c:3312 +msgid "vector element must be constant" +msgstr "elemento vector debe ser constante" + +#: config/tc-mips.c:3322 +msgid "missing `]'" +msgstr "ausente `]'" + +#: config/tc-mips.c:3545 +#, c-format +msgid "internal: bad mips opcode (mask error): %s %s" +msgstr "interno: código de operación mips incorrecto (error de máscara): %s %s" + +#: 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:3605 +#, c-format +msgid "internal: bad mips opcode (bits 0x%08lx doubly defined): %s %s" +msgstr "interno: código de operación mips incorrecto (bits 0x%08lx definidos doble ): %s %s" + +#: config/tc-mips.c:3613 +#, c-format +msgid "internal: bad mips opcode (bits 0x%08lx undefined): %s %s" +msgstr "interno: código de operación mips incorrecto (varios bit 0x%08lx definidos): %s %s" + +#: config/tc-mips.c:3620 +#, c-format +msgid "internal: bad mips opcode (bits 0x%08lx defined): %s %s" +msgstr "interno: código de operación mips incorrecto (varios bit 0x%08lx definidos): %s %s" + +#: 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 incorrecto (longitud eincorrecta: %u): %s %s" + +#: 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 de operación/longitud incoherente): %s %s" + +#: 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:3694 +msgid "-G may not be used with abicalls" +msgstr "-G quizá no está emplado con llamadas abi" + +#: config/tc-mips.c:3799 +msgid "broken assembler, no assembly attempted" +msgstr "ensamblador descompuesto, no trata ensamblarlo" + +#: 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:3954 +#, c-format +msgid ".gnu_attribute %d,%d requires `%s'" +msgstr ".gnu_attribute %d,%d requiere «%s»" + +#: 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: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: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: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: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:4050 +msgid "`fp=xx' used with a cpu lacking ldc1/sdc1 instructions" +msgstr "" + +#: 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:4056 +msgid "`fp=64' used with a 32-bit fpu" +msgstr "utilizó `fp=64' con un fpu de 32-bit" + +#: 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:4065 +msgid "`fp=32' used with a 64-bit ABI" +msgstr "utilizó`fp=32' con un ABI de 64-bit" + +#: 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:4070 +msgid "Unknown size of floating point registers" +msgstr "Tamaño desconocido de registros de coma flotante" + +#: 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: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: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: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: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:4924 +#, c-format +msgid "operand %d out of range" +msgstr "operando %d fuera de rango" + +#: config/tc-mips.c:4932 +#, c-format +msgid "operand %d must be constant" +msgstr "operando %d debe ser constante" + +#: 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:4989 +#, c-format +msgid "operand %d must be an immediate expression" +msgstr "operando %d debe ser una expresión inmediata" + +#: config/tc-mips.c:5111 config/tc-mips.c:5113 +#, c-format +msgid "float register should be even, was %d" +msgstr "el registro flotante debería ser par, era %d" + +#: 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: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:5452 +msgid "invalid performance register" +msgstr "rendimiento registrado inválido" + +#: 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:5824 +msgid "missing frame size" +msgstr "ausente el tamaño del marco" + +#: config/tc-mips.c:5829 +msgid "frame size specified twice" +msgstr "tamaño del marco especificado dos veces" + +#: config/tc-mips.c:5834 +msgid "invalid frame size" +msgstr "tamaño de marco inválido" + +#: 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:5889 +msgid "invalid element selector" +msgstr "selector de elemento inválido" + +#: config/tc-mips.c:5902 +#, c-format +msgid "operand %d must be scalar" +msgstr "operando %d debe ser escalar" + +#: config/tc-mips.c:6082 +msgid "floating-point expression required" +msgstr "requerida expresión de coma flotante" + +#: 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:6329 +msgid "used $at without \".set noat\"" +msgstr "se utilizó $at sin \".set noat\"" + +#: 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:7510 +#, c-format +msgid "wrong size instruction in a %u-bit branch delay slot" +msgstr "tamaño de instrucción incorrecto en una ranura de retardo ramificado a %u-bit" + +#: 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: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: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 rango direccional desborda (0x%lx)" + +#: config/tc-mips.c:7841 +msgid "extended instruction in delay slot" +msgstr "la instrucción extendida en ranura de retardo" + +#: config/tc-mips.c:8305 +msgid "source and destination must be different" +msgstr "origen y destino deben ser diferentes" + +#: config/tc-mips.c:8308 +msgid "a destination register must be supplied" +msgstr "un registro de destino debe ser proporcionado" + +#: 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: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:8679 +#, c-format +msgid "opcode not supported on this processor: %s (%s)" +msgstr "código de operación no admitido en este procesador: %s (%s)" + +#: config/tc-mips.c:8758 +msgid "opcode not supported in the `insn32' mode" +msgstr "código de operación no admitido dentro del modo `insn32' no admitido" + +#: 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 de operación microMIPS" + +#: config/tc-mips.c:8817 +msgid "unrecognized unextended version of MIPS16 opcode" +msgstr "no reconocida versión del código de operación de MIPS16" + +#: config/tc-mips.c:8820 +msgid "unrecognized extended version of MIPS16 opcode" +msgstr "versión extendida de código de operación MIPS16 no reconocida" + +#: config/tc-mips.c:8870 config/tc-mips.c:19064 +msgid "macro instruction expanded into multiple instructions in a branch delay slot" +msgstr "la instrucción macro expandida en instrucciones múltiples en una ranura de retraso de ramificación" + +#: config/tc-mips.c:8873 config/tc-mips.c:19072 +msgid "macro instruction expanded into multiple instructions" +msgstr "la instrucción macro expandida en instrucciones múltiples" + +#: config/tc-mips.c:8877 +msgid "macro instruction expanded into a wrong size instruction in a 16-bit branch delay slot" +msgstr "la 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:8879 +msgid "macro instruction expanded into a wrong size instruction in a 32-bit branch delay slot" +msgstr "la 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:9342 +msgid "operand overflow" +msgstr "desbordamiento de operando" + +#: 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: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:9527 +msgid "number larger than 64 bits" +msgstr "número más largo que 64 bits" + +#: 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: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:10574 +#, c-format +msgid "branch %s is always true" +msgstr "rama %s siempre es verdadero" + +#: config/tc-mips.c:10802 config/tc-mips.c:10910 +msgid "divide by zero" +msgstr "división entre cero" + +#: 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: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:11113 config/tc-riscv.c:2364 +msgid "offset too large" +msgstr "desplazamiento demasiado grande" + +#: 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:11635 config/tc-mips.c:11711 +#, c-format +msgid "opcode not supported in the `insn32' mode `%s'" +msgstr "código de operación no admitido dentro del modo `insn32' «%s»" + +#: 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: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: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:11849 +msgid "non-PIC jump used in PIC library" +msgstr "omisión no-PIC utilizada en biblioteca PIC" + +#: config/tc-mips.c:12830 +#, c-format +msgid "Unable to generate `%s' compliant code without mthc1" +msgstr "" + +#: config/tc-mips.c:13571 +#, c-format +msgid "instruction %s: result is always false" +msgstr "la instrucción %s: resultado es siempre falso" + +#: config/tc-mips.c:13724 +#, c-format +msgid "instruction %s: result is always true" +msgstr "la 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:14013 +#, c-format +msgid "macro %s not implemented yet" +msgstr "macro %s aún no implementada" + +#: 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:14555 +msgid "operand value out of range for instruction" +msgstr "el valor de operando está fuera de rango para la instrucción" + +#: 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:14711 +msgid "unclosed '('" +msgstr "no cerrado '('" + +#: 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:14940 +msgid "-mmicromips cannot be used with -mips16" +msgstr "-mmicromips no se puede usar con -mips16" + +#: config/tc-mips.c:14955 +msgid "-mips16 cannot be used with -micromips" +msgstr "-mips16 no se puede usar con -micromips" + +#: 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:15189 +#, c-format +msgid "invalid abi -mabi=%s" +msgstr "interruptor abi -mabi=%s inválido" + +#: config/tc-mips.c:15229 +#, c-format +msgid "invalid NaN setting -mnan=%s" +msgstr "invalida opciones NaN -mnan=%s" + +#: 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: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: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: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: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:15846 +msgid "PC-relative reference to a different section" +msgstr "Referencia relativa al PC para una sección diferente" + +#: 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: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: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:16024 +msgid "unsupported constant in relocation" +msgstr "constante no admitida en reubicación" + +#: config/tc-mips.c:16097 +#, c-format +msgid "PC-relative access using misaligned symbol (%lx)" +msgstr "" + +#: config/tc-mips.c:16101 +#, c-format +msgid "PC-relative access using misaligned offset (%lx)" +msgstr "" + +#: config/tc-mips.c:16114 config/tc-mips.c:16133 +msgid "PC-relative access out of range" +msgstr "PC-relativo de acceso fuera de rango" + +#: 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:16289 +#, c-format +msgid "alignment too large, %d assumed" +msgstr "alineación demasiado grande, %d asumido" + +#: config/tc-mips.c:16292 +msgid "alignment negative, 0 assumed" +msgstr "alineación negativa, 0 asimido" + +#: config/tc-mips.c:16524 +#, c-format +msgid "%s: no such section" +msgstr "%s: no existe tal sección" + +#: config/tc-mips.c:16580 +#, c-format +msgid ".option pic%d not supported" +msgstr "No se admite .option pic%d" + +#: 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: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:16600 +#, c-format +msgid "unrecognized option \"%s\"" +msgstr "opción no reconocida «%s»" + +#: config/tc-mips.c:16706 +#, c-format +msgid "unknown architecture %s" +msgstr "desconoce arquitectura %s" + +#: 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:16731 +#, c-format +msgid "unknown ISA or architecture %s" +msgstr "desconoce ISA o arquitectura %s" + +#: config/tc-mips.c:16790 +msgid "`noreorder' must be set before `nomacro'" +msgstr "se debe establecer `noreorder' antes de `nomacro'" + +#: config/tc-mips.c:16820 +msgid ".set pop with no .set push" +msgstr ".set pop sin .set push" + +#: 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: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:16918 +msgid ".module is not permitted after generating code" +msgstr ".module no está permitido tras generar código" + +#: 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:16985 +msgid ".cpload not in noreorder section" +msgstr ".cpload no está en la sección noreorder" + +#: 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:17283 config/tc-riscv.c:5027 +#, c-format +msgid "unsupported use of %s" +msgstr "no admitió utilización de %s" + +#: config/tc-mips.c:17374 +msgid "unsupported use of .gpword" +msgstr "no admite utilización de .gpword" + +#: config/tc-mips.c:17412 +msgid "unsupported use of .gpdword" +msgstr "no admite la utilización de .gpdword" + +#: config/tc-mips.c:17444 +msgid "unsupported use of .ehword" +msgstr "no admitió utilización de .ehword" + +#: config/tc-mips.c:17531 +msgid "bad .nan directive" +msgstr "directiva .nan incorrecta" + +#: 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:17595 ecoff.c:3358 +msgid "bad .weakext directive" +msgstr "directiva .weakext incorrecta" + +#: 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 rango dentro de omisión" + +#: config/tc-mips.c:19068 +msgid "extended instruction in a branch delay slot" +msgstr "la instrucción extendida en una rama de ranura de retardo" + +#: 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:19690 config/tc-score.c:5624 +msgid "expected simple number" +msgstr "se esperaba un número simple" + +#: config/tc-mips.c:19718 config/tc-score.c:5651 +msgid "invalid number" +msgstr "número inválido" + +#: 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:19804 +msgid ".end symbol does not match .ent symbol" +msgstr ".end simbólico no coincide con el símbolo .ent" + +#: 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:19884 config/tc-score.c:5683 +msgid "missing .end" +msgstr ".end ausente" + +#: config/tc-mips.c:19967 +msgid ".mask/.fmask outside of .ent" +msgstr ".mask/.fmask fuera de .ent" + +#: config/tc-mips.c:19974 +msgid "bad .mask/.fmask directive" +msgstr "directiva .mask/.fmask incorrecta" + +#: config/tc-mips.c:20278 +#, c-format +msgid "bad value (%s) for %s" +msgstr "valor (%s) incorrecto para %s" + +#: config/tc-mips.c:20342 +#, c-format +msgid "" +"MIPS options:\n" +"-EB\t\t\tgenerate big endian output\n" +"-EL\t\t\tgenerate little endian output\n" +"-g, -g2\t\t\tdo not remove unneeded NOPs or swap branches\n" +"-G NUM\t\t\tallow referencing objects up to NUM bytes\n" +"\t\t\timplicitly with the gp register [default 8]\n" +msgstr "" +"Opciones MIPS:\n" +"-EB\t\t\tgenera salida big endian\n" +"-EL\t\t\tgenera salida little endian\n" +"-g, -g2\t\t\tno borra NOPs innecesarios o intercambia ramificaciones\n" +"-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:20349 +#, c-format +msgid "" +"-mips1\t\t\tgenerate MIPS ISA I instructions\n" +"-mips2\t\t\tgenerate MIPS ISA II instructions\n" +"-mips3\t\t\tgenerate MIPS ISA III instructions\n" +"-mips4\t\t\tgenerate MIPS ISA IV instructions\n" +"-mips5 generate MIPS ISA V instructions\n" +"-mips32 generate MIPS32 ISA instructions\n" +"-mips32r2 generate MIPS32 release 2 ISA instructions\n" +"-mips32r3 generate MIPS32 release 3 ISA instructions\n" +"-mips32r5 generate MIPS32 release 5 ISA instructions\n" +"-mips32r6 generate MIPS32 release 6 ISA instructions\n" +"-mips64 generate MIPS64 ISA instructions\n" +"-mips64r2 generate MIPS64 release 2 ISA instructions\n" +"-mips64r3 generate MIPS64 release 3 ISA instructions\n" +"-mips64r5 generate MIPS64 release 5 ISA instructions\n" +"-mips64r6 generate MIPS64 release 6 ISA instructions\n" +"-march=CPU/-mtune=CPU\tgenerate code/schedule for CPU, where CPU is one of:\n" +msgstr "" +"-mips1\t\t\tgenera instrucciones MIPS ISA I\n" +"-mips2\t\t\tgenera instrucciones MIPS ISA II\n" +"-mips3\t\t\tgenera instrucciones MIPS ISA III\n" +"-mips4\t\t\tgenera instrucciones MIPS ISA IV\n" +"-mips5 genera instrucciones MIPS ISA V\n" +"-mips32 genera instrucciones MIPS32 ISA\n" +"-mips32r2 genera instrucciones MIPS32 versión 2 ISA\n" +"-mips32r3 genera instrucciones MIPS32 versión 3 ISA\n" +"-mips32r5 genera instrucciones MIPS32 versión 5 ISA\n" +"-mips32r6 genera instrucciones MIPS32 versión 6 ISA\n" +"-mips64 genera instrucciones MIPS64 ISA\n" +"-mips64r2 genera instrucciones MIPS64 versión 2 ISA\n" +"-mips64r3 genera instrucciones MIPS64 versión 3 ISA\n" +"-mips64r5 genera instrucciones MIPS64 versión 5 ISA\n" +"-mips64r6 genera instrucciones MIPS64 versión 6 ISA\n" +"\n" +"-march=CPU/-mtune=CPU\tgenera código/calendarización para el CPU, donde CPU es uno de:\n" + +#: config/tc-mips.c:20374 +#, c-format +msgid "" +"-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n" +"-no-mCPU\t\tdon't generate code specific to CPU.\n" +"\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n" +msgstr "" +"-mCPU\t\t\tequivalente a -march=CPU -mtune=CPU. Obsoleto.\n" +"-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:20387 +#, c-format +msgid "" +"-mips16\t\t\tgenerate mips16 instructions\n" +"-no-mips16\t\tdo not generate mips16 instructions\n" +msgstr "" +"-mips16\t\t\tgenera instrucciones mips16\n" +"-no-mips16\t\tno genera instrucciones mips16\n" + +#: 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" +"-mno-micromips\t\tdo not generate microMIPS instructions\n" +msgstr "" +"-mmicromips\t\tgenera instrucciones microMIPS\n" +"-mno-micromips\t\tno genera instrucciones microMIPS\n" + +#: config/tc-mips.c:20396 +#, c-format +msgid "" +"-msmartmips\t\tgenerate smartmips instructions\n" +"-mno-smartmips\t\tdo not generate smartmips instructions\n" +msgstr "" +"-msmartmips\t\tgenera instrucciones smartmips\n" +"-no-smartmips\t\tno genera instrucciones smartmips\n" + +#: config/tc-mips.c:20399 +#, c-format +msgid "" +"-mdsp\t\t\tgenerate DSP instructions\n" +"-mno-dsp\t\tdo not generate DSP instructions\n" +msgstr "" +"-mdsp\t\t\tgenera instrucciones DSP\n" +"-mno-dsp\t\tno genera instrucciones DSP\n" + +#: config/tc-mips.c:20402 +#, c-format +msgid "" +"-mdspr2\t\t\tgenerate DSP R2 instructions\n" +"-mno-dspr2\t\tdo not generate DSP 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:20405 +#, c-format +msgid "" +"-mdspr3\t\t\tgenerate DSP R3 instructions\n" +"-mno-dspr3\t\tdo not generate DSP R3 instructions\n" +msgstr "" +"-mdspr3\t\t\t genera instrucciones DSP R3\n" +"-mno-dspr3\t\t no genera instrucciones DSP R3\n" + +#: config/tc-mips.c:20408 +#, c-format +msgid "" +"-mmt\t\t\tgenerate MT instructions\n" +"-mno-mt\t\t\tdo not generate MT instructions\n" +msgstr "" +"-mmt\t\t\tgenera instrucciones MT\n" +"-mno-mt\t\tno genera instrucciones MT\n" + +#: config/tc-mips.c:20411 +#, c-format +msgid "" +"-mmcu\t\t\tgenerate MCU instructions\n" +"-mno-mcu\t\tdo not generate MCU instructions\n" +msgstr "" +"-mmcu\t\t\tgenera instrucciones MCU\n" +"-mno-mcu\t\tno genera instrucciones MCU\n" + +#: config/tc-mips.c:20414 +#, c-format +msgid "" +"-mmsa\t\t\tgenerate MSA instructions\n" +"-mno-msa\t\tdo not generate MSA instructions\n" +msgstr "" +"-mmsa\t\t\tgenera instrucciones MSA\n" +"-mno-msa\t\tno genera instrucciones MSA\n" + +#: config/tc-mips.c:20417 +#, c-format +msgid "" +"-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n" +"-mno-xpa\t\tdo not generate eXtended Physical Address (XPA) instructions\n" +msgstr "" +"-mdsp\t\t\tgenera eXtended Physical Address instrucciones (XPA)\n" +"-mno-xpa\t\tno genera instrucciones eXtended Physical Address\n" + +#: config/tc-mips.c:20420 +#, c-format +msgid "" +"-mvirt\t\t\tgenerate Virtualization instructions\n" +"-mno-virt\t\tdo not generate Virtualization instructions\n" +msgstr "" +"-mvirt\t\t\tgenera instrucciones Virtualization\n" +"-mno-virt\t\tno genera instrucciones Virtualization\n" + +#: 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" +"-mno-insn32\t\tgenerate all microMIPS instructions\n" +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: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\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 "" +"-mfix-loongson2f-jump\tevita las instrucciones JUMP de Loongson2F\n" +"-mfix-loongson2f-nop\tevita los errores NOP de Loongson2F\n" +"-mfix-vr4120\t\tevita ciertos errores de VR4120\n" +"-mfix-vr4130\t\tevita los errores mflo/mfhi de VR4130\n" +"-mfix-24k\t\tinserta un nop tras las instrucciones ERET y DERET\n" +"-mfix-cn63xxp1\t\tevita los errores PREF de CN53XXP1\n" +"-mgp32\t\t\tusa GPRs de 32-bit, sin importar el ISA escogido\n" +"-mfp32\t\t\tusa FPRS de 32-bit, sin importar el ISA escogido\n" +"-msym32\t\t\tasume que todos los símbolos tiene valores de 32-bit\n" +"-O0\t\t\telimina NOPs innecesarios, no intercambia ramificaciones\n" +"-O\t\t\telimina NOPs innecesarios e intercambia ramificaciones\n" +"--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:20471 +#, c-format +msgid "" +"-mhard-float\t\tallow floating-point instructions\n" +"-msoft-float\t\tdo not allow floating-point instructions\n" +"-msingle-float\t\tonly allow 32-bit floating-point operations\n" +"-mdouble-float\t\tallow 32-bit and 64-bit floating-point operations\n" +"--[no-]construct-floats\t[dis]allow floating point values to be constructed\n" +"--[no-]relax-branch\t[dis]allow out-of-range branches to be relaxed\n" +"-mignore-branch-isa\taccept invalid branches requiring an ISA mode switch\n" +"-mno-ignore-branch-isa\treject invalid branches requiring an ISA mode switch\n" +"-mnan=ENCODING\t\tselect an IEEE 754 NaN encoding convention, either of:\n" +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 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 rango para ser relajadas\n" +"-mignore-branch-isa\t acepta ramas inválidas requeriendo un modo ISA\n" +"-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:20489 +#, c-format +msgid "" +"-KPIC, -call_shared\tgenerate SVR4 position independent code\n" +"-call_nonpic\t\tgenerate non-PIC code that can operate with DSOs\n" +"-mvxworks-pic\t\tgenerate VxWorks position independent code\n" +"-non_shared\t\tdo not generate code that can operate with DSOs\n" +"-xgot\t\t\tassume a 32 bit GOT\n" +"-mpdr, -mno-pdr\t\tenable/disable creation of .pdr sections\n" +"-mshared, -mno-shared disable/enable .cpload optimization for\n" +" position dependent (non shared) code\n" +"-mabi=ABI\t\tcreate ABI conformant object file for:\n" +msgstr "" +"-KPIC, -call_shared\tgenera código SVR4 independiente de posición\n" +"-call_nonpic\t\tgenera código que no es PIC interoperable con DSOs\n" +"-mvxworks-pic\t\tgenera código VxWorks independiente de posición\n" +"-non_shared\t\tno genera código independiente de posición\n" +"-xgot\t\t\tasume un GOT de 32 bit\n" +"-mpdr, -mno-pdr\t\tactiva/desactiva la creación de secciones .pdr\n" +"-mshared, -mno-shared desactiva/activa la optimización .cpload para\n" +" 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: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 "" + +#: 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: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:695 +#, c-format +msgid "" +" -fixed-special-register-names\n" +" Allow only the original special register names.\n" +msgstr "" +" -fixed-special-register-names\n" +" Sólo permite los nombres de registros especiales originales.\n" + +#: 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: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:702 +#, c-format +msgid " -relax Create linker relaxable code.\n" +msgstr " -relax Crea código relajable para el enlazador.\n" + +#: config/tc-mmix.c:704 +#, c-format +msgid "" +" -no-predefined-syms Do not provide mmixal built-in constants.\n" +" Implies -fixed-special-register-names.\n" +msgstr "" +" -no-predefined-syms No provee las constantes internas de mmixal.\n" +" Implica -fixed-special-register-names.\n" + +#: config/tc-mmix.c:707 +#, c-format +msgid "" +" -no-expand Do not expand GETA, branches, PUSHJ or JUMP\n" +" into multiple instructions.\n" +msgstr "" +" -no-expand No expande GETA, ramificaciones, PUSHJ ó JUMP\n" +" a instrucciones múltiples.\n" + +#: 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: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:715 +#, c-format +msgid "" +" -x Do not warn when an operand to GETA, a branch,\n" +" PUSHJ or JUMP is not known to be within range.\n" +" The linker will catch any errors. Implies\n" +" -linker-allocated-gregs." +msgstr "" +" -x No avisa cuando no se sabe que un operando para\n" +" GETA, una ramificación, PUSHJ ó JUMP esté dentro\n" +" del rango. El enlazador atrapará cualquier error.\n" +" Implica -linker-allocated-gregs." + +#: config/tc-mmix.c:841 +#, c-format +msgid "unknown opcode: `%s'" +msgstr "código de operación desconocido: «%s»" + +#: 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: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:1090 +#, c-format +msgid "invalid operand to opcode %s: `%s'" +msgstr "operando inválido para el código de operación %s: «%s»" + +#: 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 de operación %s: «%s»" + +#: 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:2044 +#, c-format +msgid "too many GREG registers allocated (max %d)" +msgstr "se asignaron demasiados registros GREG (máximo %d)" + +#: 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:2113 +msgid "invalid BSPEC expression" +msgstr "expresión BSPEC no válida" + +#: 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: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:2154 +msgid "ESPEC without preceding BSPEC" +msgstr "ESPEC sin un BSPEC precedente" + +#: config/tc-mmix.c:2183 +msgid "missing local expression" +msgstr "falta expresión local" + +#: config/tc-mmix.c:2400 +msgid "operand out of range, instruction expanded" +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: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: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: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:2814 +msgid "no suitable GREG definition for operands" +msgstr "no hay una definición GREG adecuada para los operandos" + +#: 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: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:2919 +#, c-format +msgid "internal: unhandled label %s" +msgstr "interno: etiqueta %s sin manipular" + +#: 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: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:3044 +msgid "invalid characters in input" +msgstr "caracteres inválidos en la entrada" + +#: config/tc-mmix.c:3150 +msgid "empty label field for IS" +msgstr "campo de etiqueta vacío para IS" + +#: 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:3500 +msgid "BSPEC without ESPEC." +msgstr "BSPEC sin un ESPEC." + +#: config/tc-mmix.c:3565 +msgid "LOC to section unknown or indeterminable at first pass" +msgstr "" + +#: 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:3800 +msgid "register section has contents\n" +msgstr "la sección de registros tiene contenido\n" + +#: config/tc-mmix.c:3926 +msgid "section change from within a BSPEC/ESPEC pair is not supported" +msgstr "no se admite el cambio de sección desde dentro de una pareja BSPEC/ESPEC" + +#: 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:3957 +msgid "invalid LOC expression" +msgstr "expresión LOC no válida" + +#: 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:4138 config/tc-mmix.c:4296 config/tc-z80.c:3202 +msgid "unterminated string" +msgstr "cadena sin terminar" + +#: 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:4164 +msgid "BYTE expression not in the range 0..255" +msgstr "BYTE de expresión no interno al rango 0..255" + +#: 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:92 +msgid "`&' serial number operator is not supported" +msgstr "número serial `&' operador no está admitido" + +#: config/tc-mn10200.c:300 +#, c-format +msgid "" +"MN10200 options:\n" +"none yet\n" +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 de operación: «%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 "" +"MN10300 assembler options:\n" +"none yet\n" +msgstr "" +"Opciones de ensamblador para MN10300:\n" +"ninguna aún\n" + +#: config/tc-mn10300.c:1270 +msgid "Invalid opcode/operands" +msgstr "Código operacional/operandos inválidos" + +#: config/tc-mn10300.c:1793 +msgid "Invalid register specification." +msgstr "Especificación de registro no válida." + +#: 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: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: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:318 config/tc-moxie.c:346 +msgid "expecting indirect register `($rA)'" +msgstr "se espera el registro indirecto `($rA)'" + +#: 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:437 config/tc-moxie.c:479 +msgid "expecting indirect register `($rX)'" +msgstr "se espera el registro indirecto `($rX)'" + +#: 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:641 +#, c-format +msgid "" +" -EB assemble for a big endian system (default)\n" +" -EL assemble for a little endian system\n" +msgstr "" +" -EB ensambla para un sistema big endian (por defecto)\n" +" -EL ensambla para un sistema little endian\n" + +#: 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:522 +msgid ".profiler pseudo requires at least two operands." +msgstr "el pseudo .profiler requiere por lo menos dos operandos." + +#: 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:597 +msgid "ambiguous flags combination - '.profiler' directive ignored." +msgstr "combinación de casillas ambigua - se descarta la directiva '.profiler'." + +#: config/tc-msp430.c:607 +msgid "profiling in absolute section?" +msgstr "¿análisis de perfil en la sección absoluta?" + +#: config/tc-msp430.c:1383 +#, c-format +msgid "Unrecognised CPU errata name starting here: %s" +msgstr "" + +#: 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:1399 +msgid "MCU option requires a name\n" +msgstr "Opción MCU requiereun nombre\n" + +#: 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: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" +" -mmcu=<msp430-name> - select microcontroller type\n" +" -mcpu={430|430x|430xv2} - select microcontroller architecture\n" +msgstr "" + +#: config/tc-msp430.c:1777 +#, c-format +msgid "" +" -msilicon-errata=<name>[,<name>...] - enable fixups for silicon errata\n" +" -msilicon-errata-warn=<name>[,<name>...] - warn when a fixup might be needed\n" +" supported errata names: cpu4, cpu8, cpu11, cpu12, cpu13, cpu19\n" +msgstr "" + +#: config/tc-msp430.c:1781 +#, c-format +msgid "" +" -mQ - enable relaxation at assembly time. DANGEROUS!\n" +" -mP - enable polymorph instructions\n" +msgstr "" +" -mQ - permite la relajación en tiempo de ensamblado. ¡PELIGROSO!\n" +" -mP - permite las instrucciones polimórficas\n" + +#: 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: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: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: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:1792 +#, c-format +msgid " -my - warn about missing NOPs after changing interrupts (default)\n" +msgstr "" + +#: 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 "" +" -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:1801 +#, c-format +msgid "" +" -mdata-region={none|lower|upper|either} - select region data will be\n" +" placed in.\n" +msgstr "" + +#: 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: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 rango extendido." + +#: config/tc-msp430.c:2011 +#, c-format +msgid "value %d out of range. Use #lo() or #hi()" +msgstr "valora %d está fuera de rango. Utilice #lo() o #hi()" + +#: config/tc-msp430.c:2057 +msgid "cpu4: not converting PUSH #4 to shorter form" +msgstr "" + +#: config/tc-msp430.c:2074 +msgid "cpu4: not converting PUSH #8 to shorter form" +msgstr "" + +#: 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: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: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:2158 +#, c-format +msgid "unknown operand %s" +msgstr "operando %s desconocido" + +#: 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:2195 config/tc-msp430.c:2310 +#, c-format +msgid "value out of range: 0x%x" +msgstr "valor fuera de rango: 0x%x" + +#: 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: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:2222 +#, c-format +msgid "unknown addressing mode %s" +msgstr "desconoce modo de direccionamiento %s" + +#: config/tc-msp430.c:2230 +#, c-format +msgid "Bad register name %s" +msgstr "Nombre registrado incorrecto %s" + +#: 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:2261 +msgid "')' required" +msgstr "')' requerido" + +#: 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:2280 +msgid "r2 should not be used in indexed addressing mode" +msgstr "no se debe usar r2 en el modo de direccionamiento indexado" + +#: 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: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: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 indexada [%s]" + +#: 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:2413 +msgid "this addressing mode is not applicable for destination operand" +msgstr "este modo direccional no es aplicable para el operando destino" + +#: 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:2483 config/tc-msp430.c:2549 +#, c-format +msgid "index value too big for %s" +msgstr "valor indexado demasiado grande para %s" + +#: 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: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: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:2840 +msgid "no size modifier after period, .w assumed" +msgstr "" + +#: 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:2858 +#, c-format +msgid "junk found after instruction: %s.%s" +msgstr "basura aparecida tras instrucción: %s.%s" + +#: config/tc-msp430.c:2878 +#, c-format +msgid "instruction %s.a does not exist" +msgstr "la instrucción %s.a no existe" + +#: config/tc-msp430.c:2892 +#, c-format +msgid "instruction %s requires %d operand" +msgid_plural "instruction %s requires %d operands" +msgstr[0] "la instrucción %s requiere de %d operando" +msgstr[1] "la instrucción %s requiere de %d operandos" + +#: config/tc-msp430.c:2910 +#, c-format +msgid "instruction %s requires MSP430X mcu" +msgstr "la instrucción %s requiere MSP430X mcu" + +#: config/tc-msp430.c:2930 +#, c-format +msgid "unable to repeat %s insn" +msgstr "incapaz para utilizar %s insn" + +#: config/tc-msp430.c:3002 +msgid "CPU12: CMP/BIT with PC destination ignores next instruction" +msgstr "" + +#: config/tc-msp430.c:3010 +msgid "CPU19: Instruction setting CPUOFF must be followed by a NOP" +msgstr "" + +#: config/tc-msp430.c:3017 +msgid "internal error: unknown nop check state" +msgstr "error interno: estado marcado ‘nop’ desconocido" + +#: 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: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: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: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: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: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: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:3469 +msgid "Too many registers popped" +msgstr "Demasiados registros aparecidos" + +#: config/tc-msp430.c:3479 +msgid "Cannot use POPM to restore the SR register" +msgstr "" + +#: 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: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:3591 +#, c-format +msgid "expected value of first argument of %s to fit into 20-bits" +msgstr "" + +#: 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:3704 +msgid "expected constant value as argument to RPT" +msgstr "esperaba un valor constante como argumento a RPT" + +#: config/tc-msp430.c:3710 +msgid "expected constant in the range 2..16" +msgstr "constante esperada dentro del rango 2..16" + +#: config/tc-msp430.c:3725 +msgid "PC used as an argument to RPT" +msgstr "PC utilizado como argumento a RPT" + +#: config/tc-msp430.c:3731 +msgid "expected constant or register name as argument to RPT insn" +msgstr "" + +#: config/tc-msp430.c:3738 +msgid "Illegal emulated instruction" +msgstr "Instrucción emulada ilegítima" + +#: config/tc-msp430.c:4039 +#, c-format +msgid "%s instruction does not accept a .b suffix" +msgstr "la instrucción %s no acepta un sufijo .b" + +#: 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:4163 +#, c-format +msgid "Wrong displacement %d" +msgstr "Desplazamiento incorrecto %d" + +#: config/tc-msp430.c:4185 +msgid "instruction requires label sans '$'" +msgstr "la instrucción requiere una etiqueta sin '$'" + +#: 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 rango -511:512" + +#: config/tc-msp430.c:4195 config/tc-msp430.c:4249 config/tc-msp430.c:4297 +msgid "instruction requires label" +msgstr "la instrucción requiere etiqueta" + +#: 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:4301 +msgid "Illegal instruction or not implemented opcode." +msgstr "Instrucción ilegal o código de operación sin implementar." + +#: config/tc-msp430.c:4355 +msgid "can't find opcode" +msgstr "no se puede encontrar el código de operación" + +#: 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: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:4954 +#, c-format +msgid "internal inconsistency problem in %s: %lx" +msgstr "problema de inconsistencia interna en %s: %lx" + +#: config/tc-mt.c:151 +#, c-format +msgid "MT specific command line options:\n" +msgstr "Opciones de la línea de mandatos específicas de MT:\n" + +#: config/tc-mt.c:152 +#, c-format +msgid " -march=ms1-64-001 allow ms1-64-001 instructions\n" +msgstr " -march=ms1-64-001 permite instrucciones ms1-64-001\n" + +#: config/tc-mt.c:153 +#, c-format +msgid " -march=ms1-16-002 allow ms1-16-002 instructions (default)\n" +msgstr " -march=ms1-16-002 permite instrucciones ms1-16-002 (por defecto)\n" + +#: config/tc-mt.c:154 +#, c-format +msgid " -march=ms1-16-003 allow ms1-16-003 instructions\n" +msgstr " -march=ms1-16-003 permite instrucciones ms1-16-003\n" + +#: config/tc-mt.c:155 +#, c-format +msgid " -march=ms2 allow ms2 instructions \n" +msgstr " -march=ms2 permite instrucciones ms2 \n" + +#: config/tc-mt.c:156 +#, c-format +msgid " -nosched disable scheduling restrictions\n" +msgstr " -nosched desactiva las restricciones de calendarización\n" + +#: 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: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: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: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: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: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:351 +msgid "md_estimate_size_before_relax\n" +msgstr "md_estimate_size_before_relax\n" + +#: config/tc-nds32.c:2374 +msgid "" +"<arch name>\t Assemble for architecture <arch name>\n" +"\t\t\t <arch name> could be\n" +"\t\t\t v3, v3j, v3m, v3f, v3s, v2, v2j, v2f, v2s" +msgstr "" +"<arch name>\t Ensambla para arquitectura <arqu nombre>\n" +"\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:2378 +msgid "" +"<baseline>\t Assemble for baseline <baseline>\n" +"\t\t\t <baseline> could be v2, v3, v3m" +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:2381 +msgid "" +"<freg>\t Specify a FPU configuration\n" +"\t\t\t <freg>\n" +"\t\t\t 0: 8 SP / 4 DP registers\n" +"\t\t\t 1: 16 SP / 8 DP registers\n" +"\t\t\t 2: 32 SP / 16 DP registers\n" +"\t\t\t 3: 32 SP / 32 DP registers" +msgstr "" +"<freg>\t Específicamente una configuración FPU\n" +"\t\t\t <freg>\n" +"\t\t\t 0: 8 SP / 4 DP registros\n" +"\t\t\t 1: 16 SP / 8 DP registros\n" +"\t\t\t 2: 32 SP / 16 DP registros\n" +"\t\t\t 3: 32 SP / 32 DP registros" + +#: config/tc-nds32.c:2387 +msgid "" +"<abi>\t Specify a abi version\n" +"\t\t\t <abi> could be v1, v2, v2fp, v2fpp" +msgstr "" +"<abi>\t Especificar una versión abi\n" +"\t\t\t <abi> podría ser v1, v2, v2fp, v2fpp" + +#: config/tc-nds32.c:2420 +msgid "Multiply instructions support" +msgstr "Apoya instrucciones múltiples" + +#: config/tc-nds32.c:2421 +msgid "Divide instructions support" +msgstr "Soporta instrucciones dividir" + +#: config/tc-nds32.c:2422 +msgid "16-bit extension" +msgstr "Extensión de 16-bit" + +#: config/tc-nds32.c:2423 +msgid "d0/d1 registers" +msgstr "el registros d0/d1" + +#: config/tc-nds32.c:2424 +msgid "Performance extension" +msgstr "Rendimiento extensión" + +#: config/tc-nds32.c:2425 +msgid "Performance extension 2" +msgstr "Rendimiento extensión" + +#: config/tc-nds32.c:2426 +msgid "String extension" +msgstr "Cadena extendida" + +#: config/tc-nds32.c:2427 +msgid "Reduced Register configuration (GPR16) option" +msgstr "" + +#: config/tc-nds32.c:2428 +msgid "AUDIO ISA extension" +msgstr "Extensión de sonido ISA" + +#: config/tc-nds32.c:2429 +msgid "FPU SP extension" +msgstr "Extensión FPU PS" + +#: config/tc-nds32.c:2430 +msgid "FPU DP extension" +msgstr "FPU como extensión DP" + +#: config/tc-nds32.c:2431 +msgid "FPU fused-multiply-add instructions" +msgstr "FPU fused-multiply-add como instrucciones" + +#: 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" +" NDS32-specific assembler options:\n" +msgstr "" +"\n" +"Opciones ensambladoras específicas de NDS32:\n" + +#: config/tc-nds32.c:2471 +#, c-format +msgid "" +" -O1,\t\t\t Optimize for performance\n" +" -Os\t\t\t Optimize for space\n" +msgstr "" +" -O1,\t\t\t Optimiza para rendimiento\n" +" -Os\t\t\t Optimiza para espacio\n" + +#: config/tc-nds32.c:2474 +#, c-format +msgid "" +" -EL, -mel or -little Produce little endian output\n" +" -EB, -meb or -big Produce big endian output\n" +" -mpic\t\t\t Generate PIC\n" +" -mno-fp-as-gp-relax\t Suppress fp-as-gp relaxation for this file\n" +" -mb2bb-relax\t\t Back-to-back branch optimization\n" +" -mno-all-relax\t Suppress all relaxation for this file\n" +msgstr "" + +#: config/tc-nds32.c:2485 +#, c-format +msgid " -m%s%s\n" +msgstr " -m%s%s\n" + +#: 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:2496 +#, c-format +msgid " -mall-ext\t\t Turn on all extensions and instructions support\n" +msgstr "" + +#: 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:2823 +#, c-format +msgid "need PIC qualifier with symbol. '%s'" +msgstr "requiere PIC cualificador con símbolo. «%s»" + +#: 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:2949 +#, c-format +msgid "needs @GOT or @GOTOFF. %s" +msgstr "requiere @GOT en @GOTOFF. %s" + +#: 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: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: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: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:3614 +#, c-format +msgid "unknown ABI version`%s'\n" +msgstr "desconoce versión «%s» de ABI\n" + +#: config/tc-nds32.c:4339 +#, c-format +msgid "Different arguments of .vec_size are found, previous %d, current %d" +msgstr "" + +#: 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:4348 +msgid "Argument of .vec_size is not a constant." +msgstr "Argumento de .vec_size no es constante." + +#: 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:5299 +#, c-format +msgid "instruction %s requires enabling performance extension" +msgstr "la instrucción %s requiere activando extensión rendimiento" + +#: config/tc-nds32.c:5311 +#, c-format +msgid "instruction %s requires enabling performance extension II" +msgstr "la instrucción %s requiere activar extensión rendimiento II" + +#: config/tc-nds32.c:5323 +#, c-format +msgid "instruction %s requires enabling AUDIO extension" +msgstr "la instrucción %s requiere activar extensión AUDIO" + +#: config/tc-nds32.c:5335 +#, c-format +msgid "instruction %s requires enabling STRING extension" +msgstr "la instrucción %s requiere activación de extensión STRING" + +#: config/tc-nds32.c:5349 +#, c-format +msgid "instruction %s requires enabling DIV & DX_REGS extension" +msgstr "la instrucción %s requiere activar extensiones DIV & DX_REGS" + +#: config/tc-nds32.c:5364 +#, c-format +msgid "instruction %s requires enabling FPU extension" +msgstr "la instrucción %s requiere una extensión FPU" + +#: config/tc-nds32.c:5376 +#, c-format +msgid "instruction %s requires enabling FPU_SP extension" +msgstr "la instrucción %s requiere activar extensión FPU_PS" + +#: config/tc-nds32.c:5388 +#, c-format +msgid "instruction %s requires enabling FPU_DP extension" +msgstr "la instrucción %s requiere activar extensión FPU_DP" + +#: config/tc-nds32.c:5399 config/tc-nds32.c:5407 +#, c-format +msgid "instruction %s requires enabling FPU_MAC extension" +msgstr "la 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 "la instrucción %s requiere activación de extensión DX_REGS" + +#: config/tc-nds32.c:5431 +#, fuzzy, c-format +#| msgid "instruction %s requires enabling FPU extension" +msgid "instruction %s requires enabling dsp extension" +msgstr "la 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 "la 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 "la instrucción relajada irreconocida: línea %d." + +#: 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: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:6099 +#, c-format +msgid "Internal error: Range error. %s" +msgstr "Error interno: rango erróneo. %s" + +#: 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:6409 +#, c-format +msgid "Unrecognized opcode, %s." +msgstr "No reconocido el código de operación: %s." + +#: config/tc-nds32.c:6412 +#, c-format +msgid "Incorrect syntax, %s." +msgstr "Sintaxis incorrecta, %s." + +#: config/tc-nds32.c:6415 +#, c-format +msgid "Unrecognized operand/register, %s." +msgstr "Operando no reconocido %s." + +#: config/tc-nds32.c:6418 +#, c-format +msgid "Operand out of range, %s." +msgstr "Operando fuera de rango, %s." + +#: 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:6424 +#, c-format +msgid "Junk at end of line, %s." +msgstr "Basura al final de la línea, %s." + +#: 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: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:7813 +#, c-format +msgid "Internal error: Unknown fixup type %d (`%s')" +msgstr "Error interno: Tipo desconocido de corrección: %d (`%s')" + +#: 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" + +#: config/tc-ns32k.c:461 +msgid "Invalid syntax in External addressing mode" +msgstr "Sintaxis no válida en el modo de direccionamiento Externo" + +#: config/tc-ns32k.c:542 +msgid "Invalid syntax in Memory Relative addressing mode" +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-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-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-indexado combinado con índice-escalado" + +#: config/tc-ns32k.c:630 +msgid "Invalid or illegal addressing mode combined with scaled-index" +msgstr "Modo de direccionamiento inválido o ilegal combinado con índice-escalado" + +#: config/tc-ns32k.c:753 +msgid "Premature end of suffix -- Defaulting to d" +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 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" +msgstr "Instrucción muy corta para la opción, p.e. no lo puede hacer en un NULLstr" + +#: config/tc-ns32k.c:861 +msgid "No such entry in list. (cpu/mmu register)" +msgstr "No existe esa entrada en la lista. (registros cpu/mmu)" + +#: config/tc-ns32k.c:918 +msgid "Internal consistency error. check ns32k-opcode.h" +msgstr "Error de consistencia interno. revise ns32k-opcode.h" + +#: config/tc-ns32k.c:943 +msgid "Address of immediate operand" +msgstr "Dirección de operando inmediato" + +#: config/tc-ns32k.c:944 +msgid "Invalid immediate write operand." +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 incorrecta, revise en el fichero ns32k-opcode.h" + +#: config/tc-ns32k.c:1108 +msgid "No such opcode" +msgstr "No existe ese código de operación" + +#: config/tc-ns32k.c:1183 +msgid "Bad suffix, defaulting to d" +msgstr "Sufijo incorrecto, se cambia por defecto a d" + +#: 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:1222 +msgid "Wrong numbers of operands in default, check ns32k-opcodes.h" +msgstr "Número incorrecto de operandos por defecto, revise ns32k-opcodes.h" + +#: config/tc-ns32k.c:1225 +msgid "Wrong number of operands" +msgstr "Número incorrecto de operandos" + +#: 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: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:1393 +#, c-format +msgid "value of %ld out of byte displacement range." +msgstr "valor de %ld fuera del rango de desubicación de byte." + +#: config/tc-ns32k.c:1403 +#, c-format +msgid "value of %ld out of word displacement range." +msgstr "valor de %ld fuera del rango de desubicación de word." + +#: config/tc-ns32k.c:1418 +#, c-format +msgid "value of %ld out of double word displacement range." +msgstr "valor de %ld fuera del rango de desubicación de double word." + +#: 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: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:1588 +msgid "Bit field out of range" +msgstr "Campo de bits fuera de rango" + +#: config/tc-ns32k.c:1688 +msgid "iif convert internal pcrel/binary" +msgstr "iif convierte a pcrel/binario interno" + +#: config/tc-ns32k.c:1705 +msgid "Bignum too big for long" +msgstr "Número grande demasiado grande para long" + +#: config/tc-ns32k.c:1782 +msgid "iif convert internal pcrel/pointer" +msgstr "iif convierte a pcrel/puntero interno" + +#: 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:1823 +msgid "Can't relax difference" +msgstr "No se puede relajar la diferencia" + +#: config/tc-ns32k.c:1864 +msgid "Displacement too large for :d" +msgstr "Desubicación demasiado grande para :d" + +#: config/tc-ns32k.c:1877 +msgid "Internal logic error in iif.iifP[].type" +msgstr "Error interno de lógica en iif.iifP[].tipo" + +#: 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: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:2170 +#, c-format +msgid "" +"NS32K options:\n" +"-m32032 | -m32532\tselect variant of NS32K architecture\n" +"--disp-size-default=<1|2|4>\n" +msgstr "" +"Opciones de NS32K:\n" +"-m32032 | -m32532\tselecciona la variante de la arquitectura NS32K\n" +"--disp-size-default=<1|2|4>\n" + +#: 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: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 incorrecto" + +#: 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: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:654 +msgid "Float AC not legal as integer operand" +msgstr "AC de coma flotante no es legal como operando entero" + +#: 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:707 +msgid "No instruction found" +msgstr "No se encontró una instrucción" + +#: 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: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:757 +msgid "operand is not an absolute constant" +msgstr "operando no es una constante absoluta" + +#: config/tc-pdp11.c:765 +msgid "3-bit immediate out of range" +msgstr "inmediato de 3-bit fuera de rango" + +#: config/tc-pdp11.c:772 +msgid "6-bit immediate out of range" +msgstr "inmediato de 6-bit fuera de rango" + +#: config/tc-pdp11.c:779 +msgid "8-bit immediate out of range" +msgstr "inmediato de 8-bit fuera de rango" + +#: config/tc-pdp11.c:796 config/tc-pdp11.c:989 +msgid "Symbol expected" +msgstr "Se esperaba un símbolo" + +#: config/tc-pdp11.c:801 +msgid "8-bit displacement out of range" +msgstr "Desubicación de 8-bit fuera de rango" + +#: 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:994 +msgid "6-bit displacement out of range" +msgstr "6-bit desplazamiento fuera de rango" + +#: 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: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" + +#: config/tc-pj.c:64 config/tc-pj.c:73 +msgid "confusing relocation expressions" +msgstr "expresiones de reubicación confusas" + +#: config/tc-pj.c:157 +msgid "can't have relocation for ipush" +msgstr "no se puede tener una reubicación para ipush" + +#: config/tc-pj.c:289 +msgid "expected expression" +msgstr "se esperaba una expresión" + +#: config/tc-pj.c:355 +#, c-format +msgid "" +"PJ options:\n" +"-little\t\t\tgenerate little endian code\n" +"-big\t\t\tgenerate big endian code\n" +msgstr "" +"Opciones de PJ:\n" +"-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: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: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: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: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:1175 +#, c-format +msgid "%s unsupported" +msgstr "no se admite %s" + +#: 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: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 "" +"-mppc, -mppc32, -m603, -m604\n" +" generate code for PowerPC 603/604\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" +msgstr "" + +#: config/tc-ppc.c:1366 +#, c-format +msgid "" +"-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" +msgstr " -Z generar fichero objeto par tras errores\n" + +#: config/tc-ppc.c:1384 +#, c-format +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 "" +"-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" +msgstr " -mbig-endian genera código big-endian\n" + +#: 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 "-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: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:1576 +#, c-format +msgid "mask trims opcode bits for %s" +msgstr "mascarada recorta bits del código de operación para %s" + +#: 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:1612 +#, c-format +msgid "operand %d overlap in %s" +msgstr "operando %d sobreescribe en %s" + +#: 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:1694 +#, c-format +msgid "powerpc_operands[%d] duplicates powerpc_operands[%d]" +msgstr "powerpc_operands[%d] duplica a powerpc_operands[%d]" + +#: 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 de operación major no está ordenado para %s" + +#: 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:1735 +#, c-format +msgid "%s not disabled by vle flag" +msgstr "%s no desactivada por marca vle" + +#: 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 de operación major no está ordenado para %s" + +#: config/tc-ppc.c:2259 +#, c-format +msgid "symbol+offset@%s means symbol@%s+offset" +msgstr "" + +#: 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: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: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:2432 +#, c-format +msgid "ignoring attempt to re-define symbol `%s'." +msgstr "ignorando intento de redefinir símbolo «%s»." + +#: 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:2458 +msgid "common alignment not a power of 2" +msgstr "la alineamiento común no es una potencia de 2" + +#: 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:2510 +msgid "missing expression in .localentry directive" +msgstr "expresión ausente en directiva localentry" + +#: 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: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: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:2572 +msgid ".abiversion expression does not evaluate to a constant" +msgstr "expresión .abiversion no evalúa a una constante" + +#: 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:2698 +msgid "TOC section size exceeds 64k" +msgstr "TOC como sección excede 64k" + +#: config/tc-ppc.c:3258 +#, c-format +msgid "%s howto doesn't match size/pcrel in gas" +msgstr "" + +#: config/tc-ppc.c:3337 +#, c-format +msgid "unrecognized opcode: `%s'" +msgstr "código de operación no reconocido: «%s»" + +#. lmw, stmw, lswi, lswx, stswi, stswx +#: config/tc-ppc.c:3348 +#, c-format +msgid "`%s' invalid when little-endian" +msgstr "" + +#: 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:3693 +msgid "@tls may only be used in last operand" +msgstr "@tls solo se puede utilizar en el último operando" + +#: 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: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:3989 +#, c-format +msgid "syntax error; found `%c', expected `%c'" +msgstr "error de sintaxis; se encontró `%c', se esperaba `%c'" + +#: config/tc-ppc.c:3994 +#, c-format +msgid "syntax error; end of line, expected `%c'" +msgstr "error de sintaxis; fin de línea, se esperaba `%c'" + +#: 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:4180 +msgid "bad .section directive: want a,e,v,w,x,M,S,G,T in string" +msgstr "directiva .section incorrecta: se quiere en la cadena a,e,v,w,x,M,S,G,T" + +#: config/tc-ppc.c:4330 +msgid "missing size" +msgstr "ausente el tamaño" + +#: config/tc-ppc.c:4339 +msgid "negative size" +msgstr "tamaño negativo" + +#: 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:4423 +msgid "attempt to redefine symbol" +msgstr "se intenta redefinir el símbolo" + +#: 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: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: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: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:5043 config/tc-ppc.c:5303 +msgid "missing symbol name" +msgstr "ausente el nombre del símbolo" + +#: config/tc-ppc.c:5073 +msgid "missing rename string" +msgstr "ausente la cadena para renombrar" + +#: config/tc-ppc.c:5103 config/tc-ppc.c:5705 +msgid "missing value" +msgstr "ausente el valor" + +#: config/tc-ppc.c:5121 +msgid "illegal .stabx expression; zero assumed" +msgstr "expresión .stabx ilegal; se asume cero" + +#: config/tc-ppc.c:5153 +msgid "missing class" +msgstr "ausente la clase" + +#: config/tc-ppc.c:5162 +msgid "missing type" +msgstr "ausente el tipo" + +#: 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:5493 +msgid "nested .bs blocks" +msgstr "bloques .bs anidados" + +#: config/tc-ppc.c:5524 +msgid ".es without preceding .bs" +msgstr ".es sin un .bs precedente" + +#: config/tc-ppc.c:5697 +msgid "non-constant byte count" +msgstr "contador no constante de byte" + +#: config/tc-ppc.c:5772 +msgid ".tc not in .toc section" +msgstr ".tc no está en la sección .toc" + +#: config/tc-ppc.c:5790 +msgid ".tc with no label" +msgstr ".tc sin etiqueta" + +#: 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:5894 config/tc-s390.c:2198 +msgid ".machine stack underflow" +msgstr "desbordamiento por debajo de la pila en .machine" + +#: 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:5981 +msgid "bad symbol suffix" +msgstr "sufijo de símbolo incorrecto" + +#: config/tc-ppc.c:6080 +msgid "unrecognized symbol suffix" +msgstr "símbolo sufijo no reconocido" + +#: config/tc-ppc.c:6168 +msgid ".ef with no preceding .function" +msgstr ".ef sin un .function precedente" + +#: 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: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:7395 +#, c-format +msgid "%s unsupported as instruction fixup" +msgstr "%s no admitido como instrucción corregida" + +#: 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: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 rango 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 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 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: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:734 config/tc-pru.c:741 +msgid "residual low bits in pmem diff relocation" +msgstr "" + +#: 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:943 +#, c-format +msgid "expected expression, got %s" +msgstr "expresión esperada, obtuvo %s" + +#: config/tc-pru.c:976 +#, c-format +msgid "expected constant expression, got %s" +msgstr "expresión constante esperada, obtuvo %s" + +#: 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 "el registro desconocido %s" + +#: config/tc-pru.c:1029 +msgid "data transfer register cannot be halfword" +msgstr "el registro de transferencia de datos no puede ser mitad de palabra" + +#: config/tc-pru.c:1048 +msgid "destination register must be full-word" +msgstr "el registro destino debe ser palabra completa" + +#: 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: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: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: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: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:1263 +#, c-format +msgid "invalid constant table offset %ld" +msgstr "desplazamiento distribuido contante inválido %ld" + +#: config/tc-pru.c:1274 +#, c-format +msgid "invalid WakeOnStatus %ld" +msgstr "invalida WakeOnStatus %ld" + +#: config/tc-pru.c:1285 +#, c-format +msgid "invalid XFR WideBus Address %ld" +msgstr "invalida Dirección XFR WideBus %ld" + +#: 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" +" -mlink-relax generate relocations for linker relaxation (default).\n" +" -mno-link-relax don't generate relocations for linker relaxation.\n" +msgstr "" + +#. Unrecognised instruction - error. +#: config/tc-pru.c:1724 +#, c-format +msgid "unrecognised instruction %s" +msgstr "la 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:237 +#, c-format +msgid "unknown default privileged spec `%s' set by -mpriv-spec or --with-priv-spec" +msgstr "" + +#. Still can not find the privileged spec class. +#: config/tc-riscv.c:259 +#, c-format +msgid "unknown default privileged spec `%d.%d.%d' set by privileged elf attributes" +msgstr "" + +#: 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 de operación RISC-V incorrecto (error de máscara): %s %s" + +#: config/tc-riscv.c:1173 +#, c-format +msgid "invalid CSR `%s', needs rv32i extension" +msgstr "" + +#: config/tc-riscv.c:1175 +#, c-format +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:1202 +#, c-format +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:1488 +#, c-format +msgid "internal: bad RISC-V opcode (mask error): %s %s" +msgstr "interno: código de operación 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 de operación 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 de operación 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: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:2159 config/tc-riscv.c:2237 +msgid "unsupported large constant" +msgstr "no se admite la constante large" + +#: 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: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: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:2923 +#, c-format +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 de operación %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:3469 +#, fuzzy, c-format +#| msgid "Improper CSRxI immediate (%lu)" +msgid "improper CSRxI immediate (%<PRIu64>)" +msgstr "Inmediato CSRxI impropio (%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:3666 +msgid "lui expression not in range 0..1048575" +msgstr "expresión lui no en el rango 0..1048575" + +#: 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:3715 +msgid "bad value for opcode field, value must be 0...2" +msgstr "" + +#: config/tc-riscv.c:3738 +msgid "bad value for funct7 field, value must be 0...127" +msgstr "" + +#: config/tc-riscv.c:3753 +msgid "bad value for funct3 field, value must be 0...7" +msgstr "" + +#: config/tc-riscv.c:3768 +msgid "bad value for funct2 field, value must be 0...3" +msgstr "" + +#: 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:3797 +#, fuzzy, c-format +#| msgid "Improper CSRxI immediate (%lu)" +msgid "Improper rnum immediate (%lu)" +msgstr "Inmediato CSRxI impropio (%lu)" + +#: 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:4142 +#, c-format +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: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 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 "" + +#: config/tc-riscv.c:5414 +#, c-format +msgid "unknown register `%s'" +msgstr "el registro desconocido «%s»" + +#: 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-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 de operación 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: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: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: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: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:368 +#, c-format +msgid " --mrelax Enable link time relaxation\n" +msgstr " -mrelax Activa relajación temporal enlazada\n" + +#: 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:370 +#, c-format +msgid " --mg13 Selects the G13 core.\n" +msgstr " --mg13 Selecciona el core G13.\n" + +#: 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:372 +#, c-format +msgid " --mrl78 Alias for --mg14\n" +msgstr " --mrl78 Alias para --mg14\n" + +#: config/tc-rl78.c:373 +#, c-format +msgid " --m32bit-doubles [default]\n" +msgstr " --m32bit-doubles [predet.]\n" + +#: 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: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: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:683 +#, c-format +msgid "%%hi16/%%lo16 only applies to .short or .hword" +msgstr "" + +#: config/tc-rl78.c:693 +#, c-format +msgid "%%hi8 only applies to .byte" +msgstr "%%hi8 solo aplica a .byte" + +#: config/tc-rl78.c:705 config/tc-rx.c:2249 +msgid "difference of two symbols only supported with .long, .short, or .byte" +msgstr "solo se admite la diferencia de dos símbolos con .long .short o .byte" + +#: 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 incorrecto en %p: fix %ld dir %ld %ld \n" + +#: 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: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: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:194 +#, c-format +msgid "unrecognised RX CPU type %s" +msgstr "no reconocido el tipo de CPU RX %s" + +#: 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:210 +#, c-format +msgid " --mbig-endian-data\n" +msgstr " --mbig-endian-data\n" + +#: config/tc-rx.c:211 +#, c-format +msgid " --mlittle-endian-data [default]\n" +msgstr " --mlittle-endian-data [por defecto]\n" + +#: config/tc-rx.c:212 +#, c-format +msgid " --m32bit-doubles [default]\n" +msgstr " --m32bit-doubles [por defecto]\n" + +#: config/tc-rx.c:213 +#, c-format +msgid " --m64bit-doubles\n" +msgstr " --m64bit-doubles\n" + +#: config/tc-rx.c:214 +#, c-format +msgid " --muse-conventional-section-names\n" +msgstr " --muse-conventional-section-names\n" + +#: 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:216 +#, c-format +msgid " --msmall-data-limit\n" +msgstr " --msmall-data-limit\n" + +#: config/tc-rx.c:217 +#, c-format +msgid " --mrelax\n" +msgstr " --mrelax\n" + +#: config/tc-rx.c:218 +#, c-format +msgid " --mpid\n" +msgstr " --mpid\n" + +#: config/tc-rx.c:219 +#, c-format +msgid " --mint-register=<value>\n" +msgstr " --mint-register=<valor>\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:221 +#, c-format +msgid " --mno-allow-string-insns" +msgstr " --mno-allow-string-insns" + +#: 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: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: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: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:546 +msgid "expecting either ON or OFF after .list" +msgstr "se espera ON u OFF tras .list" + +#: 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: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:1113 +msgid "The .MACRO pseudo-op is not implemented" +msgstr "No se admite el pseudo-operador .MACRO" + +#: 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:2107 +msgid "invalid immediate size" +msgstr "tamaño inmediato inválido" + +#: config/tc-rx.c:2126 +msgid "invalid immediate field position" +msgstr "posición de campo inmediato no válida" + +#: 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:2684 +msgid "Use of an RX string instruction detected in a file being assembled without string instruction support" +msgstr "" + +#: 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 "el 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 rango 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 rango [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:426 +#, c-format +msgid "no such machine extension `%s'" +msgstr "no como extensión de máquina «%s»" + +#: 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:512 config/tc-sparc.c:489 +#, c-format +msgid "invalid architecture -A%s" +msgstr "arquitectura no válida -A%s" + +#: config/tc-s390.c:535 +#, c-format +msgid "" +"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" +msgstr "" +" -V muestra el número de versión del ensamblador\n" +" -Qy, -Qn se descarta\n" + +#: 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." + +#. 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)" + +#. 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:947 +#, c-format +msgid "identifier+constant@%s means identifier@%s+constant" +msgstr "identificador+constante@%s significa identificador@%s+constante" + +#: 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:1110 +msgid "Invalid suffix for literal pool entry" +msgstr "Sufijo inválido para la entrada de conjunto de literales" + +#: config/tc-s390.c:1167 +msgid "Big number is too big" +msgstr "El número grande es demasiado grande" + +#: 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 +#, fuzzy +#| msgid "Wrong displacement %d" +msgid "displacement" +msgstr "Desplazamiento incorrecto %d" + +#: config/tc-s390.c:1337 +#, 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: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: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: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: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: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: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: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: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:1933 +#, c-format +msgid "Opcode %s not available in this mode" +msgstr "El código de operación %s no está disponible en este modo" + +#: 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:1986 +#, c-format +msgid "Unrecognized opcode format: `%s'" +msgstr "No reconocido el formato de código de operación: «%s»" + +#: 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:2020 +msgid "missing comma after insn constant\n" +msgstr "falta coma tras la constante insn\n" + +#: config/tc-s390.c:2259 +msgid ".machinemode stack overflow" +msgstr "desbordamiento superior .machinemode de pila" + +#: config/tc-s390.c:2266 +msgid ".machinemode stack underflow" +msgstr "desbordamiento inferior .machinemode de pila" + +#: 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: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: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:2799 +#, c-format +msgid "Gas failure, reloc type %s\n" +msgstr "Fallo de gas, valor reubicado %s\n" + +#: 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:256 +msgid "div / mul are reserved instructions" +msgstr "div / mul son instrucciones reservadas" + +#: config/tc-score.c:257 +msgid "This architecture doesn't support mmu" +msgstr "Esta arquitectura no admite mmu" + +#: 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:464 +msgid "S+core register expected" +msgstr "se esperaba un registro S+core" + +#: config/tc-score.c:465 +msgid "S+core special-register expected" +msgstr "Se esperaba un registro especial S+core" + +#: config/tc-score.c:466 +msgid "S+core co-processor register expected" +msgstr "Se esperaba un registro de coprocesador S+core" + +#: config/tc-score.c:1069 +msgid "Using temp register (r1)" +msgstr "Utilizando registero (r1) temp" + +#: config/tc-score.c:1088 +#, c-format +msgid "register expected, not '%.100s'" +msgstr "se esperaba un registro, no '%.100s'" + +#: 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: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 rango %u..%u" + +#: 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 rango %d..%d" + +#: 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:2063 +msgid "Using temp register(r1)" +msgstr "Se usa register(r1) temporal" + +#: 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: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: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: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: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: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:2836 +msgid "address offset must be half word alignment" +msgstr "el desplazamiento direccional se debe alinear con half word" + +#: 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: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:3091 +msgid "pre-indexed expression expected" +msgstr "se esperaba una expresión pre-indexada" + +#: 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:3437 +msgid "comma is expected" +msgstr "se esperaba una coma" + +#: 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: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: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 rango [0, 0xffffffff]" + +#: 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 rango [-0x80000000, 0x7fffffff]" + +#: config/tc-score.c:3781 config/tc-score.c:3809 +msgid "imm5 should >= 2" +msgstr "imm5 debe ser >= 2" + +#: config/tc-score.c:3786 config/tc-score.c:3815 +msgid "reg should <= 31" +msgstr "reg debe ser ≤ 31" + +#: config/tc-score.c:3857 config/tc-score.c:3908 +msgid "missing +" +msgstr "ausente +" + +#: 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:3903 +msgid "destination" +msgstr "destino" + +#: config/tc-score.c:3903 +msgid "source" +msgstr "fuente" + +#: 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:4316 +msgid "value not in range [-0xffffffff, 0xffffffff]" +msgstr "el valor no está en el rango [-0xffffffff, 0xffffffff]" + +#: 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: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: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:4951 +msgid "value not in range [0, 0x7fffffff]" +msgstr "el valor no está en el rango [0, 0x7fffffff]" + +#: config/tc-score.c:4956 +msgid "end on line error" +msgstr "error de final de línea" + +#: 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 rango [-16777216, 16777215]" + +#: 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 rango -2^19..2^19-1" + +#: config/tc-score.c:5263 +msgid "lacking label" +msgstr "ausente la etiqueta" + +#: 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 rango [-2^9, 2^9-1]" + +#: 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: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 "la instrucción score3d." + +#: config/tc-score.c:6000 +msgid "Unsupported use of .gpword" +msgstr "No se admite el uso de .gpword" + +#: config/tc-score.c:6096 +#, c-format +msgid "BSS length (%d) < 0 ignored" +msgstr "Longitud BSS (%d) <0 se descarta" + +#: 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:6124 config/tc-sparc.c:4164 +msgid "missing alignment" +msgstr "ausente la alineamiento" + +#: config/tc-score.c:6161 +#, c-format +msgid "alignment too large; %d assumed" +msgstr "alineamiento demasiado grande; se asume %d" + +#: config/tc-score.c:6166 read.c:2619 +msgid "alignment negative; 0 assumed" +msgstr "alineamiento negativo; asumido 0" + +#. Error routine. +#: 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:6609 +msgid "bad call to MD_ATOF()" +msgstr "llamada incorrecta a MD_ATOF()" + +#: 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: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: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: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:7690 +#, c-format +msgid "Sunplus-v2-0-0-20060510\n" +msgstr "Sunplus-v2-0-0-20060510\n" + +#: 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: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: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:7721 +#, c-format +msgid " -FIXDD\t\tfix data dependencies\n" +msgstr " -FIXDD\t\t ajusta datos dependientes\n" + +#: 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: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: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: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: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: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: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: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:7739 +#, c-format +msgid " -KPIC\t\tgenerate PIC\n" +msgstr " -KPIC\t\tgenera PIC\n" + +#: 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: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:7745 +#, c-format +msgid " -V \t\tSunplus release version\n" +msgstr " -V \t\tVersión Sunplus publicada\n" + +#: 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: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:1025 +msgid "illegal double indirection" +msgstr "doble indirección ilegal" + +#: config/tc-sh.c:1034 +msgid "illegal register after @-" +msgstr "el registro ilegal tras @-" + +#: config/tc-sh.c:1050 +msgid "must be @(r0,...)" +msgstr "debe ser @(r0,...)" + +#: config/tc-sh.c:1074 +msgid "syntax error in @(r0,...)" +msgstr "error de sintaxis en @(r0,...)" + +#: config/tc-sh.c:1079 +msgid "syntax error in @(r0...)" +msgstr "error de sintaxis en @(r0...)" + +#: config/tc-sh.c:1124 +msgid "Deprecated syntax." +msgstr "Sintaxis obsoleta." + +#: config/tc-sh.c:1136 config/tc-sh.c:1141 +msgid "syntax error in @(disp,[Rn, gbr, pc])" +msgstr "error de sintaxis en @(disp,[Rn, gbr, pc])" + +#: config/tc-sh.c:1146 +msgid "expecting )" +msgstr "se esperaba )" + +#: config/tc-sh.c:1154 +msgid "illegal register after @" +msgstr "el registro ilegal tras @" + +#: config/tc-sh.c:1780 +#, c-format +msgid "unhandled %d\n" +msgstr "%d sin manipular\n" + +#: config/tc-sh.c:1993 +#, c-format +msgid "Invalid register: 'r%d'" +msgstr "Registro inválido: 'r%d'" + +#: config/tc-sh.c:2106 +#, c-format +msgid "failed for %d\n" +msgstr "falló para %d\n" + +#: config/tc-sh.c:2112 +msgid "misplaced PIC operand" +msgstr "operando PIC mal ubicado" + +#: config/tc-sh.c:2223 config/tc-sh.c:2596 +msgid "invalid operands for opcode" +msgstr "operandos inválidos para el código de operación" + +#: 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:2235 config/tc-sh.c:2246 config/tc-sh.c:2278 +msgid "multiple movx specifications" +msgstr "especificaciones movx múltiples" + +#: 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:2249 config/tc-sh.c:2282 +msgid "invalid movx address register" +msgstr "el registro direccional movx inválido" + +#: 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:2265 config/tc-sh.c:2321 +msgid "invalid movy address register" +msgstr "el registro direccional movy inválido" + +#: 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:2280 +msgid "previous movy requires nopx" +msgstr "el movy previo requiere nopx" + +#: config/tc-sh.c:2288 config/tc-sh.c:2293 +msgid "invalid movx dsp register" +msgstr "el registro dsp movx inválido" + +#: config/tc-sh.c:2303 +msgid "previous movx requires nopy" +msgstr "el movx previo requiere nopy" + +#: config/tc-sh.c:2312 config/tc-sh.c:2317 +msgid "invalid movy dsp register" +msgstr "el registro dsp movy inválido" + +#: 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:2341 config/tc-sh.c:2367 +msgid "multiple parallel processing specifications" +msgstr "especificaciones múltiples de procesamiento paralelo" + +#: config/tc-sh.c:2360 +msgid "multiple condition specifications" +msgstr "especificaciones múltiples de condición" + +#: 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:2414 +msgid "bad combined pmuls output operand" +msgstr "operando de salida pmuls mal combinado" + +#: 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:2433 +msgid "condition not followed by conditionalizable insn" +msgstr "la condición no está seguida por una insn condicionalizable" + +#: 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:2535 +msgid "opcode not valid for this cpu variant" +msgstr "el código de operación no es válido para esta variante de cpu" + +#: 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:2601 +#, c-format +msgid "excess operands: '%s'" +msgstr "exceso de operandos: «%s»" + +#: 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:2684 +msgid "bad .uses format" +msgstr "formato de .uses incorrecto" + +#: 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:2826 +#, c-format +msgid "" +"SH options:\n" +"--little\t\tgenerate little endian code\n" +"--big\t\t\tgenerate big endian code\n" +"--relax\t\t\talter jump instructions for long displacements\n" +"--renesas\t\tdisable optimization with section symbol for\n" +"\t\t\tcompatibility with Renesas assembler.\n" +"--small\t\t\talign sections to 4 byte boundaries, not 16\n" +"--dsp\t\t\tenable sh-dsp insns, and disable floating-point ISAs.\n" +"--allow-reg-prefix\tallow '$' as a register name prefix.\n" +"--isa=[any\t\tuse most appropriate isa\n" +" | dsp same as '-dsp'\n" +" | fp" +msgstr "" +"Opciones de SH:\n" +"--little\t\t\tgenera código little endian\n" +"--big\t\t\tgenera código big endian\n" +"--relax\t\t\taltera las instrucciones de salto para\n" +"\t\t\tdesubicaciones long\n" +"--renesas\t\tdesactiva la optimización con símbolos de\n" +"\t\t\tsección por compatibilidad con el ensamblador Renesas.\n" +"--small\t\t\talinea las secciones a límites de 4 bytes, no 16\n" +"--dsp\t\t\tactiva insns sh-dsp, y desactiva ISAs de coma flotante.\n" +"--isa=[any\t\tusa la isa más apropiada\n" +" | dsp igual que '-dsp'\n" +" | fp" + +#: 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: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: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: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:3039 +msgid "displacement overflows 12-bit field" +msgstr "la desubicación desborda el campo de 12-bit" + +#: 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: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:3119 +msgid "displacement overflows 8-bit field" +msgstr "la desubicación desborda el campo de 8-bit" + +#: 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: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: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: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:3557 +msgid "offset to unaligned destination" +msgstr "desplazamiento a destino desalineado" + +#: config/tc-sh.c:3562 +msgid "negative offset" +msgstr "desplazamiento negativo" + +#: config/tc-sh.c:3702 +msgid "misaligned offset" +msgstr "desplazamiento desalineado" + +#: config/tc-sparc.c:314 config/tc-sparc.c:495 +msgid "Bad opcode table, broken assembler." +msgstr "Tabla de códigos operacionales incorrecta, ensamblador descompuesto." + +#: config/tc-sparc.c:487 +#, c-format +msgid "invalid architecture -xarch=%s" +msgstr "arquitectura -xarch=%s no válida" + +#: 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:645 +#, c-format +msgid "SPARC options:\n" +msgstr "Opciones SPARC:\n" + +#: config/tc-sparc.c:674 +#, c-format +msgid "" +"\n" +"\t\t\tspecify variant of SPARC architecture\n" +"-bump\t\t\twarn when assembler switches architectures\n" +"-sparc\t\t\tignored\n" +"--enforce-aligned-data\tforce .long, etc., to be aligned correctly\n" +"-relax\t\t\trelax jumps and branches (default)\n" +"-no-relax\t\tavoid changing any jumps and branches\n" +msgstr "" +"\n" +"\t\t\tespecifica la variante de la arquitectura SPARC\n" +"-bump\t\t\tavisa cuando el ensamblador cambia entre arquitecturas\n" +"-sparc\t\t\tse descarta\n" +"--enforce-aligned-data\tfuerza .long, etc., a ser alineados correctamente\n" +"-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:681 +#, c-format +msgid "" +"-32\t\t\tcreate 32 bit object file\n" +"-64\t\t\tcreate 64 bit object file\n" +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:684 +#, c-format +msgid "\t\t\t[default is %d]\n" +msgstr "\t\t\t[por defecto es %d]\n" + +#: config/tc-sparc.c:686 +#, c-format +msgid "" +"-TSO\t\t\tuse Total Store Ordering\n" +"-PSO\t\t\tuse Partial Store Ordering\n" +"-RMO\t\t\tuse Relaxed Memory Ordering\n" +msgstr "" +"-TSO\t\t\tusa el Ordenamiento de Almacenamiento Total\n" +"-PSO\t\t\tusa el Ordenamiento de Almacenamiento Parcial\n" +"-RMO\t\t\tusa el Ordenamiento de Memoria Relajado\n" + +#: 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:692 +#, c-format +msgid "" +"-KPIC\t\t\tgenerate PIC\n" +"-V\t\t\tprint assembler version number\n" +"-undeclared-regs\tignore application global register usage without\n" +"\t\t\tappropriate .register directive (default)\n" +"-no-undeclared-regs\tforce error on application global register usage\n" +"\t\t\twithout appropriate .register directive\n" +"--dcti-couples-detect\twarn when an unpredictable DCTI couple is found\n" +"-q\t\t\tignored\n" +"-Qy, -Qn\t\tignored\n" +"-s\t\t\tignored\n" +msgstr "" +"-KPIC\t\t\t genera PIC\n" +"-V\t\t\t escribe el número de versión del ensamblador\n" +"-undeclared-regs\t descarta el uso del registro global de aplicaciones sin\n" +"\t\t\t directiva .register apropiada (por defecto)\n" +"-no-undeclared-regs\t fuerza un error en el uso del registro global de\n" +"\t\t\t aplicaciones sin una directiva .register apropiada\n" +"-q\t\t\t se descarta\n" +"-Qy, -Qn\t\t se descarta\n" +"-s\t\t\t se descarta\n" + +#: config/tc-sparc.c:704 +#, c-format +msgid "" +"-EL\t\t\tgenerate code for a little endian machine\n" +"-EB\t\t\tgenerate code for a big endian machine\n" +"--little-endian-data\tgenerate code for a machine having big endian\n" +" instructions and little endian data.\n" +msgstr "" +"-EL\t\t\tgenera código para una máquina little endian\n" +"-EB\t\t\tgenera código para una máquina big endian\n" +"--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:968 +#, c-format +msgid "Internal error: losing opcode: `%s' \"%s\"\n" +msgstr "Error interno: se pierde el código de operación: «%s» «%s»\n" + +#: 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 de operación «%s» para «%s»\n" + +#: 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:1249 +msgid "set: number not in 0..4294967295 range" +msgstr "conjunto: el número no está en el rango 0..4294967295" + +#: config/tc-sparc.c:1256 +msgid "set: number not in -2147483648..4294967295 range" +msgstr "conjunto: el número no está en el rango -2147483648..4294967295" + +#: config/tc-sparc.c:1315 +msgid "setsw: number not in -2147483648..4294967295 range" +msgstr "conjunto sw: el número no está en el rango -2147483648..4294967295" + +#: 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:1434 +msgid "setx: illegal temporary register g0" +msgstr "setx: registro temporal ilegal g0" + +#: config/tc-sparc.c:1542 +msgid "unpredictable DCTI couple" +msgstr "pareja DCTI impredecible" + +#: config/tc-sparc.c:1552 +msgid "FP branch in delay slot" +msgstr "FP ramificado en ranura retrasada" + +#: 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:1609 +msgid "failed special case insn sanity check" +msgstr "la inspección sanitaria de la insn case especial ha fallado" + +#: config/tc-sparc.c:1797 +msgid ": invalid membar mask name" +msgstr ": nombre inválido de máscara membar" + +#: config/tc-sparc.c:1813 +msgid ": invalid membar mask expression" +msgstr ": expresión no válida de máscara membar" + +#: config/tc-sparc.c:1818 +msgid ": invalid membar mask number" +msgstr ": número inválido de máscara membar" + +#: config/tc-sparc.c:1833 +msgid ": invalid siam mode expression" +msgstr ": modo expresiva siam no válida" + +#: config/tc-sparc.c:1838 +msgid ": invalid siam mode number" +msgstr ": modo numérico siam inválido" + +#: config/tc-sparc.c:1854 +msgid ": invalid prefetch function name" +msgstr ": nombre de función de precargado inválido" + +#: 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:1867 +msgid ": invalid prefetch function number" +msgstr ": número de función de precargado inválido" + +#: 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:1932 config/tc-sparc.c:1938 config/tc-sparc.c:1947 +msgid ": unrecognizable hyperprivileged register" +msgstr ": registro hiperprivilegiado no reconocido" + +#: 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: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:2027 +#, c-format +msgid ": expecting %asrN" +msgstr ": suponiendo %asrN" + +#: 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:2078 +msgid ": expecting crypto immediate" +msgstr ": suponiendo criptograma inmediato" + +#: 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: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:2257 +#, c-format +msgid "Illegal operands: %%%s can be only used with call __tls_get_addr" +msgstr "Operandos ilegales: %%%s solo se pueden usar con la llamada __tls_get_addr" + +#: 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:2566 +msgid ": There are only 64 f registers; [0-63]" +msgstr ": Solamente hay 64 registros f; [0-63]" + +#: 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: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: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:2751 +#, c-format +msgid "Expression inside %%%s could not be parsed" +msgstr "Expresión interna %%%s no pudo ser interpretado" + +#: 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: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: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:2904 +msgid ": PC-relative operand can't be a constant" +msgstr ": operando relativo a PC no puede ser una constante" + +#: 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:2939 +msgid ": Immediate value in cbcond is out of range." +msgstr ": Valor inmediato dentro de ‘cbcond’ está fuera de rango." + +#: config/tc-sparc.c:2965 +msgid ": invalid ASI name" +msgstr ": nombre ASI inválido" + +#: config/tc-sparc.c:2974 +msgid ": invalid ASI expression" +msgstr ": expresión ASI no válida" + +#: config/tc-sparc.c:2979 +msgid ": invalid ASI number" +msgstr ": número ASI inválido" + +#: config/tc-sparc.c:3084 +msgid ": non-immdiate imm2 operand" +msgstr ": operando imm2 no inmediato" + +#: config/tc-sparc.c:3089 +msgid ": imm2 immediate operand out of range (0-3)" +msgstr ": operando inmediato imm2 fuera de rango (0-3)" + +#: config/tc-sparc.c:3108 +msgid "OPF immediate operand out of range (0-0x1ff)" +msgstr "Operando inmediato OPF fuera de rango (0-0x1ff)" + +#: config/tc-sparc.c:3113 +msgid "non-immediate OPF operand, ignored" +msgstr "operando OPF que no es inmediato, se descarta" + +#: config/tc-sparc.c:3132 +msgid ": invalid cpreg name" +msgstr ": nombre cpreg inválido" + +#: config/tc-sparc.c:3161 +#, c-format +msgid "Illegal operands%s" +msgstr "Operandos ilegales%s" + +#: 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:3251 +#, c-format +msgid "Architecture mismatch on \"%s %s\"." +msgstr "Arquitectura incoherente en \"%s %s\"." + +#: 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: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: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:3811 +#, c-format +msgid "bad or unhandled relocation type: 0x%02x" +msgstr "tipo reubicado incorrecta o sin manipular: 0x%02x" + +#: config/tc-sparc.c:4126 +msgid "Expected comma after name" +msgstr "Se esperaba una coma tras nombre" + +#: config/tc-sparc.c:4135 +#, c-format +msgid "BSS length (%d.) <0! Ignored." +msgstr "¡Longitud BSS (%d.) <0! Se descarta." + +#: config/tc-sparc.c:4147 +msgid "bad .reserve segment -- expected BSS segment" +msgstr "segmento .reserve incorrecto -- se esperaba el segmento BSS" + +#: config/tc-sparc.c:4173 config/tc-sparc.c:4300 +msgid "negative alignment" +msgstr "alineamiento negativa" + +#: 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: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: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:4262 +#, c-format +msgid ".COMMon length (%lu) out of range ignored" +msgstr "longitud .COMMún (%lu) fuera de rango descartado" + +#: 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:4433 +msgid "Unknown segment type" +msgstr "Tipo de segmento desconocido" + +#: 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:4529 +msgid "redefinition of global register" +msgstr "redefinición del registro global" + +#: 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: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: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:4789 config/tc-vax.c:3271 +#, c-format +msgid "Illegal operands: Only %%r_%s%d allowed in %d-byte data fields" +msgstr "Operandos ilegales: solo se permite %%r_%s%d en campos de datos de %d-bytes" + +#: 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: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:66 +msgid "sparc convert_frag\n" +msgstr "convert_frag de sparc\n" + +#: 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:172 +msgid "" +"SPU options:\n" +" --apuasm\t\t emulate behaviour of apuasm\n" +msgstr "" +"Opciones de SPU:\n" +" --apuasm\t\t emula el comportamiento de apuasm\n" + +#: config/tc-spu.c:278 +#, c-format +msgid "Invalid mnemonic '%s'" +msgstr "Mnemónico inválido «%s»" + +#: config/tc-spu.c:284 +#, c-format +msgid "'%s' is only available in DD2.0 or higher." +msgstr "«%s» solo es disponible en DD2.0 o superior." + +#: 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:327 +msgid "Mixing register syntax, with and without '$'." +msgstr "Se mezcla la sintaxis del registro, con y sin '$'." + +#: config/tc-spu.c:333 +#, c-format +msgid "Treating '%-*s' as a symbol." +msgstr "Tratando '%-*s' como un símbolo." + +#: config/tc-spu.c:552 +msgid "'SPU_RdEventMask' (channel 11) is only available in DD2.0 or higher." +msgstr "'SPU_RdEventMask' (canal 11) solo es disponible en DD2.0 o superior." + +#: config/tc-spu.c:554 +msgid "'MFC_RdTagMask' (channel 12) is only available in DD2.0 or higher." +msgstr "'MFC_RdTagMask' (canal 12) solo es disponible en DD2.0 o superior." + +#: 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: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:674 config/tc-spu.c:677 +#, c-format +msgid "Constant expression %d out of range, [%d, %d]." +msgstr "Expresión constante %d fuera de rango, [%d, %d]." + +#: config/tc-spu.c:779 +#, c-format +msgid "invalid priority '%lu'" +msgstr "prioridad no válida '%lu'" + +#: config/tc-spu.c:785 +#, c-format +msgid "invalid lrlive '%lu'" +msgstr "invalida ‘lrlive’ '%lu'" + +#: config/tc-spu.c:859 +msgid "Relaxation should never occur" +msgstr "La relajación nunca debe ocurrir" + +#: 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)" + +#: config/tc-spu.h:85 +msgid "spu convert_frag\n" +msgstr "convert_frag de spu\n" + +#: config/tc-tic30.c:36 +msgid "first" +msgstr "primero" + +#: config/tc-tic30.c:36 +msgid "second" +msgstr "segundo" + +#: config/tc-tic30.c:36 +msgid "third" +msgstr "tercero" + +#: config/tc-tic30.c:36 +msgid "fourth" +msgstr "cuarto" + +#: config/tc-tic30.c:36 +msgid "fifth" +msgstr "quinto" + +#: 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:466 +msgid "Illegal AR register in indirect reference" +msgstr "Registro AR ilegal en la referencia indirecta" + +#: 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:496 +msgid "Invalid displacement in indirect reference" +msgstr "Desplazamiento inválido en la referencia indirecta" + +#: 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: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:538 +msgid "illegal indirect reference" +msgstr "referencia indirecta ilegal" + +#: 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: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: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: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: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: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: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: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: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:871 +#, c-format +msgid "%s instruction, operand %d doesn't match" +msgstr "la instrucción %s, operando %d no coincide" + +#. Shouldn't get here. +#: 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:909 +msgid "destination for multiply can only be R0 or R1" +msgstr "el destino para multiply solo puede ser R0 o R1" + +#: config/tc-tic30.c:916 +msgid "destination for add/subtract can only be R2 or R3" +msgstr "el destino para add/substract solo puede ser R2 o R3" + +#: 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:1425 +#, c-format +msgid "Invalid character %s in opcode" +msgstr "Carácter inválido %s en el código de operación" + +#: config/tc-tic30.c:1455 +#, c-format +msgid "Unknown TMS320C30 instruction: %s" +msgstr "Instrucción TMS320C30 desconocida: %s" + +#: config/tc-tic30.c:1575 +msgid "Incorrect number of operands given" +msgstr "Número incorrecto de operandos dados" + +#: 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: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: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: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:1771 +msgid "only lower 16-bits of first operand are used" +msgstr "solo se usan los 16 bits inferiores del primer operando" + +#: 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: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: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:1882 +msgid "interrupt vector for trap instruction out of range" +msgstr "el vector de interrupción para la instrucción trap está fuera de rango" + +#: 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: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:390 +msgid "Nan, using zero." +msgstr "Nan, se usa cero." + +#: 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:591 config/tc-tic4x.c:601 +msgid "Invalid floating point number" +msgstr "Número de coma flotante inválido" + +#: config/tc-tic4x.c:722 +msgid "Comma expected\n" +msgstr "Se esperaba una coma\n" + +#: 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:764 +#, c-format +msgid ".bss size %ld < 0!" +msgstr "¡Tamaño de .bss %ld < 0!" + +#: 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:928 +msgid "Symbol missing\n" +msgstr "Ausente símbolo\n" + +#. Skip null symbol terminator. +#: config/tc-tic4x.c:976 +msgid ".sect: subsection name ignored" +msgstr ".sect: se ignora el nombre de la subsección" + +#: 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:1036 +msgid ".set syntax invalid\n" +msgstr "sintaxis de .set no válida\n" + +#: 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: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: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:1416 +msgid "Auxiliary register AR0--AR7 required for indirect" +msgstr "Se requiere un registro auxiliar AR0--AR7 para el indirecto" + +#: config/tc-tic4x.c:1430 +#, c-format +msgid "Bad displacement %d (require 0--255)\n" +msgstr "Desplazamiento %d incorrecto (se requiere 0--255)\n" + +#: 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:1516 +msgid "Expecting a register name" +msgstr "Se espera un nombre de registro" + +#: 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:1541 config/tc-tic4x.c:1564 +msgid "Expecting a constant value" +msgstr "Se espera un valor constante" + +#: config/tc-tic4x.c:1572 +#, c-format +msgid "Bad direct addressing construct %s" +msgstr "Construcción de direccionamiento directo %s incorrecta" + +#: 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:1600 +msgid "Unknown indirect addressing mode" +msgstr "Desconoce modo de direccionamiento indirecto %s" + +#: 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:1737 +msgid "Destination register must be ARn" +msgstr "El registro destino debe ser ARn" + +#: 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:1785 config/tc-tic4x.c:1990 +msgid "Invalid indirect addressing mode" +msgstr "Modo de direccionamiento indirecto inválido" + +#: 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: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: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:1961 +msgid "Destination register must be R2 or R3" +msgstr "El registro destino debe ser R2 o R3" + +#: 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: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: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:2087 +#, c-format +msgid "Signed immediate value %ld too large" +msgstr "El valor inmediato con signo %ld es demasiado grande" + +#: 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:2218 +#, c-format +msgid "Immediate value %ld too large" +msgstr "El valor inmediato de %ld es demasiado grande" + +#: 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:2251 +msgid "Register must be address register" +msgstr "El registro debe ser un registro direccional" + +#: 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: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:2380 +msgid "Too many operands scanned" +msgstr "Se analizaron demasiados operandos" + +#: config/tc-tic4x.c:2411 +msgid "Parallel opcode cannot contain more than two instructions" +msgstr "El código de operación paralelo no puede contener más de dos instrucciones" + +#: config/tc-tic4x.c:2485 +#, c-format +msgid "Invalid operands for %s" +msgstr "Operandos inválidos para %s" + +#: config/tc-tic4x.c:2488 +#, c-format +msgid "Invalid instruction %s" +msgstr "Instrucción %s no válida" + +#: config/tc-tic4x.c:2640 +#, c-format +msgid "Bad relocation type: 0x%02x" +msgstr "Tipo de reubicación incorrecto: 0x%02x" + +#: 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:2706 +msgid "Option -b is depreciated, please use -mbig" +msgstr "La opción -b es obsoleta, por favor utilice -mbig" + +#: 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:2720 +msgid "Option -r is depreciated, please use -mregparm" +msgstr "La opción -r es obsoleta, por favor utilice -mregparm" + +#: 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:2756 +#, c-format +msgid "" +"\n" +"TIC4X options:\n" +" -mcpu=CPU -mCPU select architecture variant. CPU can be:\n" +" 30 - TMS320C30\n" +" 31 - TMS320C31, TMS320LC31\n" +" 32 - TMS320C32\n" +" 33 - TMS320VC33\n" +" 40 - TMS320C40\n" +" 44 - TMS320C44\n" +" -mrev=REV set cpu hardware revision (integer numbers).\n" +" Combinations of -mcpu and -mrev will enable/disable\n" +" the appropriate options (-midle2, -mlowpower and\n" +" -menhanced) according to the selected type\n" +" -mbig select big memory model\n" +" -msmall select small memory model (default)\n" +" -mregparm select register parameters (default)\n" +" -mmemparm select memory parameters\n" +" -midle2 enable IDLE2 support\n" +" -mlowpower enable LOPOWER and MAXSPEED support\n" +" -menhanced enable enhanced opcode support\n" +msgstr "" +"\n" +"Opciones de TIC4X:\n" +" -mcpu=CPU -mCPU selecciona variante de arquitectura. CPU puede ser:\n" +" 30 - TMS320C30\n" +" 31 - TMS320C31, TMS320LC31\n" +" 32 - TMS320C32\n" +" 33 - TMS320VC33\n" +" 40 - TMS320C40\n" +" 44 - TMS320C44\n" +" -mrev=REV define la revisión de hardware de cpu (num enteros).\n" +" Las combinaciones de -mcpu y -mrev will activarán\n" +" o desctivarán las casillas apropiadas (-midle2,\n" +" -mlowpower y -menhanced) de acuerdo al tipo escogido\n" +" -mbig selecciona el modelo de memoria big\n" +" -msmall selecciona el modelo de memoria small (por defecto)\n" +" -mregparm selecciona parámetros de registro (por defecto)\n" +" -mmemparm selecciona parámetros de memoria\n" +" -midle2 activa el soporte para IDLE2\n" +" -mlowpower activa el soporte para LOPOWER y MAXSPEED\n" +" -menhanced activa el soporte para códigos operacionales mejorados\n" + +#: config/tc-tic4x.c:2801 +#, c-format +msgid "Label \"$%d\" redefined" +msgstr "Etiqueta «$%d» redefinida" + +#: 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:242 +msgid "pseudo-op illegal within .struct/.union" +msgstr "pseudo-operación ilegal dentro de .struct/.union" + +#: 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:257 +#, c-format +msgid "-mfar-mode | -mf Use extended addressing\n" +msgstr "-mfar-mode | -mf Utiliza direccionamiento extendido\n" + +#: 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:259 +#, c-format +msgid "-merrors-to-file <filename>\n" +msgstr "-merrors-to-file <nombre fichero>\n" + +#: 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: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: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:423 +msgid "Unterminated string after absolute expression" +msgstr "Cadena sin terminar tras una expresión absoluta" + +#: 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: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:507 +#, c-format +msgid ".bss size %d < 0!" +msgstr "¡Tamaño de .bss %d < 0!" + +#: config/tc-tic54x.c:693 +msgid "Offset on nested structures is ignored" +msgstr "Se descarta el desplazamiento en estructuras anidadas" + +#: config/tc-tic54x.c:743 +#, c-format +msgid ".end%s without preceding .%s" +msgstr ".end%s sin un .%s precedente" + +#: 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:811 +msgid ".tag requires a structure tag" +msgstr ".tag requiere una estructura tag" + +#: config/tc-tic54x.c:817 +msgid "Label required for .tag" +msgstr "Se requiere una etiqueta para .tag" + +#: config/tc-tic54x.c:836 +#, c-format +msgid ".tag target '%s' undefined" +msgstr "el objetivo .tag «%s» no está definido" + +#: 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 rango (1 ≤ X ≤ 32)" + +#: config/tc-tic54x.c:928 +#, c-format +msgid "Unrecognized field type '%c'" +msgstr "No reconocido el tipo de campo '%c'" + +#: 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: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:1065 +msgid "Relocatable values require at least WORD storage" +msgstr "Los valores reubicables requieren por lo menos almacenamiento WORD" + +#: 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: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: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:1423 +msgid "Missing size argument" +msgstr "Ausente el tamaño del argumento" + +#: 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:1561 +#, c-format +msgid "Unrecognized version '%s'" +msgstr "Versión no reconocida «%s»" + +#: 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:1698 +msgid "p2align not supported on this target" +msgstr "No se admite p2align en este destino" + +#: config/tc-tic54x.c:1710 +msgid "Argument to .even ignored" +msgstr "Se descarta el argumento para .even" + +#: 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: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:1784 +msgid "field value truncated" +msgstr "se trunca valor del campo" + +#: 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:1899 +msgid "Current section is uninitialized, section name required for .clink" +msgstr "La sección actual está no inicializada, se requirió el nombre de sección para .clink" + +#: config/tc-tic54x.c:2087 +msgid "ENDLOOP without corresponding LOOP" +msgstr "ENDLOOP sin un LOOP correspondiente" + +#: 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: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:2182 +msgid ".sblock may be used for initialized sections only" +msgstr ".sblock se puede utilizar únicamente para secciones inicializadas" + +#: config/tc-tic54x.c:2212 +msgid "Symbol missing for .set/.equ" +msgstr "Ausente el símbolo para .set/.equ" + +#: 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: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: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: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:2491 +#, c-format +msgid "Bad COFF version '%s'" +msgstr "Versión COFF incorrecta «%s»" + +#: config/tc-tic54x.c:2500 +#, c-format +msgid "Bad CPU version '%s'" +msgstr "Versión CPU incorrecta '%s'" + +#: 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: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:3121 +#, c-format +msgid "Unbalanced parenthesis in operand %d" +msgstr "Paréntesis sin balancear en operando %d" + +#: config/tc-tic54x.c:3152 config/tc-tic54x.c:3160 +msgid "Expecting operand after ','" +msgstr "Se esperaba un operando tras ','" + +#: config/tc-tic54x.c:3171 +msgid "Extra junk on line" +msgstr "Basura extra en la línea" + +#: config/tc-tic54x.c:3208 +msgid "Badly formed address expression" +msgstr "Expresión direccional mal formada" + +#: config/tc-tic54x.c:3461 +#, c-format +msgid "Invalid dmad syntax '%s'" +msgstr "Sintaxis de ‘dmad’ no válida «%s»" + +#: 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:3576 +msgid "Address mode *+ARx is write-only. Results of reading are undefined." +msgstr "El modo direccional *+ARx es de solo escritura. El resultado de la lectura está indefinido." + +#: 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:3634 +#, c-format +msgid "Operand '%s' out of range (%d <= x <= %d)" +msgstr "Operando «%s» está fuera de rango (%d ≤ x ≤ %d)" + +#: config/tc-tic54x.c:3654 +msgid "Error in relocation handling" +msgstr "Error en el manejo de la reubicación" + +#: 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: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: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:3705 +msgid "Only one comparison conditional allowed" +msgstr "Sólo se permite una comparación condicional" + +#: config/tc-tic54x.c:3710 +msgid "Only one overflow conditional allowed" +msgstr "Sólo se permite un desbordamiento condicional" + +#: config/tc-tic54x.c:3718 +#, c-format +msgid "Duplicate %s conditional" +msgstr "Condicional %s duplicado" + +#: config/tc-tic54x.c:3749 +msgid "Invalid auxiliary register (use AR0-AR7)" +msgstr "Registro auxiliar inválido (utilice AR0-AR7)" + +#: 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: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: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:3863 +#, c-format +msgid "Memory mapped register \"%s\" out of range" +msgstr "El registro mapeado en memoria «%s» está fuera de rango" + +#: 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: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:3938 +#, c-format +msgid "Unrecognized status bit \"%s\"" +msgstr "No reconocido el bit estatal «%s»" + +#: config/tc-tic54x.c:3961 +#, c-format +msgid "Invalid status register \"%s\"" +msgstr "Invalida registro de posición «%s»" + +#: config/tc-tic54x.c:3973 +#, c-format +msgid "Operand \"%s\" out of range (use 1 or 2)" +msgstr "Operando «%s» está fuera de rango (utilice 1 ó 2)" + +#: config/tc-tic54x.c:4176 +#, c-format +msgid "Unrecognized instruction \"%s\"" +msgstr "No reconocida la instrucción «%s»" + +#: 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:4234 +#, c-format +msgid "Unrecognized parallel instruction \"%s\"" +msgstr "No reconocida la instrucción paralela «%s»" + +#: 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: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: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:4554 +msgid "Unrecognized substitution symbol function" +msgstr "No reconocida la función simbólica de sustitución" + +#: 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:4572 +msgid "Expecting second argument" +msgstr "Se esperaba un segundo argumento" + +#: 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:4616 +msgid "Function expects two arguments" +msgstr "La función espera dos argumentos" + +#: config/tc-tic54x.c:4629 +msgid "Expecting character constant argument" +msgstr "Se espera una constante de carácter como argumento" + +#: 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:4687 +#, c-format +msgid "Invalid subscript (use 1 to %d)" +msgstr "Subíndice inválido (utilice de 1 a %d)" + +#: 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:4707 +msgid "Missing ')' in subscripted substitution symbol expression" +msgstr "Ausente ')' en la expresión simbólico de sustitución suscrito" + +#: config/tc-tic54x.c:4727 +msgid "Missing forced substitution terminator ':'" +msgstr "Ausente el terminador de sustitución forzada ':'" + +#: 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)" +msgid_plural "Instruction does not fit in available delay slots (%d-word insn, %d slots left)" +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:4925 +#, c-format +msgid "Unrecognized parallel instruction '%s'" +msgstr "No reconocida la instrucción paralela «%s»" + +#: 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: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: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." +msgid_plural "Instruction does not fit in available delay slots (%d-word insn, %d slots left). Resulting behavior is undefined." +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: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: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: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:5129 +#, c-format +msgid "Unsupported relocation size %d" +msgstr "No se admite el tamaño de reubicación %d" + +#: 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:5264 +#, c-format +msgid "negative value ignored in %s" +msgstr "se descarta el valor negativo en %s" + +#: 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'" +msgstr "argumento desconocido -mpid= '%s'" + +#: config/tc-tic6x.c:320 +#, c-format +msgid "TMS320C6000 options:\n" +msgstr "Opciones TMS320C6000:\n" + +#: config/tc-tic6x.c:321 +#, c-format +msgid " -march=ARCH enable instructions from architecture ARCH\n" +msgstr " -march=ARQ permite instrucciones para la arquitectura ARQ\n" + +#: config/tc-tic6x.c:322 +#, c-format +msgid " -mbig-endian generate big-endian code\n" +msgstr " -mbig-endian genera código big-endian\n" + +#: config/tc-tic6x.c:323 +#, c-format +msgid " -mlittle-endian generate little-endian code\n" +msgstr " -mlittle-endian genera código little-endian\n" + +#: config/tc-tic6x.c:324 +#, c-format +msgid " -mdsbt code uses DSBT addressing\n" +msgstr " -mdsbt el código usa direccionamiento DSBT\n" + +#: config/tc-tic6x.c:325 +#, c-format +msgid " -mno-dsbt code does not use DSBT addressing\n" +msgstr " -mno-dsbt el código no usa direccionamiento DSBT\n" + +#: config/tc-tic6x.c:326 +#, c-format +msgid " -mpid=no code uses position-dependent data addressing\n" +msgstr "" +" -mpid=no el código usa direccionamiento de datos\n" +" dependiente de la posición\n" + +#: config/tc-tic6x.c:327 +#, c-format +msgid "" +" -mpid=near code uses position-independent data addressing,\n" +" GOT accesses use near DP addressing\n" +msgstr "" +" -mpid=near el código usa direccionamiento de datos\n" +" independiente de la posición, los accesos GOT\n" +" emplean el direccionamiento DP cercano\n" + +#: config/tc-tic6x.c:329 +#, c-format +msgid "" +" -mpid=far code uses position-independent data addressing,\n" +" GOT accesses use far DP addressing\n" +msgstr "" +" -mpid=far el código usa direccionamiento de datos\n" +" independiente de la posición, los accesos GOT\n" +" emplean el direccionamiento DP lejano\n" + +#: config/tc-tic6x.c:331 +#, c-format +msgid " -mpic code addressing is position-independent\n" +msgstr "" +" -mpic el direccionamiento de código es\n" +" independiente de posición\n" + +#: config/tc-tic6x.c:332 +#, c-format +msgid " -mno-pic code addressing is position-dependent\n" +msgstr "" +" -mno-pic direccionamiento de código es\n" +" dependiente de posición\n" + +#: config/tc-tic6x.c:337 +#, c-format +msgid "Supported ARCH values are:" +msgstr "Se admiten los siguentes valores de ARQ:" + +#: config/tc-tic6x.c:384 +msgid "unexpected .cantunwind directive" +msgstr "directiva inesperada .cantunwind" + +#: config/tc-tic6x.c:404 +msgid "unexpected .handlerdata directive" +msgstr "directiva inesperada .handlerdata" + +#: 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:530 +msgid "expected symbol" +msgstr "se esperaba un símbolo" + +#: 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:587 +#, c-format +msgid "invalid length for .scomm directive" +msgstr "longitud no válida para la directiva .scomm" + +#: 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:613 +msgid "alignment is not a power of 2" +msgstr "la alineamiento no es una potencia de 2" + +#: 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: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:835 +msgid "multiple '||' on same line" +msgstr "'||' múltiples en la misma línea" + +#: config/tc-tic6x.c:838 +msgid "'||' after predicate" +msgstr "'||' tras predicado" + +#: config/tc-tic6x.c:882 +msgid "multiple predicates on same line" +msgstr "predicados múltiples en la misma línea" + +#: config/tc-tic6x.c:888 +#, c-format +msgid "bad predicate '%s'" +msgstr "equivocación de predicado «%s»" + +#: 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:932 +msgid "label after '||'" +msgstr "etiqueta tras '||'" + +#: config/tc-tic6x.c:938 +msgid "label after predicate" +msgstr "etiqueta tras predicado" + +#: config/tc-tic6x.c:962 +msgid "'||' not followed by instruction" +msgstr "'||' no está seguido por una instrucción" + +#: 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: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: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:1611 +#, c-format +msgid "register pair for operand %u of '%.*s' not a valid even/odd pair" +msgstr "la pareja de registros para el operando %u de '%.*s' no es una pareja par/impar válida" + +#: 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:1680 +#, c-format +msgid "bad register or register pair for operand %u of '%.*s'" +msgstr "el registro o pareja de registros incorrectos para el operando %u de '%.*s'" + +#: config/tc-tic6x.c:1686 +#, c-format +msgid "bad register for operand %u of '%.*s'" +msgstr "el registro incorrecto para el operando %u de '%.*s'" + +#: config/tc-tic6x.c:1691 +#, c-format +msgid "bad register pair for operand %u of '%.*s'" +msgstr "pareja de registros incorrecta para el operando %u de '%.*s'" + +#: config/tc-tic6x.c:1696 +#, c-format +msgid "bad functional unit for operand %u of '%.*s'" +msgstr "unidad funcional incorrecta para el operando %u de '%.*s'" + +#: config/tc-tic6x.c:1701 +#, c-format +msgid "bad operand %u of '%.*s'" +msgstr "operando %u incorrecto de '%.*s'" + +#: 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:1873 +msgid "$DSBT_INDEX not supported in this context" +msgstr "no se admite $DSBT_INDEX en este contexto" + +#: config/tc-tic6x.c:1886 +msgid "$GOT not supported in this context" +msgstr "no se admite $GOT en este contexto" + +#: 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:1924 +msgid "$DPR_BYTE not supported in this context" +msgstr "no se admite $DPR_BYTE en este contexto" + +#: 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:1958 +msgid "$DPR_WORD not supported in this context" +msgstr "no se admite $DPR_WORD en este contexto" + +#: 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:1988 +msgid "invalid PC-relative operand" +msgstr "operando relativo al PC inválido" + +#: 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: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 rango" + +#: 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: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 rango" + +#: config/tc-tic6x.c:2937 +#, c-format +msgid "functional unit already masked for operand %u of '%.*s'" +msgstr "unidad funcional ya está enmascarada para el operando %u de '%.*s'" + +#: config/tc-tic6x.c:2961 config/tc-tic6x.c:3719 +#, c-format +msgid "'%.*s' instruction not in a software pipelined loop" +msgstr "la instrucción '%.*s' no está en un ciclo entubado por software" + +#: config/tc-tic6x.c:3060 +#, c-format +msgid "instruction '%.*s' cannot be predicated" +msgstr "la instrucción '%.*s' no puede ser predicado" + +#: config/tc-tic6x.c:3327 +#, c-format +msgid "'%.*s' instruction not supported on this architecture" +msgstr "la instrucción '%.*s' no se admite en esta arquitectura" + +#: config/tc-tic6x.c:3335 +#, c-format +msgid "'%.*s' instruction not supported on this functional unit" +msgstr "la instrucción '%.*s' no se admite en esta unidad funcional" + +#: config/tc-tic6x.c:3343 +#, c-format +msgid "'%.*s' instruction not supported on this functional unit for this architecture" +msgstr "la instrucción '%.*s' no se admite en esta unidad funcional para esta arquitectura" + +#: config/tc-tic6x.c:3363 +msgid "missing operand after comma" +msgstr "ausente operando tras la coma" + +#: 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:3402 +#, c-format +msgid "bad number of operands to '%.*s'" +msgstr "número incorrecto de operandos para '%.*s'" + +#: 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:3479 +#, c-format +msgid "operand %u of '%.*s' on wrong side" +msgstr "operando %u de '%.*s' está en el lado incorrecto" + +#: 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:3490 +#, c-format +msgid "operand %u of '%.*s' is write-only" +msgstr "operando %u de '%.*s' es de solo escritura" + +#: config/tc-tic6x.c:3495 +#, c-format +msgid "operand %u of '%.*s' is read-only" +msgstr "operando %u de '%.*s' es de solo lectura" + +#: 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: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:3592 +#, c-format +msgid "bad operand combination for '%.*s'" +msgstr "combinación de operandos incorrecta para '%.*s'" + +#: 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:3644 +msgid "too many instructions in execute packet" +msgstr "demasiadas instrucciones en el paquete de ejecución" + +#: 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: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: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:3708 +msgid "nested software pipelined loop" +msgstr "ciclo entubado por software anidado" + +#: config/tc-tic6x.c:3727 +msgid "'||^' without previous SPMASK" +msgstr "'||^' sin un SPMASK previo" + +#: 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:3741 +msgid "functional unit already masked" +msgstr "la unidad funcional ya está enmascarada" + +#: 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:3816 +msgid "value too large for 1-byte field" +msgstr "valor demasiado grande para un campo de 1 byte" + +#: 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:3971 +msgid "immediate offset not 4-byte-aligned" +msgstr "el desplazamiento inmediato no está alineado a 4 bytes" + +#: config/tc-tic6x.c:3985 +msgid "addend used with $DSBT_INDEX" +msgstr "se usó addend con $DSBT_INDEX" + +#: 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: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 rango" + +#: 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: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:4806 +msgid "missing .endp before .cfi_startproc" +msgstr "ausente .endp antes de .cfi_startproc" + +#: 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: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:5052 +msgid "too many unwinding instructions" +msgstr "demasiadas instrucciones de desenredo" + +#: 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: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:5169 +#, c-format +msgid "unhandled CFA insn for unwinding (%d)" +msgstr "insn CFA sin manipular para el desenredo (%d)" + +#: config/tc-tic6x.c:5179 +#, c-format +msgid "unable to generate unwinding opcode for frame pointer reg %d" +msgstr "incapaz de generar código de operación de desenredo para el registro de puntero a marco %d" + +#: config/tc-tic6x.c:5188 +msgid "unable to generate unwinding opcode for frame pointer offset" +msgstr "incapaz de generar código de operación de desenredo para el desplazamiento de puntero a marco" + +#: 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: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:5359 +msgid "unwound frame has negative size" +msgstr "el marco desenredado tiene tamaño negativo" + +#: config/tc-tilegx.c:141 +#, c-format +msgid "" +" -Q ignored\n" +" -V print assembler version number\n" +" -EB/-EL generate big-endian/little-endian code\n" +" --32/--64 generate 32bit/64bit code\n" +msgstr "" +" -Q descartado\n" +" -V escribe el número de versión del ensamblador\n" +" -EB/-EL genera código big-endian/little-endian\n" +" --32/--64 genera código 32bit/64bit\n" + +#: config/tc-tilegx.c:731 config/tc-tilepro.c:619 +msgid "Invalid operator for operand." +msgstr "Operador inválido para el operando." + +#: config/tc-tilegx.c:754 config/tc-tilepro.c:642 +msgid "Operator may only be applied to symbols." +msgstr "El operador solo se puede aplicar a símbolos." + +#: 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: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: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: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: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:1053 config/tc-tilepro.c:941 +msgid "Invalid expression." +msgstr "Expresión no válida." + +#: 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: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:1166 config/tc-tilepro.c:1049 +#, c-format +msgid "Too few operands to '%s'." +msgstr "Ausenten operandos para «%s»." + +#: 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:1192 config/tc-tilepro.c:1075 +msgid "Expected immediate expression" +msgstr "Se esperaba una expresión inmediata" + +#: 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:1246 config/tc-tilepro.c:1128 +#, c-format +msgid "Unknown opcode `%.*s'." +msgstr "Desconoce código de operación `%.*s'." + +#: 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:1349 config/tc-tilepro.c:1221 +msgid "Bad call to md_atof ()" +msgstr "Llamada incorrecta a md_atof ()" + +#: config/tc-tilegx.c:1425 config/tc-tilepro.c:1284 +msgid "This operator only produces two byte values." +msgstr "Este operador solo produce valores de dos bytes." + +#: 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:1795 config/tc-tilepro.c:1572 +msgid "Found '{' when already bundling." +msgstr "Se encontró '{' cuando ya estaba agrupado." + +#: config/tc-tilepro.c:98 +#, c-format +msgid "" +" -Q ignored\n" +" -V print assembler version number\n" +msgstr "" +" -Q se descarta\n" +" -V escribe el número de versión del ensamblador\n" + +#: 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: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:338 +msgid "Common alignment negative; 0 assumed" +msgstr "Alineación común negativa; se asume 0" + +#: 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: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:551 +msgid "bad .longcall format" +msgstr "formato de .longcall incorrecto" + +#: config/tc-v850.c:1389 +#, c-format +msgid "unknown operand shift: %x\n" +msgstr "operando de desplazamiento desconocido: %x\n" + +#: config/tc-v850.c:1390 +msgid "internal failure in parse_register_list" +msgstr "falla interna en parse_register_list" + +#: 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: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: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: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: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: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:1536 +#, c-format +msgid " V850 options:\n" +msgstr " Opciones de V850:\n" + +#: 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: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: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: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: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: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: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:1544 +#, c-format +msgid " -mv850e2v4 Alias for -mv850e3v5\n" +msgstr " -mv850e2v4 Alias para -mv850e3v5\n" + +#: 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:1546 +#, c-format +msgid " -mrelax Enable relaxation\n" +msgstr " -mrelax Activa la relajación\n" + +#: 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: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: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: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: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: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: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: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: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:1556 +#, c-format +msgid " -msoft-float Mark the binary as not using FP insns (default for pre e2v3)\n" +msgstr "" + +#: 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: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: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: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: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:2038 +msgid "ctoff() is not supported by the rh850 ABI. Use -mgcc-abi instead" +msgstr "" + +#: 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: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: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: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:2265 +#, c-format +msgid "operand out of range (%d is not between %d and %d)" +msgstr "operando fuera de rango (%d no está entre %d y %d)" + +#: 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:2357 +msgid "Target processor does not support this instruction." +msgstr "El procesador objetivo no admite esta instrucción." + +#: 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:2486 +#, c-format +msgid "AAARG -> unhandled constant reloc: %d" +msgstr "AAARG → reubicación constante no manipulado: %d" + +#: 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:2707 +msgid "odd number cannot be used here" +msgstr "no se puede usar aquí un número impar" + +#: config/tc-v850.c:2752 +msgid "invalid register name" +msgstr "nombre de registro inválido" + +#: 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:2764 +msgid "odd register cannot be used here" +msgstr "no se puede usar aquí un registro impar" + +#: config/tc-v850.c:2773 +msgid "invalid system register name" +msgstr "nombre de registro de sistema inválido" + +#: config/tc-v850.c:2787 +msgid "expected EP register" +msgstr "se esperaba el registro EP" + +#: 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:2810 +msgid "condition sa cannot be used here" +msgstr "la condición sa no se puede usar aquí" + +#: config/tc-v850.c:2823 +msgid "invalid cache operation name" +msgstr "nompre operacional caché inválido" + +#: config/tc-v850.c:2828 +msgid "invalid pref operation name" +msgstr "nombre pre operacional inválido" + +#: config/tc-v850.c:2833 +msgid "invalid vector register name" +msgstr "nombre de registro vectorial no válida" + +#: config/tc-v850.c:2871 +msgid "syntax error: value is missing before the register name" +msgstr "error de sintaxis: ausente el valor antes del nombre de registro" + +#: config/tc-v850.c:2873 +msgid "syntax error: register not expected" +msgstr "error de sintaxis: no se esperaba un registro" + +#: config/tc-v850.c:2887 +msgid "syntax error: system register not expected" +msgstr "error de sintaxis: no se esperaba un registro de sistema" + +#: config/tc-v850.c:2892 config/tc-v850.c:2897 +msgid "syntax error: condition code not expected" +msgstr "error de sintaxis: no es esperaba código de condición" + +#: config/tc-v850.c:2902 +msgid "syntax error: vector register not expected" +msgstr "error de sintaxis: registro vectorial no esperado" + +#: 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:2937 +msgid "immediate operand is not match" +msgstr "operando inmediato no coincide" + +#: config/tc-v850.c:2950 +msgid "displacement is too large" +msgstr "desubicación demasiado grande" + +#: config/tc-v850.c:2968 config/tc-xtensa.c:13093 +msgid "invalid operand" +msgstr "operando inválido" + +#: config/tc-v850.c:3080 +msgid "loop: 32-bit displacement not supported" +msgstr "bucle: desplazamiento de 32-bit no compatible" + +#: config/tc-vax.c:1339 +msgid "no '[' to match ']'" +msgstr "no hay '[' que coincida con ']'" + +#: config/tc-vax.c:1355 +msgid "bad register in []" +msgstr "el registro incorrecto en []" + +#: config/tc-vax.c:1357 +msgid "[PC] index banned" +msgstr "índice [PC] prohibido" + +#: config/tc-vax.c:1393 +msgid "no '(' to match ')'" +msgstr "no hay '(' que coincida con ')'" + +#: config/tc-vax.c:1509 +msgid "invalid branch operand" +msgstr "operando de ramificación inválido" + +#: config/tc-vax.c:1536 +msgid "address prohibits @" +msgstr "la dirección prohibe @" + +#: config/tc-vax.c:1538 +msgid "address prohibits #" +msgstr "la dirección prohibe #" + +#: config/tc-vax.c:1542 +msgid "address prohibits -()" +msgstr "la dirección prohibe -()" + +#: config/tc-vax.c:1544 +msgid "address prohibits ()+" +msgstr "la dirección prohibe ()+" + +#: config/tc-vax.c:1547 +msgid "address prohibits ()" +msgstr "la dirección prohibe ()" + +#: config/tc-vax.c:1549 +msgid "address prohibits []" +msgstr "la dirección prohibe []" + +#: config/tc-vax.c:1551 +msgid "address prohibits register" +msgstr "la dirección prohibe un registro" + +#: 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:1581 +msgid "invalid operand of S^#" +msgstr "operando inválido de S^#" + +#: config/tc-vax.c:1594 +msgid "S^# needs expression" +msgstr "S^# necesita una expresión" + +#: 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:1624 +msgid "invalid operand of -()" +msgstr "operando inválido de -()" + +#: config/tc-vax.c:1630 +msgid "-(PC) unpredictable" +msgstr "-(PC) impredecible" + +#: config/tc-vax.c:1632 +msgid "[]index same as -()register: unpredictable" +msgstr "[]índice igual que -()registro: impredecible" + +#: config/tc-vax.c:1664 +msgid "invalid operand of ()+" +msgstr "operando inválido de ()+" + +#: config/tc-vax.c:1670 +msgid "(PC)+ unpredictable" +msgstr "(PC)+ impredecible" + +#: config/tc-vax.c:1672 +msgid "[]index same as ()+register: unpredictable" +msgstr "[]índice igual que ()+registro: impredecible" + +#: config/tc-vax.c:1695 +msgid "# conflicts length" +msgstr "# tiene conflictos con la longitud" + +#: config/tc-vax.c:1697 +msgid "# bars register" +msgstr "# prohibe el registro" + +#: config/tc-vax.c:1717 +msgid "writing or modifying # is unpredictable" +msgstr "escribir o modificar # es impredecible" + +#: config/tc-vax.c:1743 +msgid "length not needed" +msgstr "no se necesita la longitud" + +#: config/tc-vax.c:1750 +msgid "can't []index a register, because it has no address" +msgstr "no se puede []indexar un registro, porque no tiene dirección" + +#: config/tc-vax.c:1752 +msgid "a register has no address" +msgstr "un registro no tiene dirección" + +#: config/tc-vax.c:1761 +msgid "PC part of operand unpredictable" +msgstr "PC como parte operativa es impredecible" + +#: 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:1933 +msgid "Bad operand" +msgstr "Operando incorrecto" + +#: config/tc-vax.c:1938 +msgid "Not enough operands" +msgstr "No hay suficientes operandos" + +#: config/tc-vax.c:2212 +msgid "SYMBOL TABLE not implemented" +msgstr "SYMBOL TABLE no está implementado" + +#: config/tc-vax.c:2216 +msgid "TOKEN TRACE not implemented" +msgstr "TOKEN TRACE no está implementado" + +#: 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: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: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:2252 +#, c-format +msgid "" +"VAX options:\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 VAX:\n" +"-d LONGITUD\t\tse descarta\n" +"-J\t\t\tse descarta\n" +"-S\t\t\tse descarta\n" +"-t FILE\t\t\tse descarta\n" +"-T\t\t\tse descarta\n" +"-V\t\t\tse descarta\n" + +#: config/tc-vax.c:2261 +#, c-format +msgid "" +"ELF options:\n" +"-k -pic\t\t\tenable PIC mode\n" +"-Q[y|n]\t\t\tignored\n" +msgstr "" + +#: 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:2439 +#, c-format +msgid "Aborting because statement has \"%s\"" +msgstr "Se aborta porque la declaración tiene «%s»" + +#: config/tc-vax.c:2484 +msgid "Can't relocate expression" +msgstr "No se puede reubicar la expresión" + +#: 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: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: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: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: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: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: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:3090 +msgid "Invalid operand: immediate value used as address." +msgstr "Operando inválido: valor inmediato empleado como dirección." + +#: 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-visium.c:836 +msgid "Bad call to MD_ATOF()" +msgstr "Equivocación de llamada a MD_ATOF()" + +#: config/tc-wasm32.c:117 +#, c-format +msgid "wasm32 assembler options:\n" +msgstr "opciones ensamblador wasm32:\n" + +#: config/tc-wasm32.c:364 +msgid "unexpected negative constant" +msgstr "constante negativo inesperado" + +#: config/tc-wasm32.c:426 +msgid "no function type on PLT reloc" +msgstr "ninguna función tipo en reubicación PLT" + +#: config/tc-wasm32.c:441 +msgid "couldn't find relocation to use" +msgstr "no pudo encontrar reubicación a usar" + +#: config/tc-wasm32.c:513 +msgid "Not a function type" +msgstr "No un tipo funcional" + +#: config/tc-wasm32.c:529 +#, c-format +msgid "Unknown type %c\n" +msgstr "Tipo de desconocido %c\n" + +#: config/tc-wasm32.c:551 config/tc-wasm32.c:577 +msgid "Unknown type" +msgstr "Tipo desconocido" + +#: config/tc-wasm32.c:625 +msgid "only single block types allowed" +msgstr "solo tipos de bloque simple permitido" + +#: config/tc-wasm32.c:635 +msgid "instruction does not take a block type" +msgstr "la instrucción no toma un tipo de bloque" + +#: config/tc-wasm32.c:652 +msgid "missing block type" +msgstr "tipo de bloque ausente" + +#: config/tc-wasm32.c:661 config/tc-wasm32.c:665 +msgid "missing alignment hint" +msgstr "indicio de alineamiento ausente" + +#: config/tc-wasm32.c:669 +msgid "missing offset" +msgstr "ausente desplazamiento" + +#: config/tc-wasm32.c:675 +msgid "missing local index" +msgstr "indexado local ausente" + +#: config/tc-wasm32.c:680 +msgid "missing break count" +msgstr "ausente contador de rupturas" + +#: config/tc-wasm32.c:685 +msgid "missing reserved current_memory/grow_memory argument" +msgstr "" + +#: config/tc-wasm32.c:689 +msgid "missing call argument" +msgstr "llamada argumental ausente" + +#: config/tc-wasm32.c:693 +msgid "missing call signature" +msgstr "llamada de firma ausente" + +#: config/tc-wasm32.c:695 +msgid "missing table index" +msgstr "tabla indexada ausente" + +#: 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-xgate.c:215 +msgid "architecture variant invalid" +msgstr "arquitectura variante no válida" + +#: config/tc-xgate.c:369 +#, c-format +msgid "" +"Freescale XGATE co-processor options:\n" +" -mshort use 16-bit int ABI (default)\n" +" -mlong use 32-bit int ABI\n" +" -mshort-double use 32-bit double ABI\n" +" -mlong-double use 64-bit double ABI (default)\n" +" --mxgate specify the processor variant [default %s]\n" +" --print-insn-syntax print the syntax of instruction in case of error\n" +" --print-opcodes print the list of instructions with syntax\n" +" --generate-example generate an example of each instruction" +msgstr "" +"Opciones paracoprocesador XGATE:\n" +" -mshort emplea ABI int de 16-bit (por defecto)\n" +" -mlong emplea ABI int de 32-bit\n" +" -mshort-double emplear ABI double de 32-bit\n" +" -mlong-double emplear ABI double de 64-bit (por defecto)\n" +" --mxgate\t\t\tespecificar la variante del procesador [predet. %s]\n" +" --print-insn-syntax escribe la sintaxis de la instrucción en caso de error\n" +" --print-opcodes escribe la lista de instrucciones con sintaxis\n" +" --generate-example genera un ejemplo de cada instrucción" + +#: config/tc-xgate.c:492 +msgid "opcode missing or not found on input line" +msgstr "" + +#: 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:509 +msgid "matching operands to opcode" +msgstr "coincidiendo operandos para código de operación" + +#: config/tc-xgate.c:549 +msgid ": processing macro, real opcode handle not found in hash" +msgstr "" + +#: config/tc-xgate.c:680 +#, c-format +msgid "Value %ld not aligned by 2 for 9-bit PC-relative branch." +msgstr "Valor %ld no alineado por 2 para ramificación de 9-bit PC-relativa." + +#: config/tc-xgate.c:697 +#, c-format +msgid "Value %ld not aligned by 2 for 10-bit PC-relative branch." +msgstr "Valor %ld no alineado por 2 para ramificación de 10-bit PC-relativa." + +#: config/tc-xgate.c:724 +msgid "Value out of 3-bit range." +msgstr "Valor externo de 3-bit de rango." + +#: config/tc-xgate.c:731 +msgid "Value out of 4-bit range." +msgstr "Valor fuera de rango de 4-bit." + +#: config/tc-xgate.c:738 +msgid "Value out of 5-bit range." +msgstr "Valor externo de 5-bit de rango." + +#: config/tc-xgate.c:875 +msgid ":operand has too many bits" +msgstr ":operand tiene demasiadas bits" + +#: config/tc-xgate.c:994 +msgid "unknown operand count" +msgstr "contador operacional desconocido" + +#: 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:1286 +#, c-format +msgid ":operand value(%d) too big for constraint" +msgstr ":operando valor%d) demasiado grande para instrucción" + +#: 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:1317 +msgid ":unknown relocation constraint size" +msgstr ":unknown de reubicación de tamaño restringido" + +#: config/tc-xgate.c:1324 +msgid ": expected register name ccr " +msgstr ": esperado nombre de registro ccr " + +#: config/tc-xgate.c:1330 +msgid ": expected register name pc " +msgstr ": esperaba nombre de registrado pc " + +#: config/tc-xstormy16.c:77 +#, c-format +msgid " XSTORMY16 specific command line options:\n" +msgstr " Opciones de línea de mandatos específicas de XSTROMY16:\n" + +#: config/tc-xstormy16.c:223 +#, c-format +msgid "unsupported fptr fixup size %d" +msgstr "no se admite el tamaño de compostura fptr %d" + +#: config/tc-xstormy16.c:235 +#, c-format +msgid "unsupported fixup size %d" +msgstr "no se admite el tamaño de compostura %d" + +#: config/tc-xstormy16.c:266 +msgid "unsupported fptr fixup" +msgstr "no se admite la compostura fptr" + +#: config/tc-xtensa.c:650 +msgid "illegal range of target hardware versions" +msgstr "rango ilegal de versiones de hardware objetivo" + +#: config/tc-xtensa.c:831 +msgid "--density option is ignored" +msgstr "se descarta la opción --density" + +#: config/tc-xtensa.c:834 +msgid "--no-density option is ignored" +msgstr "se descarta la opción --no-density" + +#: 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: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:858 +msgid "--relax is deprecated; use --transform instead" +msgstr "--relax es obsoleto; utilice en su lugar --transform" + +#: 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: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:951 +msgid "prefer-l32r conflicts with prefer-const16" +msgstr "prefer-l32r tiene conflictos con prefer-const16" + +#: config/tc-xtensa.c:957 +msgid "prefer-const16 conflicts with prefer-l32r" +msgstr "prefer-const16 tiene conflictos con prefer-l32r" + +#: 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: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:1027 config/tc-xtensa.c:1030 +msgid "invalid auto-litpool-limit argument" +msgstr "argumento inválido auto-litpool-limit" + +#: config/tc-xtensa.c:1032 +msgid "invalid auto-litpool-limit argument (range is 100-10000)" +msgstr "argumento inválido auto-litpool-limit (rango es 100-10000)" + +#: config/tc-xtensa.c:1229 +msgid "unmatched .end directive" +msgstr "directiva .end no coincidida" + +#: 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: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: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:1317 +#, c-format +msgid "directive %s cannot be negated" +msgstr "la directiva %s no se puede negar" + +#: config/tc-xtensa.c:1323 +msgid "unknown directive" +msgstr "desconoce directiva" + +#: 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: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: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:1403 +msgid ".begin [no-]density is ignored" +msgstr "se descarta .begin [no-]density" + +#: 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:1453 +msgid ".end [no-]density is ignored" +msgstr "se descarta .end [no-]density" + +#: 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:1533 +msgid ".literal_position inside literal directive; ignoring" +msgstr ".literal_position dentro de una directiva literal; se descarta" + +#: 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: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: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: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:1695 +#, c-format +msgid "opcode-specific %s relocation used outside an instruction" +msgstr "se usó la reubicación %s específica de código de operación fuera de una instrucción" + +#: 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:1901 config/tc-xtensa.c:1918 +#, c-format +msgid "bad register name: %s" +msgstr "nombre de registro incorrecto: %s" + +#: config/tc-xtensa.c:1907 +#, c-format +msgid "bad register number: %s" +msgstr "número de registro incorrecto: %s" + +#: 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:2074 +msgid "extra colon" +msgstr "punto y coma extra" + +#: config/tc-xtensa.c:2135 +msgid "incorrect register number, ignoring" +msgstr "número de registro incorrecto, se descarta" + +#: config/tc-xtensa.c:2216 +#, c-format +msgid "cannot encode opcode \"%s\"" +msgstr "no se puede codificar el código de operación «%s»" + +#: 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: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:2366 +#, c-format +msgid "invalid register '%s' for '%s' instruction" +msgstr "el registro «%s» inválido para «%s» como instrucción" + +#: 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:2440 +#, c-format +msgid "invalid register number (%ld) for '%s'" +msgstr "número de registro inválido (%ld) para «%s»" + +#: 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 rango '%u'" + +#: 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:2892 +#, c-format +msgid "internal error: unknown option name '%s'" +msgstr "error interno: nombre desconocido opcional '%s'" + +#: 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:4005 +msgid "can't handle undefined OP TYPE" +msgstr "no se puede manipular un OP TYPE sin definir" + +#: 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:4098 +msgid "immediate operands sum to greater than 32" +msgstr "la suma de los operandos inmediatos es mayor a 32" + +#: config/tc-xtensa.c:4350 +#, c-format +msgid "invalid relocation for operand %i of '%s'" +msgstr "reubicación no válida para el operando %i de «%s»" + +#: config/tc-xtensa.c:4360 +#, c-format +msgid "invalid expression for operand %i of '%s'" +msgstr "expresión no válida para el operando %i en «%s»" + +#: 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:4377 +#, c-format +msgid "undefined symbol for opcode \"%s\"" +msgstr "símbolo indefinido para el código de operación «%s»" + +#: 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:4912 +msgid "get_expanded_loop_offset: invalid opcode" +msgstr "get_expanded_loop_offset: código de operación inválido" + +#: 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: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:5170 +#, c-format +msgid "unaligned loop: %d bytes at 0x%lx" +msgstr "ciclo sin alinear: %d bytes en 0x%lx" + +#: config/tc-xtensa.c:5195 +msgid "unexpected fix" +msgstr "corrección inesperada" + +#: config/tc-xtensa.c:5206 config/tc-xtensa.c:5210 +msgid "undecodable fix" +msgstr "fix que no se puede decodificar" + +#: 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:5391 +msgid "invalid last instruction for a zero-overhead loop" +msgstr "la instrucción last no válida para un ciclo con adelanto cero" + +#: config/tc-xtensa.c:5458 +msgid "extra opening brace" +msgstr "llave que abre extra" + +#: config/tc-xtensa.c:5468 +msgid "extra closing brace" +msgstr "llave que cierra extra" + +#: config/tc-xtensa.c:5495 +msgid "missing closing brace" +msgstr "falta llave que cierra" + +#: config/tc-xtensa.c:5593 config/tc-xtensa.c:5622 +#, c-format +msgid "wrong number of operands for '%s'" +msgstr "número incorrecto de operandos para «%s»" + +#: config/tc-xtensa.c:5609 +#, c-format +msgid "bad relocation expression for '%s'" +msgstr "expresión de reubicación incorrecta para «%s»" + +#: config/tc-xtensa.c:5644 +#, c-format +msgid "unknown opcode or format name '%s'" +msgstr "código de operación o nombre de formato desconocido «%s»" + +#: config/tc-xtensa.c:5650 +msgid "format names only valid inside bundles" +msgstr "los nombres de formato solo son válidos dentro de agregados" + +#: 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:5705 +msgid "entry instruction with stack decrement < 16" +msgstr "la instrucción entry con decremento de pila < 16" + +# entry → entrada o asiento +#: config/tc-xtensa.c:5759 +msgid "unaligned entry instruction" +msgstr "entrada de instrucción sin alinear" + +#: config/tc-xtensa.c:5824 +msgid "bad instruction format" +msgstr "formato de instrucción incorrecto" + +#: config/tc-xtensa.c:5827 +msgid "invalid relocation" +msgstr "reubicación no válida" + +#: 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:5850 +#, c-format +msgid "invalid relocation for operand %d of '%s'" +msgstr "reubicación no válida para el operando %d de «%s»" + +#: 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:6182 +#, c-format +msgid "internal error; cannot generate `%s' relocation" +msgstr "error interno; incapaz de generar «%s» reubicado" + +#: 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: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:6407 +#, c-format +msgid " ops were: " +msgstr " ops fueron: " + +#: config/tc-xtensa.c:6409 +#, c-format +msgid " %s;" +msgstr " %s;" + +#: config/tc-xtensa.c:6419 +#, c-format +msgid "mismatch for format '%s': #slots = %d, #opcodes = %d" +msgstr "" + +#: 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: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: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: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: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:6645 +msgid "multiple branches or jumps in the same bundle" +msgstr "múltiples ramificaciones o saltos en el mismo agregado" + +#: 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:7099 +msgid "..." +msgstr "..." + +#: 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: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: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:8521 +#, c-format +msgid "fr_var %lu < length %d" +msgstr "fr_var %lu < longitud %d" + +#: 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:8751 +msgid "undecodable instruction in instruction frag" +msgstr "la instrucción no decodificable en la instrucción frag" + +#: config/tc-xtensa.c:8861 +msgid "invalid empty loop" +msgstr "ciclo vacío inválido" + +#: 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:9433 +msgid "cannot find suitable trampoline" +msgstr "no puede encontrar lanzador útil" + +#: config/tc-xtensa.c:9688 +msgid "bad relaxation state" +msgstr "estado de relajación incorrecto" + +#: config/tc-xtensa.c:9746 +#, c-format +msgid "fr_var (%ld) < length (%d)" +msgstr "fr_var (%ld) < longitud (%d)" + +#: config/tc-xtensa.c:10446 +msgid "jump target out of range; no usable trampoline found" +msgstr "omite objetivo fuera de rango; trampolín encontrado no utilizable" + +#: config/tc-xtensa.c:10570 +msgid "invalid relaxation fragment result" +msgstr "resultado de fragmento de relajación inválido" + +#: config/tc-xtensa.c:10652 +msgid "unable to widen instruction" +msgstr "incapaz de extender instrucción" + +#: config/tc-xtensa.c:10790 +msgid "multiple literals in expansion" +msgstr "literales múltiples en la expansión" + +#: config/tc-xtensa.c:10794 +msgid "no registered fragment for literal" +msgstr "no hay un fragmento registrado para la literal" + +#: config/tc-xtensa.c:10796 +msgid "number of literal tokens != 1" +msgstr "número de elementos literales != 1" + +#: 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:11419 +#, c-format +msgid "fixes not all moved from %s" +msgstr "no se ‘movi’eron todas las composturas de %s" + +#: 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:12407 +msgid "too many operands in instruction" +msgstr "demasiados operandos en la instrucción" + +#: config/tc-xtensa.c:12617 +msgid "invalid symbolic operand" +msgstr "operando de símbolo inválido" + +#: config/tc-xtensa.c:12678 +msgid "operand number mismatch" +msgstr "no coincide el número de operandos" + +#: 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 de operación «%s» en el formato dado «%s»" + +#: config/tc-xtensa.c:12707 +#, c-format +msgid "xtensa-isa failure: %s" +msgstr "fallo xtensa-isa: %s" + +#: config/tc-xtensa.c:12784 +msgid "invalid opcode" +msgstr "código de operación inválido" + +#: config/tc-xtensa.c:12790 +msgid "too few operands" +msgstr "muy pocos operandos" + +#: 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:12954 config/tc-xtensa.c:12960 +msgid "out of memory" +msgstr "memoria agotada" + +#: config/tc-xtensa.c:13049 +msgid "TLS relocation not allowed in FLIX bundle" +msgstr "TLS reubicado no permitido dentro del haz FLIX" + +#. Instructions that generate TLS relocations should always be +#. 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:13055 +msgid "unexpected TLS relocation" +msgstr "reubicación TLS inesperada" + +#: config/tc-xtensa.c:13099 +msgid "symbolic operand not allowed" +msgstr "no se permite operando simbólico" + +#: config/tc-xtensa.c:13136 +msgid "cannot decode instruction format" +msgstr "no se puede decodificar el formato de instrucción" + +#: config/tc-xtensa.c:13280 +msgid "ignoring extra '-rename-section' delimiter ':'" +msgstr "se descarta el delimitador '-rename-section' adicional ':'" + +#: 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:13296 +#, c-format +msgid "section %s renamed multiple times" +msgstr "la sección %s se renombró varias veces" + +#: 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: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:794 +#, fuzzy +#| msgid "unrecognised instruction %s" +msgid "undocumented instruction" +msgstr "la instrucción %s no reconocida" + +#: config/tc-z80.c:838 config/tc-z80.c:844 +msgid "mismatched parentheses" +msgstr "paréntesis sin coincidencia" + +#: config/tc-z80.c:936 +msgid "bad expression syntax" +msgstr "sintaxis de expresión incorrecta" + +#: config/tc-z80.c:1147 +#, c-format +msgid "%d-bit overflow (%+<PRId64>)" +msgstr "" + +#: 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:1254 +#, c-format +msgid "index overflow (%+<PRId64>)" +msgstr "" + +#: config/tc-z80.c:1257 +#, c-format +msgid "offset overflow (%+<PRId64>)" +msgstr "" + +#: 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:1898 +msgid "condition code invalid for jr" +msgstr "código de condición inválido para jr" + +#: 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 "la 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:3263 +#, fuzzy +#| msgid "opcode `%s' not supported for target %s" +msgid "CPU mode is unsupported by target" +msgstr "no se admite el código de operación «%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: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:3789 +#, c-format +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 "el registro rr%d fuera de rango" + +#: config/tc-z8k.c:283 +#, c-format +msgid "register rr%d does not exist" +msgstr "el registro rr%d no existe" + +#: config/tc-z8k.c:295 +#, c-format +msgid "register rh%d out of range" +msgstr "el registro rh%d fuera de rango" + +#: config/tc-z8k.c:307 +#, c-format +msgid "register rl%d out of range" +msgstr "el registro rl%d fuera de rango" + +#: config/tc-z8k.c:320 +#, c-format +msgid "register rq%d out of range" +msgstr "el registro rq%d fuera de rango" + +#: config/tc-z8k.c:322 +#, c-format +msgid "register rq%d does not exist" +msgstr "el registro rq%d no existe" + +#: config/tc-z8k.c:334 +#, c-format +msgid "register r%d out of range" +msgstr "el registro r%d fuera de rango" + +#: config/tc-z8k.c:375 +#, c-format +msgid "expected %c" +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 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 incorrecto para la dirección %s" + +#: config/tc-z8k.c:538 +#, c-format +msgid "unknown interrupt %s" +msgstr "desconoce interrupción %s" + +#. No interrupt type specified, opcode won't do anything. +#: config/tc-z8k.c:561 +msgid "opcode has no effect" +msgstr "el código de operación no tiene efecto" + +#: config/tc-z8k.c:672 +msgid "Missing ) in ra(rb)" +msgstr "Ausente ) en ra(rb)" + +#: config/tc-z8k.c:752 config/tc-z8k.c:791 +#, c-format +msgid "invalid condition code '%s'" +msgstr "código condicional inválido «%s»" + +#: config/tc-z8k.c:764 +#, c-format +msgid "invalid flag '%s'" +msgstr "opción no válida «%s»" + +#: config/tc-z8k.c:918 config/tc-z8k.c:924 +msgid "invalid indirect register size" +msgstr "tamaño de registro indirecto inválido" + +#: 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:1096 +msgid "immediate must be 1 or 2" +msgstr "el inmediato debe ser 1 o 2" + +#: config/tc-z8k.c:1099 +msgid "immediate 1 or 2 expected" +msgstr "se esperaba un inmediato 1 o 2" + +#: config/tc-z8k.c:1130 +msgid "can't use R0 here" +msgstr "no se puede usar R0 aquí" + +#: config/tc-z8k.c:1288 +msgid "Can't find opcode to match operands" +msgstr "No se puede encontrar el código de operación que coincida con los operandos" + +#: config/tc-z8k.c:1335 +#, c-format +msgid "invalid architecture -z%s" +msgstr "arquitectura -z%s no válida" + +#: config/tc-z8k.c:1354 +#, c-format +msgid "" +" Z8K options:\n" +" -z8001 generate segmented code\n" +" -z8002 generate unsegmented code\n" +" -linkrelax create linker relaxable code\n" +msgstr "" +" Opciones de Z8K:\n" +" -z8001 genera código segmentado\n" +" -z8002 genera código sin segmentar\n" +" -linkrelax crea código relajable por el enlazador\n" + +#: 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: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: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 rango" + +#: config/tc-z8k.c:1516 +msgid "relative call out of range" +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: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: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:1704 config/xtensa-relax.c:1714 +#, c-format +msgid "opcode '%s': no bound opname '%s' for precondition in '%s'" +msgstr "código de operación «%s»: no hay un nombre operacional «%s» enlazado para la precondición en «%s»" + +#: config/xtensa-relax.c:1721 +#, c-format +msgid "opcode '%s': precondition only contains constants in '%s'" +msgstr "código de operación «%s»: la precondición solo contiene constantes en «%s»" + +#: 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:1775 +msgid "expected 0 operands for generated label" +msgstr "se esperaban 0 operandos para la etiqueta generada" + +#: config/xtensa-relax.c:1788 +#, c-format +msgid "invalid opcode '%s' in transition rule '%s'" +msgstr "código de operación «%s» inválido en la regla de transición «%s»" + +#: 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:1812 +#, c-format +msgid "opcode '%s': cannot find literal definition" +msgstr "código de operación «%s»: no se puede encontrar la definición literal" + +#: 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:1853 +#, c-format +msgid "unknown user-defined function %s" +msgstr "función definida por el usuario %s desconocida" + +#: config/xtensa-relax.c:1864 +#, c-format +msgid "opcode '%s': could not parse operand '%s' in '%s'" +msgstr "código de operación «%s»: no pudo interpretar operando «%s» en «%s»" + +#: 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:1908 +#, c-format +msgid "could not parse INSN_REPL '%s'" +msgstr "no se puede decodificar INSN_REPL «%s»" + +#: 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" + +#: depend.c:194 +#, c-format +msgid "can't open `%s' for writing" +msgstr "no se puede abrir «%s» para escritura" + +#: depend.c:206 +#, c-format +msgid "can't close `%s'" +msgstr "no se puede cerrar «%s»" + +#: dw2gencfi.c:313 read.c:2532 +#, c-format +msgid "bfd_set_section_flags: %s" +msgstr "bfd_set_section_flags: %s" + +#: 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:678 +msgid "CFI state restore without previous remember" +msgstr "CFI como declaración restaurada se utilizó sin un recuerdo previo" + +#: dw2gencfi.c:737 +msgid "missing separator" +msgstr "ausente el separador" + +#: dw2gencfi.c:786 +msgid "bad register expression" +msgstr "expresión de registro no válida" + +#: 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:1004 +msgid "invalid or unsupported encoding in .cfi_personality" +msgstr "codificación no válida o no admitida en .cfi_personality" + +#: dw2gencfi.c:1011 +msgid ".cfi_personality requires encoding and symbol arguments" +msgstr ".cfi_personality requiere argumentos de codificación y símbolo" + +#: dw2gencfi.c:1034 +msgid "wrong second argument to .cfi_personality" +msgstr "segundo argumento incorrecto para .cfi_personality" + +#: 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:1082 +msgid ".cfi_lsda requires encoding and symbol arguments" +msgstr ".cfi_lsda requiere argumentos de codificación y símbolo" + +#: dw2gencfi.c:1107 +msgid "wrong second argument to .cfi_lsda" +msgstr "segundo argumento incorrecto para .cfi_lsda" + +#: dw2gencfi.c:1173 +msgid "wrong third argument to .cfi_val_encoded_addr" +msgstr "tercer argumento incorrecto para .cfi_val_encoded_addr" + +#: dw2gencfi.c:1272 +msgid "inconsistent uses of .cfi_sections" +msgstr "utilizaciones inconsistentes de .cfi_sections" + +#: 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:1323 scfidw2gen.c:157 +msgid ".cfi_endproc without corresponding .cfi_startproc" +msgstr ".cfi_endproc sin un .cfi_startproc correspondiente" + +#: dw2gencfi.c:1398 +msgid "wrong argument to .cfi_personality_id" +msgstr "equivocación del argumento para .cfi_personality_id" + +#: dw2gencfi.c:1408 +msgid ".cfi_fde_data without corresponding .cfi_startproc" +msgstr ".cfi_fde_data sin correspondiente .cfi_startproc" + +#: dw2gencfi.c:1516 +msgid "unexpected .cfi_inline_lsda" +msgstr ".cfi_inline_lsda no esperado" + +#: dw2gencfi.c:1523 +msgid ".cfi_inline_lsda not valid for this frame" +msgstr ".cfi_inline_lsda no válido para este marco" + +#: dw2gencfi.c:1531 +msgid ".cfi_inline_lsda seen for frame without .cfi_lsda" +msgstr "" + +#: dw2gencfi.c:1544 +#, c-format +msgid "Alignment too large: %d. assumed." +msgstr "Alineación muy grande: %d asumido." + +#: dw2gencfi.c:1548 +msgid "Alignment negative: 0 assumed." +msgstr "Alineación negativa: se asume 0." + +#: 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:1581 +msgid ".cfi_fde_data is not supported for this target" +msgstr ".cfi_fde_data no es compatible para este objetivo" + +#: 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: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: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:377 dwarf2dbg.c:3311 +msgid "view number mismatch" +msgstr "vista numérica no coincide" + +#: 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: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:1281 dwarf2dbg.c:2304 +#, c-format +msgid "unassigned file number %ld" +msgstr "número de fichero %ld sin asignar" + +#: dwarf2dbg.c:1359 +msgid "is_stmt value not 0 or 1" +msgstr "is_stmt valorado distinto de 0 o 1" + +#: dwarf2dbg.c:1373 +msgid "isa number less than zero" +msgstr "número isa menor que uno" + +#: dwarf2dbg.c:1385 +msgid "discriminator less than zero" +msgstr "discriminador menor que cero" + +#: dwarf2dbg.c:1404 +msgid "numeric view can only be asserted to zero" +msgstr "" + +#: dwarf2dbg.c:1444 +#, c-format +msgid "unknown .loc sub-directive `%s'" +msgstr "deconoce sub-directorio .loc `%s'" + +#: dwarf2dbg.c:2438 +msgid "internal error: unknown dwarf2 format" +msgstr "error interno: formato enana2 desconocido" + +#: ecoff.c:1559 +#, c-format +msgid "string too big (%lu bytes)" +msgstr "cadena demasiado grande (%lu bytes)" + +#: 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:1699 +msgid "too many st_End's" +msgstr "demasiados st_End's" + +#: ecoff.c:2195 +msgid "fake .file after real one" +msgstr ".file falso tras real" + +#: 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:2416 +msgid ".begin directive without a preceding .file directive" +msgstr "directiva .begin sin una directiva .file precedente" + +#: ecoff.c:2423 +msgid ".begin directive without a preceding .ent directive" +msgstr "directiva .begin sin una directiva .ent precedente" + +#: ecoff.c:2453 +msgid ".bend directive without a preceding .file directive" +msgstr "directiva .bend sin una directiva .file precedente" + +#: ecoff.c:2460 +msgid ".bend directive without a preceding .ent directive" +msgstr "directiva .bend sin una directiva .ent precedente" + +#: ecoff.c:2472 +msgid ".bend directive names unknown symbol" +msgstr "símbolo desconocido en los nombres de la directiva .bend" + +#: 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:2516 +msgid "empty symbol name in .def; ignored" +msgstr "nombre de símbolo vacío en .def; se descarta" + +#: 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:2566 +msgid "badly formed .dim directive" +msgstr "directiva .dim mal formada" + +#: ecoff.c:2579 +msgid "too many .dim entries" +msgstr "demasiadas entradas .dim" + +#: 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: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:2639 +msgid "badly formed .size directive" +msgstr "directiva .size mal formada" + +#: ecoff.c:2652 +msgid "too many .size entries" +msgstr "demasiadas entradas .size" + +#: 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: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:2703 +msgid "Unrecognized .type argument" +msgstr "No reconocido argumento .type" + +#: 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: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:2773 +msgid ".val expression is too complex" +msgstr "la expresión .val es demasiado compleja" + +#: 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:2829 ecoff.c:2910 +msgid "bad COFF debugging information" +msgstr "información de depuración COFF incorrecta" + +#: ecoff.c:2878 +#, c-format +msgid "no tag specified for %s" +msgstr "no se especificó una marca para %s" + +#: ecoff.c:2980 +msgid ".end directive without a preceding .file directive" +msgstr "directiva .end sin una directiva .file precedente" + +#: ecoff.c:3008 +msgid ".end directive names unknown symbol" +msgstr "símbolo desconocido en los nombres de la directiva .end" + +#: 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:3047 +#, c-format +msgid "%s directive has no name" +msgstr "%s de directiva no tiene ningún nombre" + +#: 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:3225 +msgid ".loc before .file" +msgstr ".loc antes de .file" + +#: ecoff.c:3425 +#, c-format +msgid ".stab%c is not supported" +msgstr "no se admite .stab%c" + +#: 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: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:3503 +#, c-format +msgid "illegal .stab%c directive, bad character" +msgstr "directiva .stab%c ilegal, carácter incorrecto" + +#: ecoff.c:3952 ecoff.c:4140 ecoff.c:4165 +msgid ".begin/.bend in different segments" +msgstr ".begin/.bend en segmentos diferentes" + +#: ecoff.c:4660 +msgid "missing .end or .bend at end of file" +msgstr ".end ausente o .bend al final del fichero" + +#: 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:74 read.c:4081 +msgid "bignum invalid" +msgstr "bignum inválido" + +#: 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:229 +msgid "bad floating-point constant: exponent overflow" +msgstr "constante de coma flotante incorrecta: desbordamiento del exponente" + +#: expr.c:233 +#, c-format +msgid "bad floating-point constant: unknown error code=%d" +msgstr "constante de coma flotante incorrecta: código de error desconocido=%d" + +#: 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: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:577 +#, c-format +msgid "backward ref to unknown label \"%d:\"" +msgstr "referencia hacia atrás a la etiqueta desconocida \"%d:\"" + +#: expr.c:690 +msgid "character constant too large" +msgstr "la constante de carácter es demasiado grande" + +#: expr.c:1021 +#, c-format +msgid "found '%c', expected: '%c'" +msgstr "encontrado `%c', se esperaba: `%c'" + +#: expr.c:1024 +#, c-format +msgid "missing '%c'" +msgstr "ausente '%c'" + +#: expr.c:1036 read.c:4868 +msgid "EBCDIC constants are not supported" +msgstr "EBCDIC como constante no son admitidos" + +#: 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 incorrecto a continuación" + +#: expr.c:1252 expr.c:1274 +msgid "syntax error in .startof. or .sizeof." +msgstr "error de sintaxis en .startof. o .sizeof." + +#: expr.c:1354 expr.c:1690 +#, c-format +msgid "invalid use of operator \"%s\"" +msgstr "uso inválido del operador «%s»" + +#: expr.c:1872 +msgid "missing operand; zero assumed" +msgstr "ausente operando; se asume cero" + +#: 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: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: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: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:2003 symbols.c:1705 +msgid "division by zero" +msgstr "división por cero" + +#: expr.c:2053 symbols.c:1716 +msgid "shift count" +msgstr "cuenta de desplazamiento" + +#: expr.c:2179 +msgid "operation combines symbols in different segments" +msgstr "la operación combina símbolos en segmentos diferentes" + +#: 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" + +#: frags.c:66 +msgid "attempt to allocate data in common section" +msgstr "se intentó asignar datos en la sección común" + +#: 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(). +#. +#. [FIXME: We rely upon the name in the strcmp below being the +#. same as the one used by input_scrub_new_file(), if that is +#. not true, then this code will fail]. +#. +#. If we are reading from stdin, then we need to save each input +#. 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:259 listing.c:356 +msgid "{standard input}" +msgstr "{entrada estándar}" + +#: input-file.c:141 +#, c-format +msgid "can't open %s for reading: %s" +msgstr "no se puede abrir %s para lectura: %s" + +#: 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:267 listing.c:1456 +#, c-format +msgid "can't close %s: %s" +msgstr "no se puede cerrar %s: %s" + +#: 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 "No se ha podido asignar memoria para las instrucciones nuevas\n" + +#: listing.c:255 messages.c:192 messages.c:194 messages.c:197 +msgid "Warning: " +msgstr "Aviso: " + +#: listing.c:261 messages.c:266 messages.c:268 messages.c:271 +msgid "Error: " +msgstr "Error: " + +#: listing.c:623 +#, c-format +msgid "unable to rebuffer file: %s\n" +msgstr "incapaz de reservar fichero búfer: %s\n" + +#: listing.c:1342 +#, c-format +msgid "" +"\n" +" time stamp \t: %s\n" +"\n" +msgstr "" +"\n" +" marca tiempo \t: %s\n" +"\n" + +#: listing.c:1352 +#, c-format +msgid "%s " +msgstr "%s " + +#: listing.c:1357 +#, c-format +msgid "" +"\n" +"\t%s " +msgstr "" +"\n" +"\t%s " + +#: listing.c:1367 +msgid "" +"\n" +" options passed\t: " +msgstr "" +"\n" +" opciones pasadas\t: " + +#: listing.c:1406 +#, c-format +msgid "" +" GNU assembler version %s (%s)\n" +"\t using BFD version %s." +msgstr "" +" Ensamblador de GNU versión %s (%s)\n" +"\t utilizando BFD versión %s." + +#: listing.c:1409 +#, c-format +msgid "" +"\n" +" input file \t: %s" +msgstr "" +"\n" +" fich entrante \t: %s" + +#: listing.c:1410 +#, c-format +msgid "" +"\n" +" output file \t: %s" +msgstr "" +"\n" +" fich saliente \t: %s" + +#: listing.c:1411 +#, c-format +msgid "" +"\n" +" target \t: %s" +msgstr "" +"\n" +" destino \t: %s" + +#: listing.c:1435 +#, c-format +msgid "can't open %s: %s" +msgstr "no se puede abrir %s: %s" + +#: 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: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" + +#: 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: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: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: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: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: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: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: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:707 +msgid "Missing macro name" +msgstr "Ausente el nombre de macro" + +#: macro.c:716 +#, c-format +msgid "Bad parameter list for macro `%s'" +msgstr "Lista de parámetros incorrecta para la macro «%s»" + +#: macro.c:724 +#, c-format +msgid "Macro `%s' was already defined" +msgstr "La macro «%s» ya está definida" + +#: macro.c:850 macro.c:852 +msgid "missing `)'" +msgstr "ausente `)'" + +#: 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:1113 +msgid "confusion in formal parameters" +msgstr "confusión en los parámetros formales" + +#: 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: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:1146 +msgid "can't mix positional and keyword arguments" +msgstr "no se pueden mezclar argumentos posicionales y palabras clave" + +#: macro.c:1157 +msgid "too many positional arguments" +msgstr "demasiados argumentos posicionales" + +#: 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:1323 +#, c-format +msgid "Attempt to purge non-existing macro `%s'" +msgstr "Intentaba purgar macro inexistente «%s»" + +#: macro.c:1344 +msgid "unexpected end of file in irp or irpc" +msgstr "final de fichero inesperado en irp o irpc" + +#: macro.c:1355 +msgid "missing model parameter" +msgstr "ausente el parámetro modelo" + +#: messages.c:92 +#, c-format +msgid "Assembler messages:\n" +msgstr "Mensajes del ensamblador:\n" + +#: messages.c:329 +#, c-format +msgid "Fatal error: " +msgstr "Error fatal: " + +#: messages.c:351 +#, c-format +msgid "Internal error (%s).\n" +msgstr "Error interno (%s).\n" + +#: 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:355 +#, c-format +msgid "Internal error at %s:%d.\n" +msgstr "Error interno en %s:%d.\n" + +#: messages.c:358 +#, c-format +msgid "Please report this bug.\n" +msgstr "Por favor reporte este bicho.\n" + +#: 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)" + +#. 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: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: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:44 +#, c-format +msgid "selected target format '%s' unknown" +msgstr "formato de objetivo seleccionado «%s» desconocido" + +#: output-file.c:46 +#, c-format +msgid "can't create %s: %s" +msgstr "no se puede crear %s: %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 tabla de pseudo-operadores %s: %s" + +#: read.c:768 +msgid "cannot change section or subsection inside .bundle_lock" +msgstr "" + +#: 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:793 +#, c-format +msgid "single instruction is %u bytes long, but .bundle_align_mode limit is %u bytes" +msgstr "la instrucción simple es %u bytes largos, pero límite .bundle_align_mode es %u bytes" + +#: 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: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:1276 +#, c-format +msgid "unknown pseudo-op: `%s'" +msgstr "pseudo-operador desconocido: «%s»" + +#: read.c:1329 +msgid "unable to continue with assembly." +msgstr "incapaz de continuar con ensamblador." + +#: read.c:1363 +#, c-format +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:1435 +msgid ".bundle_lock with no matching .bundle_unlock" +msgstr "directiva .bundle_lock sin una coincidencia .bundle_unlock" + +#: read.c:1535 +msgid ".abort detected. Abandoning ship." +msgstr "se detectó .abort. Se abandona la nave." + +#: read.c:1597 +#, c-format +msgid "alignment too large: %u assumed" +msgstr "alineamiento es muy grande: %u asumido" + +#: read.c:1629 +msgid "expected fill pattern missing" +msgstr "ausente el patrón de relleno esperado" + +#: read.c:1654 +#, c-format +msgid "fill pattern too long, truncating to %u" +msgstr "" + +#: read.c:1755 +msgid "symbol name not recognised in the current locale" +msgstr "" + +#. Some of the back ends can't deal with non-positive line numbers. +#. Besides, it's silly. GCC however will generate a line number of +#. zero when it is pre-processing builtins for assembler-with-cpp files: +#. +#. # 0 "<built-in>" +#. +#. 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: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:2142 +#, c-format +msgid "incompatible flag %i in line directive" +msgstr "opción incompatible %i en la directriz de línea" + +#: 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:2197 +msgid "start address not supported" +msgstr "no se admite la dirección de inicio" + +#: read.c:2206 +msgid ".err encountered" +msgstr "se encontró .err" + +#: read.c:2222 +msgid ".error directive invoked in source file" +msgstr "se invocó la directiva .error en el fichero fuente" + +#: read.c:2223 +msgid ".warning directive invoked in source file" +msgstr "se invocó la directiva .warning en el fichero fuente" + +#: read.c:2229 +#, c-format +msgid "%s argument must be a string" +msgstr "argumento %s debe ser una cadena textual" + +#: read.c:2261 read.c:2263 +#, c-format +msgid ".fail %ld encountered" +msgstr "encontrado .fail %ld" + +#: read.c:2303 +#, c-format +msgid ".fill size clamped to %d" +msgstr "tamaño .fill restringido a %d" + +#: read.c:2308 +msgid "size negative; .fill ignored" +msgstr "tamaño negativo; se descarta .fill" + +#: read.c:2314 +msgid "repeat < 0; .fill ignored" +msgstr "repetición < 0; se descarta .fill" + +#: read.c:2321 +msgid "non-constant fill count for absolute section" +msgstr "contador de relleno no constante para sección absoluta" + +#: 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: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:2498 +#, c-format +msgid "unrecognized .linkonce type `%s'" +msgstr "no reconocido tipo .linkonce «%s»" + +#: 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:2605 +msgid "expected alignment after size" +msgstr "se esperaba alineamiento tras tamaño" + +#: read.c:2818 +#, c-format +msgid "attempt to redefine pseudo-op `%s' ignored" +msgstr "intenta redefinir pseudo-operador «%s» descartado" + +#: 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:2893 +#, c-format +msgid "invalid segment \"%s\"" +msgstr "segmento no válido «%s»" + +#: read.c:2901 +msgid "only constant offsets supported in absolute section" +msgstr "solo se admiten los desplazamientos constantes en la sección absoluta" + +#: read.c:2944 +msgid "MRI style ORG pseudo-op not supported" +msgstr "MRI de estilo ORG pseudo-operador no apoyado" + +#: read.c:3115 +#, c-format +msgid ".end%c encountered without preceding %s" +msgstr "se encontró .end%c sin un %s precedente" + +#: 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:3156 +#, c-format +msgid "%s without %s" +msgstr "%s sin %s" + +#: 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:3477 +#, c-format +msgid "size value for space directive too large: %lx" +msgstr "" + +#: 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: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: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: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: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: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: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: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:4278 +msgid "unexpected `\"' in expression" +msgstr "`«' o `»' inesperada dentro de expresión" + +#: read.c:4291 +msgid "rva without symbol" +msgstr "rva sin símbolo" + +#: read.c:4366 +msgid "missing or bad offset expression" +msgstr "expresión de desplazamiento ausentente o incorrecta" + +#: read.c:4390 +msgid "missing reloc type" +msgstr "ausente el tipo reubicado" + +#: read.c:4414 +msgid "unrecognized reloc type" +msgstr "no reconocido el tipo reubicado" + +#: read.c:4430 +msgid "bad reloc expression" +msgstr "expresión de reubicación incorrecta" + +#: 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: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: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»" + +#. 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: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: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:4982 +msgid "floating point constant too large" +msgstr "constante de coma flotante demasiado grande" + +#: read.c:5047 +msgid "attempt to store float in absolute section" +msgstr "trata almacenar flotante en sección absoluta" + +#: 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: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:5965 +msgid "strings must be placed into a section" +msgstr "las cadenas se deben colocar en una sección" + +#: 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:6073 read.c:6160 +msgid "unterminated string; newline inserted" +msgstr "cadena sin terminar; se insertó una línea nueva" + +#: read.c:6174 +msgid "bad escaped character in string" +msgstr "carácter escapado incorrectamente en la cadena" + +#: read.c:6198 +msgid "expected address expression" +msgstr "se esperaba una expresión direccional" + +#: read.c:6217 +#, c-format +msgid "symbol \"%s\" undefined; zero assumed" +msgstr "símbolo indefinido «%s»; se asume cero" + +#: read.c:6220 +msgid "some symbol undefined; zero assumed" +msgstr "algunos símbolos sin definir; se asumen cero" + +#: read.c:6254 +msgid "this string may not contain '\\0'" +msgstr "esta cadena no puede contener '\\0'" + +#: read.c:6291 +msgid "missing string" +msgstr "falta cadena" + +#: read.c:6406 +#, c-format +msgid ".incbin count zero, ignoring `%s'" +msgstr "la cuenta .incbin es cero, se descarta «%s»" + +#: read.c:6418 +#, c-format +msgid "file not found: %s" +msgstr "no se encontró el fichero: %s" + +#: 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: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: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:6464 +#, c-format +msgid "truncated file `%s', %ld of %ld bytes read" +msgstr "fichero «%s» truncado, leyeron %ld de %ld bytes" + +#: read.c:6601 +msgid "missing .func" +msgstr "ausente .func" + +#: read.c:6620 +msgid ".endfunc missing for previous .func" +msgstr "ausente .endfunc para el .func previo" + +#: 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:6678 +msgid "cannot change .bundle_align_mode inside .bundle_lock" +msgstr "" + +#: read.c:6692 +msgid ".bundle_lock is meaningless without .bundle_align_mode" +msgstr "" + +#: read.c:6713 +msgid ".bundle_unlock without preceding .bundle_lock" +msgstr "directiva .bundle_unlock sin precedente .bundle_lock" + +#: read.c:6726 +#, c-format +msgid ".bundle_lock sequence is %u bytes, but bundle size is only %u bytes" +msgstr "" + +#: read.c:6825 +#, c-format +msgid "missing closing `%c'" +msgstr "ausente de cierre `%c'" + +#: read.c:6827 +msgid "stray `\\'" +msgstr "basura `\\'" + +#: remap.c:53 +#, c-format +msgid "invalid argument '%s' to -fdebug-prefix-map" +msgstr "argumento «%s» inválido para -fdebug-prefix-map" + +#: 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: falta coma" + +#: stabs.c:263 +#, fuzzy, c-format +#| msgid "missing string" +msgid ".stab%c: missing string" +msgstr "falta 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: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:436 +msgid "comma missing in .xstabs" +msgstr "falta coma en .xstabs" + +#: 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: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:1257 +#, c-format +msgid "invalid operands (%s and %s sections) for `%s'" +msgstr "operandos inválidos (secciones %s y %s) para «%s»" + +#: symbols.c:1261 +#, c-format +msgid "invalid operand (%s section) for `%s'" +msgstr "operando inválido (sección %s) para «%s»" + +#: 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: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:1341 +#, c-format +msgid "symbol definition loop encountered at `%s'" +msgstr "definición de símbolo encontrada en bucle en `%s'" + +#: 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: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:1777 +msgid "Invalid operation on symbol" +msgstr "Operación no válida en símbolo" + +#: 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: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: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: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: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:2687 +#, c-format +msgid "Accessing `%s' as thread-local object" +msgstr "Se accede «%s» como un objeto de hilo local" + +#: 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: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:452 +#, c-format +msgid "leb128 operand is an undefined symbol: %s" +msgstr "operando lib128 es un símbolo indefinido: %s" + +#: 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:734 +msgid "invalid reloc expression" +msgstr "expresión de reubicación no válida" + +#: 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: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:1201 +msgid "redefined symbol cannot be used on reloc" +msgstr "un símbolo redefinido no se puede usar en la reubicación" + +#: write.c:1214 +msgid "relocation out of range" +msgstr "reubicación fuera de rango" + +#: write.c:1217 +#, c-format +msgid "%s:%u: bad return from bfd_install_relocation: %x" +msgstr "%s:%u: devolución incorrecta de bfd_install_relocation: %x" + +#: 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:1317 +msgid "internal error: fixup not contained within frag" +msgstr "error interno: la compostura no está contenida en un fragmento" + +#: write.c:1463 write.c:1579 +msgid "can't extend frag" +msgstr "no se pueden extender el fragmento" + +#: 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: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:1976 +#, fuzzy +#| msgid "Unable to use @plt relocation for insn %s" +msgid "unable to create reloc for build note" +msgstr "No se ha podido 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:2405 +#, c-format +msgid "local label `%s' is not defined" +msgstr "la etiqueta local «%s» no está definida" + +#: 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: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:2921 +#, c-format +msgid ".word %s-%s+%s didn't fit" +msgstr "no cabe .word %s-%s+%s" + +#: write.c:3013 +msgid "padding added" +msgstr "se añadió relleno" + +#: write.c:3064 +msgid "attempt to move .org backwards" +msgstr "se intentó mover .org hacia atrás" + +#: 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: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: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" @@ -1235,7 +1235,7 @@ read_a_source_file (const char *name) || pop->poc_handler == s_globl || pop->poc_handler == s_ignore))) { - do_align (1, (char *) NULL, 0, 0); + do_align (1, NULL, 0, 0); mri_pending_align = 0; if (line_label != NULL) @@ -1296,7 +1296,7 @@ read_a_source_file (const char *name) if (mri_pending_align) { - do_align (1, (char *) NULL, 0, 0); + do_align (1, NULL, 0, 0); mri_pending_align = 0; if (line_label != NULL) { @@ -1623,7 +1623,7 @@ s_align (signed int arg, int bytes_p) { if (arg < 0) as_warn (_("expected fill pattern missing")); - do_align (align, (char *) NULL, 0, max); + do_align (align, NULL, 0, max); } else { @@ -1856,7 +1856,7 @@ s_comm_internal (int param, symbolP = (*comm_parse_extra) (param, symbolP, size); else { - S_SET_VALUE (symbolP, (valueT) size); + S_SET_VALUE (symbolP, size); S_SET_EXTERNAL (symbolP); S_SET_SEGMENT (symbolP, bfd_com_section_ptr); } @@ -1993,7 +1993,7 @@ s_data (int ignore ATTRIBUTE_UNUSED) else section = data_section; - subseg_set (section, (subsegT) temp); + subseg_set (section, temp); demand_empty_rest_of_line (); } @@ -2395,10 +2395,8 @@ s_fill (int ignore ATTRIBUTE_UNUSED) if (rep_exp.X_op == O_constant) { - p = frag_var (rs_fill, (int) size, (int) size, - (relax_substateT) 0, (symbolS *) 0, - (offsetT) rep_exp.X_add_number, - (char *) 0); + p = frag_var (rs_fill, size, size, 0, NULL, + rep_exp.X_add_number, NULL); } else { @@ -2422,11 +2420,10 @@ s_fill (int ignore ATTRIBUTE_UNUSED) rep_sym = make_expr_symbol (&rep_exp); } - p = frag_var (rs_space, (int) size, (int) size, - (relax_substateT) 0, rep_sym, (offsetT) 0, (char *) 0); + p = frag_var (rs_space, size, size, 0, rep_sym, 0, NULL); } - memset (p, 0, (unsigned int) size); + memset (p, 0, size); /* The magic number BSD_FILL_SIZE_CROCK_4 is from BSD 4.2 VAX flavoured AS. The following bizarre behaviour is to be @@ -2437,7 +2434,7 @@ s_fill (int ignore ATTRIBUTE_UNUSED) md_number_to_chars (p, fill, (size > BSD_FILL_SIZE_CROCK_4 ? BSD_FILL_SIZE_CROCK_4 - : (int) size)); + : size)); /* Note: .fill (),0 emits no frag (since we are asked to .fill 0 bytes) but emits no error message because it seems a legal thing to do. It is a degenerate case of .fill but could be emitted by a @@ -2763,7 +2760,7 @@ s_lsym (int ignore ATTRIBUTE_UNUSED) (exp.X_op == O_constant ? absolute_section : reg_section)); - S_SET_VALUE (symbolP, (valueT) exp.X_add_number); + S_SET_VALUE (symbolP, exp.X_add_number); } else { @@ -2972,7 +2969,7 @@ do_org (segT segment, expressionS *exp, int fill) off = 0; } - p = frag_var (rs_org, 1, 1, (relax_substateT) 0, sym, off, (char *) 0); + p = frag_var (rs_org, 1, 1, 0, sym, off, NULL); *p = fill; } } @@ -3177,7 +3174,7 @@ s_rept (int expand_count) { size_t count; - count = (size_t) get_absolute_expression (); + count = get_absolute_expression (); do_repeat (count, "REPT", "ENDR", expand_count ? "" : NULL); } @@ -3485,7 +3482,7 @@ s_space (int mult) } else { - do_align (1, (char *) NULL, 0, 0); + do_align (1, NULL, 0, 0); if (line_label != NULL) { symbol_set_frag (line_label, frag_now); @@ -3591,8 +3588,7 @@ s_space (int mult) } if (!need_pass_2) - p = frag_var (rs_fill, 1, 1, (relax_substateT) 0, (symbolS *) 0, - (offsetT) total, (char *) 0); + p = frag_var (rs_fill, 1, 1, 0, NULL, total, NULL); } else { @@ -3609,8 +3605,7 @@ s_space (int mult) } if (!need_pass_2) - p = frag_var (rs_space, 1, 1, (relax_substateT) 0, - make_expr_symbol (&exp), (offsetT) 0, (char *) 0); + p = frag_var (rs_space, 1, 1, 0, make_expr_symbol (&exp), 0, NULL); } if ((val.X_op != O_constant || val.X_add_number != 0) && in_bss ()) @@ -3900,7 +3895,7 @@ s_float_space (int float_type) char *p; p = frag_more (flen); - memcpy (p, temp, (unsigned int) flen); + memcpy (p, temp, flen); } demand_empty_rest_of_line (); @@ -3938,7 +3933,7 @@ s_text (int ignore ATTRIBUTE_UNUSED) int temp; temp = get_absolute_expression (); - subseg_set (text_section, (subsegT) temp); + subseg_set (text_section, temp); demand_empty_rest_of_line (); } @@ -4336,7 +4331,7 @@ cons_worker (int nbytes, /* 1=.byte, 2=.word, 4=.long. */ #ifdef TC_M68K if (flag_m68k_mri) - parse_mri_cons (&exp, (unsigned int) nbytes); + parse_mri_cons (&exp, nbytes); else #endif { @@ -4348,7 +4343,7 @@ cons_worker (int nbytes, /* 1=.byte, 2=.word, 4=.long. */ return; } #endif - ret = TC_PARSE_CONS_EXPRESSION (&exp, (unsigned int) nbytes); + ret = TC_PARSE_CONS_EXPRESSION (&exp, nbytes); } if (rva) @@ -4358,7 +4353,7 @@ cons_worker (int nbytes, /* 1=.byte, 2=.word, 4=.long. */ else as_fatal (_("rva without symbol")); } - emit_expr_with_reloc (&exp, (unsigned int) nbytes, ret); + emit_expr_with_reloc (&exp, nbytes, ret); #ifdef TC_CONS_FIX_CHECK TC_CONS_FIX_CHECK (&exp, nbytes, *cur_fix); #endif @@ -4564,7 +4559,7 @@ emit_expr_with_reloc (expressionS *exp, && nbytes == 2 && exp->X_op == O_constant && (exp->X_add_number == -1 || exp->X_add_number == 0xffff)) - listing_source_line ((unsigned int) dwarf_line); + listing_source_line (dwarf_line); else if (nbytes == 4 && exp->X_op == O_constant && exp->X_add_number >= 0) @@ -4641,7 +4636,7 @@ emit_expr_with_reloc (expressionS *exp, /* We can ignore any carry out, because it will be handled by extra_digit if it is needed. */ - extra_digit = (valueT) -1; + extra_digit = -1; op = O_big; } @@ -4677,7 +4672,7 @@ emit_expr_with_reloc (expressionS *exp, as_bad (_("attempt to store non-zero value in section `%s'"), segment_name (now_seg)); - p = frag_more ((int) nbytes); + p = frag_more (nbytes); if (reloc != TC_PARSE_CONS_RETURN_NONE) { @@ -4754,7 +4749,7 @@ emit_expr_with_reloc (expressionS *exp, (uint64_t) get, (uint64_t) use); } /* Put bytes in right order. */ - md_number_to_chars (p, use, (int) nbytes); + md_number_to_chars (p, use, nbytes); } else if (op == O_big) { @@ -4803,7 +4798,7 @@ emit_expr_with_reloc (expressionS *exp, if (nbytes == 1) { - md_number_to_chars (p, (valueT) generic_bignum[0], 1); + md_number_to_chars (p, generic_bignum[0], 1); return; } know (nbytes % CHARS_PER_LITTLENUM == 0); @@ -4821,7 +4816,7 @@ emit_expr_with_reloc (expressionS *exp, while (size >= CHARS_PER_LITTLENUM) { --nums; - md_number_to_chars (p, (valueT) *nums, CHARS_PER_LITTLENUM); + md_number_to_chars (p, *nums, CHARS_PER_LITTLENUM); size -= CHARS_PER_LITTLENUM; p += CHARS_PER_LITTLENUM; } @@ -4831,7 +4826,7 @@ emit_expr_with_reloc (expressionS *exp, nums = generic_bignum; while (size >= CHARS_PER_LITTLENUM) { - md_number_to_chars (p, (valueT) *nums, CHARS_PER_LITTLENUM); + md_number_to_chars (p, *nums, CHARS_PER_LITTLENUM); ++nums; size -= CHARS_PER_LITTLENUM; p += CHARS_PER_LITTLENUM; @@ -5163,7 +5158,7 @@ float_cons (/* Clobbers input_line-pointer, checks end-of-line. */ while (--count >= 0) { p = frag_more (length); - memcpy (p, temp, (unsigned int) length); + memcpy (p, temp, length); } } SKIP_WHITESPACE (); @@ -5233,7 +5228,7 @@ unsigned int sizeof_leb128 (valueT value, int sign) { if (sign) - return sizeof_sleb128 ((offsetT) value); + return sizeof_sleb128 (value); else return sizeof_uleb128 (value); } @@ -5292,7 +5287,7 @@ unsigned int output_leb128 (char *p, valueT value, int sign) { if (sign) - return output_sleb128 (p, (offsetT) value); + return output_sleb128 (p, value); else return output_uleb128 (p, value); } @@ -5458,7 +5453,7 @@ emit_leb128_expr (expressionS *exp, int sign) /* Let check_eh_frame know that data is being emitted. nbytes == -1 is a signal that this is leb128 data. It shouldn't optimize this away. */ - nbytes = (unsigned int) -1; + nbytes = -1u; if (check_eh_frame (exp, &nbytes)) abort (); @@ -5506,7 +5501,7 @@ emit_leb128_expr (expressionS *exp, int sign) resolve things later. */ frag_var (rs_leb128, sizeof_uleb128 (~(valueT) 0), 0, sign, - make_expr_symbol (exp), 0, (char *) NULL); + make_expr_symbol (exp), 0, NULL); } } @@ -6298,7 +6293,7 @@ char /* Return terminator. */ get_absolute_expression_and_terminator (long *val_pointer /* Return value of expression. */) { /* FIXME: val_pointer should probably be offsetT *. */ - *val_pointer = (long) get_absolute_expression (); + *val_pointer = get_absolute_expression (); return (*input_line_pointer++); } @@ -6353,7 +6348,7 @@ demand_copy_string (int *lenP) /* JF this next line is so demand_copy_C_string will return a null terminated string. */ obstack_1grow (¬es, '\0'); - retval = (char *) obstack_finish (¬es); + retval = obstack_finish (¬es); } else { @@ -6362,7 +6357,7 @@ demand_copy_string (int *lenP) ignore_rest_of_line (); } *lenP = len; - return (retval); + return retval; } /* In: Input_line_pointer->next character. @@ -6572,7 +6567,7 @@ s_include (int arg ATTRIBUTE_UNUSED) } obstack_1grow (¬es, '\0'); - filename = (char *) obstack_finish (¬es); + filename = obstack_finish (¬es); while (!is_end_of_stmt (*input_line_pointer)) ++input_line_pointer; } diff --git a/gas/remap.c b/gas/remap.c index ecf77a1..842c930 100644 --- a/gas/remap.c +++ b/gas/remap.c @@ -78,7 +78,7 @@ remap_debug_filename (const char *filename) if (filename_ncmp (filename, map->old_prefix, map->old_len) == 0) { const char *name = filename + map->old_len; - return concat (map->new_prefix, name, NULL); + return concat (map->new_prefix, name, (const char *) NULL); } return xstrdup (filename); diff --git a/gas/stabs.c b/gas/stabs.c index 5f7b7fb..12b1267 100644 --- a/gas/stabs.c +++ b/gas/stabs.c @@ -163,7 +163,7 @@ aout_process_stab (int what, const char *string, int type, int other, int desc) /* .stabd sets the name to NULL. Why? */ S_SET_NAME (symbol, NULL); symbol_set_frag (symbol, frag_now); - S_SET_VALUE (symbol, (valueT) frag_now_fix ()); + S_SET_VALUE (symbol, frag_now_fix ()); } symbol_append (symbol, symbol_lastP, &symbol_rootP, &symbol_lastP); @@ -323,7 +323,7 @@ s_stab_generic (int what, switch (type) { case N_SLINE: - listing_source_line ((unsigned int) desc); + listing_source_line (desc); break; case N_SO: case N_SOL: @@ -358,10 +358,10 @@ s_stab_generic (int what, /* At least for now, stabs in a special stab section are always output as 12 byte blocks of information. */ p = frag_more (8); - md_number_to_chars (p, (valueT) stroff, 4); - md_number_to_chars (p + 4, (valueT) type, 1); - md_number_to_chars (p + 5, (valueT) other, 1); - md_number_to_chars (p + 6, (valueT) desc, 2); + md_number_to_chars (p, stroff, 4); + md_number_to_chars (p + 4, type, 1); + md_number_to_chars (p + 5, other, 1); + md_number_to_chars (p + 6, desc, 2); if (what == 's' || what == 'n') { diff --git a/gas/subsegs.c b/gas/subsegs.c index bc80c85..8a5f7ac 100644 --- a/gas/subsegs.c +++ b/gas/subsegs.c @@ -132,7 +132,7 @@ subseg_set_rest (segT seg, subsegT subseg) { /* This should be the only code that creates a frchainS. */ - newP = (frchainS *) obstack_alloc (&frchains, sizeof (frchainS)); + newP = obstack_alloc (&frchains, sizeof (frchainS)); newP->frch_subseg = subseg; newP->fix_root = NULL; newP->fix_tail = NULL; diff --git a/gas/symbols.c b/gas/symbols.c index 6a4dea8..275d056 100644 --- a/gas/symbols.c +++ b/gas/symbols.c @@ -194,8 +194,8 @@ hash_symbol_entry (const void *e) static int eq_symbol_entry (const void *a, const void *b) { - const symbol_entry_t *ea = (const symbol_entry_t *) a; - const symbol_entry_t *eb = (const symbol_entry_t *) b; + const symbol_entry_t *ea = a; + const symbol_entry_t *eb = b; return (ea->sy.hash == eb->sy.hash && strcmp (ea->sy.name, eb->sy.name) == 0); @@ -464,7 +464,7 @@ local_symbol_make (const char *name, segT section, fragS *frag, valueT val) static symbolS * local_symbol_convert (void *sym) { - symbol_entry_t *ent = (symbol_entry_t *) sym; + symbol_entry_t *ent = sym; struct xsymbol *xtra; valueT val; @@ -491,7 +491,7 @@ static void define_sym_at_dot (symbolS *symbolP) { symbolP->frag = frag_now; - S_SET_VALUE (symbolP, (valueT) frag_now_fix ()); + S_SET_VALUE (symbolP, frag_now_fix ()); S_SET_SEGMENT (symbolP, now_seg); } @@ -531,13 +531,8 @@ colon (/* Just seen "x:" - rattle symbols & frags. */ + new_broken_words * md_long_jump_size); frag_tmp = frag_now; - frag_opcode = frag_var (rs_broken_word, - possible_bytes, - possible_bytes, - (relax_substateT) 0, - (symbolS *) broken_words, - (offsetT) 0, - NULL); + frag_opcode = frag_var (rs_broken_word, possible_bytes, possible_bytes, + 0, (symbolS *) broken_words, 0, NULL); /* We want to store the pointer to where to insert the jump table in the fr_opcode of the rs_broken_word frag. This @@ -631,11 +626,8 @@ colon (/* Just seen "x:" - rattle symbols & frags. */ If the new size is larger we just change its value. If the new size is smaller, we ignore this symbol. */ - if (S_GET_VALUE (symbolP) - < ((unsigned) frag_now_fix ())) - { - S_SET_VALUE (symbolP, (valueT) frag_now_fix ()); - } + if (S_GET_VALUE (symbolP) < frag_now_fix ()) + S_SET_VALUE (symbolP, frag_now_fix ()); } else { @@ -754,7 +746,7 @@ symbol_find_or_make (const char *name) symbol_table_insert (symbolP); } /* if symbol wasn't found */ - return (symbolP); + return symbolP; } symbolS * @@ -768,7 +760,7 @@ symbol_make (const char *name) if (!symbolP) symbolP = symbol_new (name, undefined_section, &zero_address_frag, 0); - return (symbolP); + return symbolP; } symbolS * @@ -2064,7 +2056,7 @@ static size_t fb_label_max; static void fb_label_init (void) { - memset ((void *) fb_low_counter, '\0', sizeof (fb_low_counter)); + memset (fb_low_counter, 0, sizeof (fb_low_counter)); } /* Add one to the instance number of this fb label. */ @@ -2177,10 +2169,10 @@ fb_label_name (unsigned int n, unsigned int augend) If the name wasn't generated by foo_label_name(), then return it unaltered. This is used for error messages. */ -char * -decode_local_label_name (char *s) +const char * +decode_local_label_name (const char *s) { - char *p; + const char *p; char *symbol_decode; unsigned int label_number; unsigned int instance_number; @@ -2249,7 +2241,7 @@ S_GET_VALUE_WHERE (symbolS *s, const char * file, unsigned int line) S_GET_NAME (s)); } } - return (valueT) s->x->value.X_add_number; + return s->x->value.X_add_number; } valueT @@ -2370,7 +2362,7 @@ int S_IS_DEFINED (const symbolS *s) { if (s->flags.local_symbol) - return ((struct local_symbol *) s)->section != undefined_section; + return ((const struct local_symbol *) s)->section != undefined_section; return s->bsym->section != undefined_section; } @@ -2387,7 +2379,7 @@ S_FORCE_RELOC (const symbolS *s, int strict) { segT sec; if (s->flags.local_symbol) - sec = ((struct local_symbol *) s)->section; + sec = ((const struct local_symbol *) s)->section; else { if ((strict @@ -2461,7 +2453,7 @@ int S_CAN_BE_REDEFINED (const symbolS *s) { if (s->flags.local_symbol) - return (((struct local_symbol *) s)->frag + return (((const struct local_symbol *) s)->frag == &predefined_address_frag); /* Permit register names to be redefined. */ return s->x->value.X_op == O_register; @@ -2493,7 +2485,7 @@ segT S_GET_SEGMENT (const symbolS *s) { if (s->flags.local_symbol) - return ((struct local_symbol *) s)->section; + return ((const struct local_symbol *) s)->section; return s->bsym->section; } diff --git a/gas/symbols.h b/gas/symbols.h index 7524e2f..75d014c 100644 --- a/gas/symbols.h +++ b/gas/symbols.h @@ -54,7 +54,7 @@ notes_memdup0 (const char *in, size_t len) char * symbol_relc_make_expr (expressionS *); char * symbol_relc_make_sym (symbolS *); char * symbol_relc_make_value (offsetT); -char *decode_local_label_name (char *s); +const char *decode_local_label_name (const char *); symbolS *symbol_find (const char *name); symbolS *symbol_find_noref (const char *name, int noref); symbolS *symbol_find_exact (const char *name); diff --git a/gas/testsuite/gas/aarch64/illegal-bfloat16.l b/gas/testsuite/gas/aarch64/illegal-bfloat16.l index e513c3c..6bce84e 100644 --- a/gas/testsuite/gas/aarch64/illegal-bfloat16.l +++ b/gas/testsuite/gas/aarch64/illegal-bfloat16.l @@ -10,15 +10,11 @@ [^ :]+:[0-9]+: Error: operand mismatch -- `bfmmla z0\.s,z1\.h,z2\.s' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: bfmmla z0\.s, z1\.h, z2\.h -[^ :]+:[0-9]+: Error: operand mismatch -- `bfcvt z0\.h,p1/z,z2\.s' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: bfcvt z0\.h, p1/m, z2\.s +[^ :]+:[0-9]+: Error: selected processor does not support `bfcvt z0\.h,p1/z,z2\.s' [^ :]+:[0-9]+: Error: operand mismatch -- `bfcvt z0\.h,p1/m,z2\.h' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: bfcvt z0\.h, p1/m, z2\.s -[^ :]+:[0-9]+: Error: operand mismatch -- `bfcvtnt z0\.h,p1/z,z2\.s' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: bfcvtnt z0\.h, p1/m, z2\.s +[^ :]+:[0-9]+: Error: selected processor does not support `bfcvtnt z0\.h,p1/z,z2\.s' [^ :]+:[0-9]+: Error: operand mismatch -- `bfcvtnt z0\.h,p1/m,z2\.h' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: bfcvtnt z0\.h, p1/m, z2\.s diff --git a/gas/testsuite/gas/aarch64/illegal-sve2.l b/gas/testsuite/gas/aarch64/illegal-sve2.l index b5e1662..ca13c44 100644 --- a/gas/testsuite/gas/aarch64/illegal-sve2.l +++ b/gas/testsuite/gas/aarch64/illegal-sve2.l @@ -280,18 +280,14 @@ [^ :]+:[0-9]+: Error: operand mismatch -- `fcvtlt z0\.s,p0/m,z0\.s' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: fcvtlt z0\.d, p0/m, z0\.s -[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtlt z0\.s,p0/z,z0\.h' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: fcvtlt z0\.s, p0/m, z0\.h +[^ :]+:[0-9]+: Error: selected processor does not support `fcvtlt z0\.s,p0/z,z0\.h' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `fcvtlt z32\.d,p0/m,z0\.s' [^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `fcvtlt z0\.d,p8/m,z0\.s' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `fcvtlt z0\.d,p0/m,z32\.s' [^ :]+:[0-9]+: Error: operand mismatch -- `fcvtlt z0\.d,p0/m,z0\.d' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: fcvtlt z0\.d, p0/m, z0\.s -[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtlt z0\.d,p0/z,z0\.s' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: fcvtlt z0\.d, p0/m, z0\.s +[^ :]+:[0-9]+: Error: selected processor does not support `fcvtlt z0\.d,p0/z,z0\.s' [^ :]+:[0-9]+: Warning: SVE `movprfx' compatible instruction expected -- `fcvtnt z0\.h,p0/m,z0\.s' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `fcvtnt z32\.h,p0/m,z0\.s' [^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `fcvtnt z0\.h,p8/m,z0\.s' @@ -299,27 +295,21 @@ [^ :]+:[0-9]+: Error: operand mismatch -- `fcvtnt z0\.h,p0/m,z0\.h' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: fcvtnt z0\.h, p0/m, z0\.s -[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtnt z0\.h,p0/z,z0\.s' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: fcvtnt z0\.h, p0/m, z0\.s +[^ :]+:[0-9]+: Error: selected processor does not support `fcvtnt z0\.h,p0/z,z0\.s' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `fcvtnt z32\.s,p0/m,z0\.d' [^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `fcvtnt z0\.s,p8/m,z0\.d' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `fcvtnt z0\.s,p0/m,z32\.d' [^ :]+:[0-9]+: Error: operand mismatch -- `fcvtnt z0\.s,p0/m,z0\.s' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: fcvtnt z0\.s, p0/m, z0\.d -[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtnt z0\.s,p0/z,z0\.d' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: fcvtnt z0\.s, p0/m, z0\.d +[^ :]+:[0-9]+: Error: selected processor does not support `fcvtnt z0\.s,p0/z,z0\.d' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `fcvtx z32\.s,p0/m,z0\.d' [^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `fcvtx z0\.s,p8/m,z0\.d' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `fcvtx z0\.s,p0/m,z32\.d' [^ :]+:[0-9]+: Error: operand mismatch -- `fcvtx z0\.s,p0/m,z0\.s' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: fcvtx z0\.s, p0/m, z0\.d -[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtx z0\.s,p0/z,z0\.d' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: fcvtx z0\.s, p0/m, z0\.d +[^ :]+:[0-9]+: Error: selected processor does not support `fcvtx z0\.s,p0/z,z0\.d' [^ :]+:[0-9]+: Warning: register size not compatible with previous `movprfx' at operand 1 -- `fcvtx z0\.s,p0/m,z2\.d' [^ :]+:[0-9]+: Warning: SVE `movprfx' compatible instruction expected -- `fcvtxnt z0\.s,p0/m,z0\.d' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `fcvtxnt z32\.s,p0/m,z0\.d' @@ -328,9 +318,7 @@ [^ :]+:[0-9]+: Error: operand mismatch -- `fcvtxnt z0\.s,p0/m,z0\.s' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: fcvtxnt z0\.s, p0/m, z0\.d -[^ :]+:[0-9]+: Error: operand mismatch -- `fcvtxnt z0\.s,p0/z,z0\.d' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: fcvtxnt z0\.s, p0/m, z0\.d +[^ :]+:[0-9]+: Error: selected processor does not support `fcvtxnt z0\.s,p0/z,z0\.d' [^ :]+:[0-9]+: Error: operand mismatch -- `flogb z0\.b,p0/m,z0\.b' [^ :]+:[0-9]+: Info: did you mean this\? [^ :]+:[0-9]+: Info: flogb z0\.h, p0/m, z0\.h @@ -343,12 +331,7 @@ [^ :]+:[0-9]+: Info: other valid variant\(s\): [^ :]+:[0-9]+: Info: flogb z0\.s, p0/m, z0\.s [^ :]+:[0-9]+: Info: flogb z0\.d, p0/m, z0\.d -[^ :]+:[0-9]+: Error: operand mismatch -- `flogb z0\.h,p0/z,z0\.h' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: flogb z0\.h, p0/m, z0\.h -[^ :]+:[0-9]+: Info: other valid variant\(s\): -[^ :]+:[0-9]+: Info: flogb z0\.s, p0/m, z0\.s -[^ :]+:[0-9]+: Info: flogb z0\.d, p0/m, z0\.d +[^ :]+:[0-9]+: Error: selected processor does not support `flogb z0\.h,p0/z,z0\.h' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `flogb z32\.h,p0/m,z0\.h' [^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `flogb z0\.h,p8/m,z0\.h' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `flogb z0\.h,p0/m,z32\.h' @@ -1302,13 +1285,7 @@ [^ :]+:[0-9]+: Info: sqabs z0\.h, p0/m, z0\.h [^ :]+:[0-9]+: Info: sqabs z0\.s, p0/m, z0\.s [^ :]+:[0-9]+: Info: sqabs z0\.d, p0/m, z0\.d -[^ :]+:[0-9]+: Error: operand mismatch -- `sqabs z0\.b,p0/z,z0\.b' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: sqabs z0\.b, p0/m, z0\.b -[^ :]+:[0-9]+: Info: other valid variant\(s\): -[^ :]+:[0-9]+: Info: sqabs z0\.h, p0/m, z0\.h -[^ :]+:[0-9]+: Info: sqabs z0\.s, p0/m, z0\.s -[^ :]+:[0-9]+: Info: sqabs z0\.d, p0/m, z0\.d +[^ :]+:[0-9]+: Error: selected processor does not support `sqabs z0\.b,p0/z,z0\.b' [^ :]+:[0-9]+: Error: expected a register at operand 1 -- `sqadd z32\.b,p0/m,z0\.b,z0\.b' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 3 -- `sqadd z0\.b,p0/m,z32\.b,z0\.b' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 4 -- `sqadd z0\.b,p0/m,z0\.b,z32\.b' @@ -1555,13 +1532,7 @@ [^ :]+:[0-9]+: Info: sqneg z0\.h, p0/m, z0\.h [^ :]+:[0-9]+: Info: sqneg z0\.s, p0/m, z0\.s [^ :]+:[0-9]+: Info: sqneg z0\.d, p0/m, z0\.d -[^ :]+:[0-9]+: Error: operand mismatch -- `sqneg z0\.b,p0/z,z0\.b' -[^ :]+:[0-9]+: Info: did you mean this\? -[^ :]+:[0-9]+: Info: sqneg z0\.b, p0/m, z0\.b -[^ :]+:[0-9]+: Info: other valid variant\(s\): -[^ :]+:[0-9]+: Info: sqneg z0\.h, p0/m, z0\.h -[^ :]+:[0-9]+: Info: sqneg z0\.s, p0/m, z0\.s -[^ :]+:[0-9]+: Info: sqneg z0\.d, p0/m, z0\.d +[^ :]+:[0-9]+: Error: selected processor does not support `sqneg z0\.b,p0/z,z0\.b' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `sqrdcmlah z32\.h,z0\.h,z0\.h\[0\],#0' [^ :]+:[0-9]+: Error: expected an SVE vector register at operand 2 -- `sqrdcmlah z0\.h,z32\.h,z0\.h\[0\],#0' [^ :]+:[0-9]+: Error: z0-z7 expected at operand 3 -- `sqrdcmlah z0\.h,z0\.h,z8\.h\[0\],#0' diff --git a/gas/testsuite/gas/aarch64/sme2p2.d b/gas/testsuite/gas/aarch64/sme2p2.d new file mode 100644 index 0000000..5bcac53 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2p2.d @@ -0,0 +1,57 @@ +#as: -march=armv8-a+sme2p2 +#objdump: -dr + +.*: file format .* + + +Disassembly of section \.text: + +0+ <\.text>: + *[0-9a-f]+: c160e800 fmul {z0\.h-z1\.h}, {z0\.h-z1\.h}, z0\.h + *[0-9a-f]+: c160e81e fmul {z30\.h-z31\.h}, {z0\.h-z1\.h}, z0\.h + *[0-9a-f]+: c160ebc0 fmul {z0\.h-z1\.h}, {z30\.h-z31\.h}, z0\.h + *[0-9a-f]+: c17ee800 fmul {z0\.h-z1\.h}, {z0\.h-z1\.h}, z15\.h + *[0-9a-f]+: c1a0e800 fmul {z0\.s-z1\.s}, {z0\.s-z1\.s}, z0\.s + *[0-9a-f]+: c1a0e81e fmul {z30\.s-z31\.s}, {z0\.s-z1\.s}, z0\.s + *[0-9a-f]+: c1a0ebc0 fmul {z0\.s-z1\.s}, {z30\.s-z31\.s}, z0\.s + *[0-9a-f]+: c1bee800 fmul {z0\.s-z1\.s}, {z0\.s-z1\.s}, z15\.s + *[0-9a-f]+: c1e0e800 fmul {z0\.d-z1\.d}, {z0\.d-z1\.d}, z0\.d + *[0-9a-f]+: c1e0e81e fmul {z30\.d-z31\.d}, {z0\.d-z1\.d}, z0\.d + *[0-9a-f]+: c1e0ebc0 fmul {z0\.d-z1\.d}, {z30\.d-z31\.d}, z0\.d + *[0-9a-f]+: c1fee800 fmul {z0\.d-z1\.d}, {z0\.d-z1\.d}, z15\.d + *[0-9a-f]+: c161e800 fmul {z0\.h-z3\.h}, {z0\.h-z3\.h}, z0\.h + *[0-9a-f]+: c161e81c fmul {z28\.h-z31\.h}, {z0\.h-z3\.h}, z0\.h + *[0-9a-f]+: c161eb80 fmul {z0\.h-z3\.h}, {z28\.h-z31\.h}, z0\.h + *[0-9a-f]+: c17fe800 fmul {z0\.h-z3\.h}, {z0\.h-z3\.h}, z15\.h + *[0-9a-f]+: c1a1e800 fmul {z0\.s-z3\.s}, {z0\.s-z3\.s}, z0\.s + *[0-9a-f]+: c1a1e81c fmul {z28\.s-z31\.s}, {z0\.s-z3\.s}, z0\.s + *[0-9a-f]+: c1a1eb80 fmul {z0\.s-z3\.s}, {z28\.s-z31\.s}, z0\.s + *[0-9a-f]+: c1bfe800 fmul {z0\.s-z3\.s}, {z0\.s-z3\.s}, z15\.s + *[0-9a-f]+: c1e1e800 fmul {z0\.d-z3\.d}, {z0\.d-z3\.d}, z0\.d + *[0-9a-f]+: c1e1e81c fmul {z28\.d-z31\.d}, {z0\.d-z3\.d}, z0\.d + *[0-9a-f]+: c1e1eb80 fmul {z0\.d-z3\.d}, {z28\.d-z31\.d}, z0\.d + *[0-9a-f]+: c1ffe800 fmul {z0\.d-z3\.d}, {z0\.d-z3\.d}, z15\.d + *[0-9a-f]+: c160e400 fmul {z0\.h-z1\.h}, {z0\.h-z1\.h}, {z0\.h-z1\.h} + *[0-9a-f]+: c160e41e fmul {z30\.h-z31\.h}, {z0\.h-z1\.h}, {z0\.h-z1\.h} + *[0-9a-f]+: c160e7c0 fmul {z0\.h-z1\.h}, {z30\.h-z31\.h}, {z0\.h-z1\.h} + *[0-9a-f]+: c17ee400 fmul {z0\.h-z1\.h}, {z0\.h-z1\.h}, {z30\.h-z31\.h} + *[0-9a-f]+: c1a0e400 fmul {z0\.s-z1\.s}, {z0\.s-z1\.s}, {z0\.s-z1\.s} + *[0-9a-f]+: c1a0e41e fmul {z30\.s-z31\.s}, {z0\.s-z1\.s}, {z0\.s-z1\.s} + *[0-9a-f]+: c1a0e7c0 fmul {z0\.s-z1\.s}, {z30\.s-z31\.s}, {z0\.s-z1\.s} + *[0-9a-f]+: c1bee400 fmul {z0\.s-z1\.s}, {z0\.s-z1\.s}, {z30\.s-z31\.s} + *[0-9a-f]+: c1e0e400 fmul {z0\.d-z1\.d}, {z0\.d-z1\.d}, {z0\.d-z1\.d} + *[0-9a-f]+: c1e0e41e fmul {z30\.d-z31\.d}, {z0\.d-z1\.d}, {z0\.d-z1\.d} + *[0-9a-f]+: c1e0e7c0 fmul {z0\.d-z1\.d}, {z30\.d-z31\.d}, {z0\.d-z1\.d} + *[0-9a-f]+: c1fee400 fmul {z0\.d-z1\.d}, {z0\.d-z1\.d}, {z30\.d-z31\.d} + *[0-9a-f]+: c161e400 fmul {z0\.h-z3\.h}, {z0\.h-z3\.h}, {z0\.h-z3\.h} + *[0-9a-f]+: c161e41c fmul {z28\.h-z31\.h}, {z0\.h-z3\.h}, {z0\.h-z3\.h} + *[0-9a-f]+: c161e780 fmul {z0\.h-z3\.h}, {z28\.h-z31\.h}, {z0\.h-z3\.h} + *[0-9a-f]+: c17de400 fmul {z0\.h-z3\.h}, {z0\.h-z3\.h}, {z28\.h-z31\.h} + *[0-9a-f]+: c1a1e400 fmul {z0\.s-z3\.s}, {z0\.s-z3\.s}, {z0\.s-z3\.s} + *[0-9a-f]+: c1a1e41c fmul {z28\.s-z31\.s}, {z0\.s-z3\.s}, {z0\.s-z3\.s} + *[0-9a-f]+: c1a1e780 fmul {z0\.s-z3\.s}, {z28\.s-z31\.s}, {z0\.s-z3\.s} + *[0-9a-f]+: c1bde400 fmul {z0\.s-z3\.s}, {z0\.s-z3\.s}, {z28\.s-z31\.s} + *[0-9a-f]+: c1e1e400 fmul {z0\.d-z3\.d}, {z0\.d-z3\.d}, {z0\.d-z3\.d} + *[0-9a-f]+: c1e1e41c fmul {z28\.d-z31\.d}, {z0\.d-z3\.d}, {z0\.d-z3\.d} + *[0-9a-f]+: c1e1e780 fmul {z0\.d-z3\.d}, {z28\.d-z31\.d}, {z0\.d-z3\.d} + *[0-9a-f]+: c1fde400 fmul {z0\.d-z3\.d}, {z0\.d-z3\.d}, {z28\.d-z31\.d} diff --git a/gas/testsuite/gas/aarch64/sme2p2.s b/gas/testsuite/gas/aarch64/sme2p2.s new file mode 100644 index 0000000..2c97733 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2p2.s @@ -0,0 +1,50 @@ + fmul {z0.h-z1.h}, {z0.h-z1.h}, z0.h + fmul {z30.h-z31.h}, {z0.h-z1.h}, z0.h + fmul {z0.h-z1.h}, {z30.h-z31.h}, z0.h + fmul {z0.h-z1.h}, {z0.h-z1.h}, z15.h + fmul {z0.s-z1.s}, {z0.s-z1.s}, z0.s + fmul {z30.s-z31.s}, {z0.s-z1.s}, z0.s + fmul {z0.s-z1.s}, {z30.s-z31.s}, z0.s + fmul {z0.s-z1.s}, {z0.s-z1.s}, z15.s + fmul {z0.d-z1.d}, {z0.d-z1.d}, z0.d + fmul {z30.d-z31.d}, {z0.d-z1.d}, z0.d + fmul {z0.d-z1.d}, {z30.d-z31.d}, z0.d + fmul {z0.d-z1.d}, {z0.d-z1.d}, z15.d + fmul {z0.h-z3.h}, {z0.h-z3.h}, z0.h + fmul {z28.h-z31.h}, {z0.h-z3.h}, z0.h + fmul {z0.h-z3.h}, {z28.h-z31.h}, z0.h + fmul {z0.h-z3.h}, {z0.h-z3.h}, z15.h + fmul {z0.s-z3.s}, {z0.s-z3.s}, z0.s + fmul {z28.s-z31.s}, {z0.s-z3.s}, z0.s + fmul {z0.s-z3.s}, {z28.s-z31.s}, z0.s + fmul {z0.s-z3.s}, {z0.s-z3.s}, z15.s + fmul {z0.d-z3.d}, {z0.d-z3.d}, z0.d + fmul {z28.d-z31.d}, {z0.d-z3.d}, z0.d + fmul {z0.d-z3.d}, {z28.d-z31.d}, z0.d + fmul {z0.d-z3.d}, {z0.d-z3.d}, z15.d + + fmul {z0.h-z1.h}, {z0.h-z1.h}, {z0.h-z1.h} + fmul {z30.h-z31.h}, {z0.h-z1.h}, {z0.h-z1.h} + fmul {z0.h-z1.h}, {z30.h-z31.h}, {z0.h-z1.h} + fmul {z0.h-z1.h}, {z0.h-z1.h}, {z30.h-z31.h} + fmul {z0.s-z1.s}, {z0.s-z1.s}, {z0.s-z1.s} + fmul {z30.s-z31.s}, {z0.s-z1.s}, {z0.s-z1.s} + fmul {z0.s-z1.s}, {z30.s-z31.s}, {z0.s-z1.s} + fmul {z0.s-z1.s}, {z0.s-z1.s}, {z30.s-z31.s} + fmul {z0.d-z1.d}, {z0.d-z1.d}, {z0.d-z1.d} + fmul {z30.d-z31.d}, {z0.d-z1.d}, {z0.d-z1.d} + fmul {z0.d-z1.d}, {z30.d-z31.d}, {z0.d-z1.d} + fmul {z0.d-z1.d}, {z0.d-z1.d}, {z30.d-z31.d} + fmul {z0.h-z3.h}, {z0.h-z3.h}, {z0.h-z3.h} + fmul {z28.h-z31.h}, {z0.h-z3.h}, {z0.h-z3.h} + fmul {z0.h-z3.h}, {z28.h-z31.h}, {z0.h-z3.h} + fmul {z0.h-z3.h}, {z0.h-z3.h}, {z28.h-z31.h} + fmul {z0.s-z3.s}, {z0.s-z3.s}, {z0.s-z3.s} + fmul {z28.s-z31.s}, {z0.s-z3.s}, {z0.s-z3.s} + fmul {z0.s-z3.s}, {z28.s-z31.s}, {z0.s-z3.s} + fmul {z0.s-z3.s}, {z0.s-z3.s}, {z28.s-z31.s} + fmul {z0.d-z3.d}, {z0.d-z3.d}, {z0.d-z3.d} + fmul {z28.d-z31.d}, {z0.d-z3.d}, {z0.d-z3.d} + fmul {z0.d-z3.d}, {z28.d-z31.d}, {z0.d-z3.d} + fmul {z0.d-z3.d}, {z0.d-z3.d}, {z28.d-z31.d} + diff --git a/gas/testsuite/gas/aarch64/sve2p2.d b/gas/testsuite/gas/aarch64/sve2p2.d new file mode 100644 index 0000000..f401cb4 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p2.d @@ -0,0 +1,694 @@ +#as: -march=armv8-a+sve2p2 +#as: -march=armv8-a+sme2p2 +#objdump: -dr + +.*: file format .* + + +Disassembly of section \.text: + +0+ <\.text>: + *[0-9a-f]+: 0406a000 abs z0\.b, p0/z, z0\.b + *[0-9a-f]+: 0406a01f abs z31\.b, p0/z, z0\.b + *[0-9a-f]+: 0406bc00 abs z0\.b, p7/z, z0\.b + *[0-9a-f]+: 0406a3e0 abs z0\.b, p0/z, z31\.b + *[0-9a-f]+: 0446a000 abs z0\.h, p0/z, z0\.h + *[0-9a-f]+: 0446a01f abs z31\.h, p0/z, z0\.h + *[0-9a-f]+: 0446bc00 abs z0\.h, p7/z, z0\.h + *[0-9a-f]+: 0446a3e0 abs z0\.h, p0/z, z31\.h + *[0-9a-f]+: 0486a000 abs z0\.s, p0/z, z0\.s + *[0-9a-f]+: 0486a01f abs z31\.s, p0/z, z0\.s + *[0-9a-f]+: 0486bc00 abs z0\.s, p7/z, z0\.s + *[0-9a-f]+: 0486a3e0 abs z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04c6a000 abs z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04c6a01f abs z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04c6bc00 abs z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04c6a3e0 abs z0\.d, p0/z, z31\.d + *[0-9a-f]+: 649ac000 bfcvt z0\.h, p0/z, z0\.s + *[0-9a-f]+: 649ac01f bfcvt z31\.h, p0/z, z0\.s + *[0-9a-f]+: 649adc00 bfcvt z0\.h, p7/z, z0\.s + *[0-9a-f]+: 649ac3e0 bfcvt z0\.h, p0/z, z31\.s + *[0-9a-f]+: 6482a000 bfcvtnt z0\.h, p0/z, z0\.s + *[0-9a-f]+: 6482a01f bfcvtnt z31\.h, p0/z, z0\.s + *[0-9a-f]+: 6482bc00 bfcvtnt z0\.h, p7/z, z0\.s + *[0-9a-f]+: 6482a3e0 bfcvtnt z0\.h, p0/z, z31\.s + *[0-9a-f]+: 0408a000 cls z0\.b, p0/z, z0\.b + *[0-9a-f]+: 0408a01f cls z31\.b, p0/z, z0\.b + *[0-9a-f]+: 0408bc00 cls z0\.b, p7/z, z0\.b + *[0-9a-f]+: 0408a3e0 cls z0\.b, p0/z, z31\.b + *[0-9a-f]+: 0448a000 cls z0\.h, p0/z, z0\.h + *[0-9a-f]+: 0448a01f cls z31\.h, p0/z, z0\.h + *[0-9a-f]+: 0448bc00 cls z0\.h, p7/z, z0\.h + *[0-9a-f]+: 0448a3e0 cls z0\.h, p0/z, z31\.h + *[0-9a-f]+: 0488a000 cls z0\.s, p0/z, z0\.s + *[0-9a-f]+: 0488a01f cls z31\.s, p0/z, z0\.s + *[0-9a-f]+: 0488bc00 cls z0\.s, p7/z, z0\.s + *[0-9a-f]+: 0488a3e0 cls z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04c8a000 cls z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04c8a01f cls z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04c8bc00 cls z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04c8a3e0 cls z0\.d, p0/z, z31\.d + *[0-9a-f]+: 0409a000 clz z0\.b, p0/z, z0\.b + *[0-9a-f]+: 0409a01f clz z31\.b, p0/z, z0\.b + *[0-9a-f]+: 0409bc00 clz z0\.b, p7/z, z0\.b + *[0-9a-f]+: 0409a3e0 clz z0\.b, p0/z, z31\.b + *[0-9a-f]+: 0449a000 clz z0\.h, p0/z, z0\.h + *[0-9a-f]+: 0449a01f clz z31\.h, p0/z, z0\.h + *[0-9a-f]+: 0449bc00 clz z0\.h, p7/z, z0\.h + *[0-9a-f]+: 0449a3e0 clz z0\.h, p0/z, z31\.h + *[0-9a-f]+: 0489a000 clz z0\.s, p0/z, z0\.s + *[0-9a-f]+: 0489a01f clz z31\.s, p0/z, z0\.s + *[0-9a-f]+: 0489bc00 clz z0\.s, p7/z, z0\.s + *[0-9a-f]+: 0489a3e0 clz z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04c9a000 clz z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04c9a01f clz z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04c9bc00 clz z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04c9a3e0 clz z0\.d, p0/z, z31\.d + *[0-9a-f]+: 040ba000 cnot z0\.b, p0/z, z0\.b + *[0-9a-f]+: 040ba01f cnot z31\.b, p0/z, z0\.b + *[0-9a-f]+: 040bbc00 cnot z0\.b, p7/z, z0\.b + *[0-9a-f]+: 040ba3e0 cnot z0\.b, p0/z, z31\.b + *[0-9a-f]+: 044ba000 cnot z0\.h, p0/z, z0\.h + *[0-9a-f]+: 044ba01f cnot z31\.h, p0/z, z0\.h + *[0-9a-f]+: 044bbc00 cnot z0\.h, p7/z, z0\.h + *[0-9a-f]+: 044ba3e0 cnot z0\.h, p0/z, z31\.h + *[0-9a-f]+: 048ba000 cnot z0\.s, p0/z, z0\.s + *[0-9a-f]+: 048ba01f cnot z31\.s, p0/z, z0\.s + *[0-9a-f]+: 048bbc00 cnot z0\.s, p7/z, z0\.s + *[0-9a-f]+: 048ba3e0 cnot z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04cba000 cnot z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04cba01f cnot z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04cbbc00 cnot z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04cba3e0 cnot z0\.d, p0/z, z31\.d + *[0-9a-f]+: 040aa000 cnt z0\.b, p0/z, z0\.b + *[0-9a-f]+: 040aa01f cnt z31\.b, p0/z, z0\.b + *[0-9a-f]+: 040abc00 cnt z0\.b, p7/z, z0\.b + *[0-9a-f]+: 040aa3e0 cnt z0\.b, p0/z, z31\.b + *[0-9a-f]+: 044aa000 cnt z0\.h, p0/z, z0\.h + *[0-9a-f]+: 044aa01f cnt z31\.h, p0/z, z0\.h + *[0-9a-f]+: 044abc00 cnt z0\.h, p7/z, z0\.h + *[0-9a-f]+: 044aa3e0 cnt z0\.h, p0/z, z31\.h + *[0-9a-f]+: 048aa000 cnt z0\.s, p0/z, z0\.s + *[0-9a-f]+: 048aa01f cnt z31\.s, p0/z, z0\.s + *[0-9a-f]+: 048abc00 cnt z0\.s, p7/z, z0\.s + *[0-9a-f]+: 048aa3e0 cnt z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04caa000 cnt z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04caa01f cnt z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04cabc00 cnt z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04caa3e0 cnt z0\.d, p0/z, z31\.d + *[0-9a-f]+: 05218000 compact z0\.b, p0, z0\.b + *[0-9a-f]+: 0521801f compact z31\.b, p0, z0\.b + *[0-9a-f]+: 05219c00 compact z0\.b, p7, z0\.b + *[0-9a-f]+: 052183e0 compact z0\.b, p0, z31\.b + *[0-9a-f]+: 05618000 compact z0\.h, p0, z0\.h + *[0-9a-f]+: 0561801f compact z31\.h, p0, z0\.h + *[0-9a-f]+: 05619c00 compact z0\.h, p7, z0\.h + *[0-9a-f]+: 056183e0 compact z0\.h, p0, z31\.h + *[0-9a-f]+: 05a18000 compact z0\.s, p0, z0\.s + *[0-9a-f]+: 05a1801f compact z31\.s, p0, z0\.s + *[0-9a-f]+: 05a19c00 compact z0\.s, p7, z0\.s + *[0-9a-f]+: 05a183e0 compact z0\.s, p0, z31\.s + *[0-9a-f]+: 05e18000 compact z0\.d, p0, z0\.d + *[0-9a-f]+: 05e1801f compact z31\.d, p0, z0\.d + *[0-9a-f]+: 05e19c00 compact z0\.d, p7, z0\.d + *[0-9a-f]+: 05e183e0 compact z0\.d, p0, z31\.d + *[0-9a-f]+: 05318000 expand z0\.b, p0, z0\.b + *[0-9a-f]+: 0531801f expand z31\.b, p0, z0\.b + *[0-9a-f]+: 05319c00 expand z0\.b, p7, z0\.b + *[0-9a-f]+: 053183e0 expand z0\.b, p0, z31\.b + *[0-9a-f]+: 05718000 expand z0\.h, p0, z0\.h + *[0-9a-f]+: 0571801f expand z31\.h, p0, z0\.h + *[0-9a-f]+: 05719c00 expand z0\.h, p7, z0\.h + *[0-9a-f]+: 057183e0 expand z0\.h, p0, z31\.h + *[0-9a-f]+: 05b18000 expand z0\.s, p0, z0\.s + *[0-9a-f]+: 05b1801f expand z31\.s, p0, z0\.s + *[0-9a-f]+: 05b19c00 expand z0\.s, p7, z0\.s + *[0-9a-f]+: 05b183e0 expand z0\.s, p0, z31\.s + *[0-9a-f]+: 05f18000 expand z0\.d, p0, z0\.d + *[0-9a-f]+: 05f1801f expand z31\.d, p0, z0\.d + *[0-9a-f]+: 05f19c00 expand z0\.d, p7, z0\.d + *[0-9a-f]+: 05f183e0 expand z0\.d, p0, z31\.d + *[0-9a-f]+: 044ca000 fabs z0\.h, p0/z, z0\.h + *[0-9a-f]+: 044ca01f fabs z31\.h, p0/z, z0\.h + *[0-9a-f]+: 044cbc00 fabs z0\.h, p7/z, z0\.h + *[0-9a-f]+: 044ca3e0 fabs z0\.h, p0/z, z31\.h + *[0-9a-f]+: 048ca000 fabs z0\.s, p0/z, z0\.s + *[0-9a-f]+: 048ca01f fabs z31\.s, p0/z, z0\.s + *[0-9a-f]+: 048cbc00 fabs z0\.s, p7/z, z0\.s + *[0-9a-f]+: 048ca3e0 fabs z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04cca000 fabs z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04cca01f fabs z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04ccbc00 fabs z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04cca3e0 fabs z0\.d, p0/z, z31\.d + *[0-9a-f]+: 649aa000 fcvt z0\.s, p0/z, z0\.h + *[0-9a-f]+: 649aa01f fcvt z31\.s, p0/z, z0\.h + *[0-9a-f]+: 649abc00 fcvt z0\.s, p7/z, z0\.h + *[0-9a-f]+: 649aa3e0 fcvt z0\.s, p0/z, z31\.h + *[0-9a-f]+: 64daa000 fcvt z0\.d, p0/z, z0\.h + *[0-9a-f]+: 64daa01f fcvt z31\.d, p0/z, z0\.h + *[0-9a-f]+: 64dabc00 fcvt z0\.d, p7/z, z0\.h + *[0-9a-f]+: 64daa3e0 fcvt z0\.d, p0/z, z31\.h + *[0-9a-f]+: 649a8000 fcvt z0\.h, p0/z, z0\.s + *[0-9a-f]+: 649a801f fcvt z31\.h, p0/z, z0\.s + *[0-9a-f]+: 649a9c00 fcvt z0\.h, p7/z, z0\.s + *[0-9a-f]+: 649a83e0 fcvt z0\.h, p0/z, z31\.s + *[0-9a-f]+: 64dae000 fcvt z0\.d, p0/z, z0\.s + *[0-9a-f]+: 64dae01f fcvt z31\.d, p0/z, z0\.s + *[0-9a-f]+: 64dafc00 fcvt z0\.d, p7/z, z0\.s + *[0-9a-f]+: 64dae3e0 fcvt z0\.d, p0/z, z31\.s + *[0-9a-f]+: 64da8000 fcvt z0\.h, p0/z, z0\.d + *[0-9a-f]+: 64da801f fcvt z31\.h, p0/z, z0\.d + *[0-9a-f]+: 64da9c00 fcvt z0\.h, p7/z, z0\.d + *[0-9a-f]+: 64da83e0 fcvt z0\.h, p0/z, z31\.d + *[0-9a-f]+: 64dac000 fcvt z0\.s, p0/z, z0\.d + *[0-9a-f]+: 64dac01f fcvt z31\.s, p0/z, z0\.d + *[0-9a-f]+: 64dadc00 fcvt z0\.s, p7/z, z0\.d + *[0-9a-f]+: 64dac3e0 fcvt z0\.s, p0/z, z31\.d + *[0-9a-f]+: 6481a000 fcvtlt z0\.s, p0/z, z0\.h + *[0-9a-f]+: 6481a01f fcvtlt z31\.s, p0/z, z0\.h + *[0-9a-f]+: 6481bc00 fcvtlt z0\.s, p7/z, z0\.h + *[0-9a-f]+: 6481a3e0 fcvtlt z0\.s, p0/z, z31\.h + *[0-9a-f]+: 64c3a000 fcvtlt z0\.d, p0/z, z0\.s + *[0-9a-f]+: 64c3a01f fcvtlt z31\.d, p0/z, z0\.s + *[0-9a-f]+: 64c3bc00 fcvtlt z0\.d, p7/z, z0\.s + *[0-9a-f]+: 64c3a3e0 fcvtlt z0\.d, p0/z, z31\.s + *[0-9a-f]+: 6480a000 fcvtnt z0\.h, p0/z, z0\.s + *[0-9a-f]+: 6480a01f fcvtnt z31\.h, p0/z, z0\.s + *[0-9a-f]+: 6480bc00 fcvtnt z0\.h, p7/z, z0\.s + *[0-9a-f]+: 6480a3e0 fcvtnt z0\.h, p0/z, z31\.s + *[0-9a-f]+: 64c2a000 fcvtnt z0\.s, p0/z, z0\.d + *[0-9a-f]+: 64c2a01f fcvtnt z31\.s, p0/z, z0\.d + *[0-9a-f]+: 64c2bc00 fcvtnt z0\.s, p7/z, z0\.d + *[0-9a-f]+: 64c2a3e0 fcvtnt z0\.s, p0/z, z31\.d + *[0-9a-f]+: 641ac000 fcvtx z0\.s, p0/z, z0\.d + *[0-9a-f]+: 641ac01f fcvtx z31\.s, p0/z, z0\.d + *[0-9a-f]+: 641adc00 fcvtx z0\.s, p7/z, z0\.d + *[0-9a-f]+: 641ac3e0 fcvtx z0\.s, p0/z, z31\.d + *[0-9a-f]+: 6402a000 fcvtxnt z0\.s, p0/z, z0\.d + *[0-9a-f]+: 6402a01f fcvtxnt z31\.s, p0/z, z0\.d + *[0-9a-f]+: 6402bc00 fcvtxnt z0\.s, p7/z, z0\.d + *[0-9a-f]+: 6402a3e0 fcvtxnt z0\.s, p0/z, z31\.d + *[0-9a-f]+: 645ec000 fcvtzs z0\.h, p0/z, z0\.h + *[0-9a-f]+: 645ec01f fcvtzs z31\.h, p0/z, z0\.h + *[0-9a-f]+: 645edc00 fcvtzs z0\.h, p7/z, z0\.h + *[0-9a-f]+: 645ec3e0 fcvtzs z0\.h, p0/z, z31\.h + *[0-9a-f]+: 645f8000 fcvtzs z0\.s, p0/z, z0\.h + *[0-9a-f]+: 645f801f fcvtzs z31\.s, p0/z, z0\.h + *[0-9a-f]+: 645f9c00 fcvtzs z0\.s, p7/z, z0\.h + *[0-9a-f]+: 645f83e0 fcvtzs z0\.s, p0/z, z31\.h + *[0-9a-f]+: 645fc000 fcvtzs z0\.d, p0/z, z0\.h + *[0-9a-f]+: 645fc01f fcvtzs z31\.d, p0/z, z0\.h + *[0-9a-f]+: 645fdc00 fcvtzs z0\.d, p7/z, z0\.h + *[0-9a-f]+: 645fc3e0 fcvtzs z0\.d, p0/z, z31\.h + *[0-9a-f]+: 649f8000 fcvtzs z0\.s, p0/z, z0\.s + *[0-9a-f]+: 649f801f fcvtzs z31\.s, p0/z, z0\.s + *[0-9a-f]+: 649f9c00 fcvtzs z0\.s, p7/z, z0\.s + *[0-9a-f]+: 649f83e0 fcvtzs z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64df8000 fcvtzs z0\.d, p0/z, z0\.s + *[0-9a-f]+: 64df801f fcvtzs z31\.d, p0/z, z0\.s + *[0-9a-f]+: 64df9c00 fcvtzs z0\.d, p7/z, z0\.s + *[0-9a-f]+: 64df83e0 fcvtzs z0\.d, p0/z, z31\.s + *[0-9a-f]+: 64de8000 fcvtzs z0\.s, p0/z, z0\.d + *[0-9a-f]+: 64de801f fcvtzs z31\.s, p0/z, z0\.d + *[0-9a-f]+: 64de9c00 fcvtzs z0\.s, p7/z, z0\.d + *[0-9a-f]+: 64de83e0 fcvtzs z0\.s, p0/z, z31\.d + *[0-9a-f]+: 64dfc000 fcvtzs z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64dfc01f fcvtzs z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64dfdc00 fcvtzs z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64dfc3e0 fcvtzs z0\.d, p0/z, z31\.d + *[0-9a-f]+: 645ee000 fcvtzu z0\.h, p0/z, z0\.h + *[0-9a-f]+: 645ee01f fcvtzu z31\.h, p0/z, z0\.h + *[0-9a-f]+: 645efc00 fcvtzu z0\.h, p7/z, z0\.h + *[0-9a-f]+: 645ee3e0 fcvtzu z0\.h, p0/z, z31\.h + *[0-9a-f]+: 645fa000 fcvtzu z0\.s, p0/z, z0\.h + *[0-9a-f]+: 645fa01f fcvtzu z31\.s, p0/z, z0\.h + *[0-9a-f]+: 645fbc00 fcvtzu z0\.s, p7/z, z0\.h + *[0-9a-f]+: 645fa3e0 fcvtzu z0\.s, p0/z, z31\.h + *[0-9a-f]+: 645fe000 fcvtzu z0\.d, p0/z, z0\.h + *[0-9a-f]+: 645fe01f fcvtzu z31\.d, p0/z, z0\.h + *[0-9a-f]+: 645ffc00 fcvtzu z0\.d, p7/z, z0\.h + *[0-9a-f]+: 645fe3e0 fcvtzu z0\.d, p0/z, z31\.h + *[0-9a-f]+: 649fa000 fcvtzu z0\.s, p0/z, z0\.s + *[0-9a-f]+: 649fa01f fcvtzu z31\.s, p0/z, z0\.s + *[0-9a-f]+: 649fbc00 fcvtzu z0\.s, p7/z, z0\.s + *[0-9a-f]+: 649fa3e0 fcvtzu z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64dfa000 fcvtzu z0\.d, p0/z, z0\.s + *[0-9a-f]+: 64dfa01f fcvtzu z31\.d, p0/z, z0\.s + *[0-9a-f]+: 64dfbc00 fcvtzu z0\.d, p7/z, z0\.s + *[0-9a-f]+: 64dfa3e0 fcvtzu z0\.d, p0/z, z31\.s + *[0-9a-f]+: 64dea000 fcvtzu z0\.s, p0/z, z0\.d + *[0-9a-f]+: 64dea01f fcvtzu z31\.s, p0/z, z0\.d + *[0-9a-f]+: 64debc00 fcvtzu z0\.s, p7/z, z0\.d + *[0-9a-f]+: 64dea3e0 fcvtzu z0\.s, p0/z, z31\.d + *[0-9a-f]+: 64dfe000 fcvtzu z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64dfe01f fcvtzu z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64dffc00 fcvtzu z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64dfe3e0 fcvtzu z0\.d, p0/z, z31\.d + *[0-9a-f]+: 25218000 firstp x0, p0, p0\.b + *[0-9a-f]+: 2521801f firstp xzr, p0, p0\.b + *[0-9a-f]+: 2521bc00 firstp x0, p15, p0\.b + *[0-9a-f]+: 252181e0 firstp x0, p0, p15\.b + *[0-9a-f]+: 25618000 firstp x0, p0, p0\.h + *[0-9a-f]+: 2561801f firstp xzr, p0, p0\.h + *[0-9a-f]+: 2561bc00 firstp x0, p15, p0\.h + *[0-9a-f]+: 256181e0 firstp x0, p0, p15\.h + *[0-9a-f]+: 25a18000 firstp x0, p0, p0\.s + *[0-9a-f]+: 25a1801f firstp xzr, p0, p0\.s + *[0-9a-f]+: 25a1bc00 firstp x0, p15, p0\.s + *[0-9a-f]+: 25a181e0 firstp x0, p0, p15\.s + *[0-9a-f]+: 25e18000 firstp x0, p0, p0\.d + *[0-9a-f]+: 25e1801f firstp xzr, p0, p0\.d + *[0-9a-f]+: 25e1bc00 firstp x0, p15, p0\.d + *[0-9a-f]+: 25e181e0 firstp x0, p0, p15\.d + *[0-9a-f]+: 641ea000 flogb z0\.h, p0/z, z0\.h + *[0-9a-f]+: 641ea01f flogb z31\.h, p0/z, z0\.h + *[0-9a-f]+: 641ebc00 flogb z0\.h, p7/z, z0\.h + *[0-9a-f]+: 641ea3e0 flogb z0\.h, p0/z, z31\.h + *[0-9a-f]+: 641ec000 flogb z0\.s, p0/z, z0\.s + *[0-9a-f]+: 641ec01f flogb z31\.s, p0/z, z0\.s + *[0-9a-f]+: 641edc00 flogb z0\.s, p7/z, z0\.s + *[0-9a-f]+: 641ec3e0 flogb z0\.s, p0/z, z31\.s + *[0-9a-f]+: 641ee000 flogb z0\.d, p0/z, z0\.d + *[0-9a-f]+: 641ee01f flogb z31\.d, p0/z, z0\.d + *[0-9a-f]+: 641efc00 flogb z0\.d, p7/z, z0\.d + *[0-9a-f]+: 641ee3e0 flogb z0\.d, p0/z, z31\.d + *[0-9a-f]+: 044da000 fneg z0\.h, p0/z, z0\.h + *[0-9a-f]+: 044da01f fneg z31\.h, p0/z, z0\.h + *[0-9a-f]+: 044dbc00 fneg z0\.h, p7/z, z0\.h + *[0-9a-f]+: 044da3e0 fneg z0\.h, p0/z, z31\.h + *[0-9a-f]+: 048da000 fneg z0\.s, p0/z, z0\.s + *[0-9a-f]+: 048da01f fneg z31\.s, p0/z, z0\.s + *[0-9a-f]+: 048dbc00 fneg z0\.s, p7/z, z0\.s + *[0-9a-f]+: 048da3e0 fneg z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04cda000 fneg z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04cda01f fneg z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04cdbc00 fneg z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04cda3e0 fneg z0\.d, p0/z, z31\.d + *[0-9a-f]+: 645b8000 frecpx z0\.h, p0/z, z0\.h + *[0-9a-f]+: 645b801f frecpx z31\.h, p0/z, z0\.h + *[0-9a-f]+: 645b9c00 frecpx z0\.h, p7/z, z0\.h + *[0-9a-f]+: 645b83e0 frecpx z0\.h, p0/z, z31\.h + *[0-9a-f]+: 649b8000 frecpx z0\.s, p0/z, z0\.s + *[0-9a-f]+: 649b801f frecpx z31\.s, p0/z, z0\.s + *[0-9a-f]+: 649b9c00 frecpx z0\.s, p7/z, z0\.s + *[0-9a-f]+: 649b83e0 frecpx z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64db8000 frecpx z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64db801f frecpx z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64db9c00 frecpx z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64db83e0 frecpx z0\.d, p0/z, z31\.d + *[0-9a-f]+: 6511a000 frint32x z0\.s, p0/m, z0\.s + *[0-9a-f]+: 6511a01f frint32x z31\.s, p0/m, z0\.s + *[0-9a-f]+: 6511bc00 frint32x z0\.s, p7/m, z0\.s + *[0-9a-f]+: 6511a3e0 frint32x z0\.s, p0/m, z31\.s + *[0-9a-f]+: 6513a000 frint32x z0\.d, p0/m, z0\.d + *[0-9a-f]+: 6513a01f frint32x z31\.d, p0/m, z0\.d + *[0-9a-f]+: 6513bc00 frint32x z0\.d, p7/m, z0\.d + *[0-9a-f]+: 6513a3e0 frint32x z0\.d, p0/m, z31\.d + *[0-9a-f]+: 641ca000 frint32x z0\.s, p0/z, z0\.s + *[0-9a-f]+: 641ca01f frint32x z31\.s, p0/z, z0\.s + *[0-9a-f]+: 641cbc00 frint32x z0\.s, p7/z, z0\.s + *[0-9a-f]+: 641ca3e0 frint32x z0\.s, p0/z, z31\.s + *[0-9a-f]+: 641ce000 frint32x z0\.d, p0/z, z0\.d + *[0-9a-f]+: 641ce01f frint32x z31\.d, p0/z, z0\.d + *[0-9a-f]+: 641cfc00 frint32x z0\.d, p7/z, z0\.d + *[0-9a-f]+: 641ce3e0 frint32x z0\.d, p0/z, z31\.d + *[0-9a-f]+: 6510a000 frint32z z0\.s, p0/m, z0\.s + *[0-9a-f]+: 6510a01f frint32z z31\.s, p0/m, z0\.s + *[0-9a-f]+: 6510bc00 frint32z z0\.s, p7/m, z0\.s + *[0-9a-f]+: 6510a3e0 frint32z z0\.s, p0/m, z31\.s + *[0-9a-f]+: 6512a000 frint32z z0\.d, p0/m, z0\.d + *[0-9a-f]+: 6512a01f frint32z z31\.d, p0/m, z0\.d + *[0-9a-f]+: 6512bc00 frint32z z0\.d, p7/m, z0\.d + *[0-9a-f]+: 6512a3e0 frint32z z0\.d, p0/m, z31\.d + *[0-9a-f]+: 641c8000 frint32z z0\.s, p0/z, z0\.s + *[0-9a-f]+: 641c801f frint32z z31\.s, p0/z, z0\.s + *[0-9a-f]+: 641c9c00 frint32z z0\.s, p7/z, z0\.s + *[0-9a-f]+: 641c83e0 frint32z z0\.s, p0/z, z31\.s + *[0-9a-f]+: 641cc000 frint32z z0\.d, p0/z, z0\.d + *[0-9a-f]+: 641cc01f frint32z z31\.d, p0/z, z0\.d + *[0-9a-f]+: 641cdc00 frint32z z0\.d, p7/z, z0\.d + *[0-9a-f]+: 641cc3e0 frint32z z0\.d, p0/z, z31\.d + *[0-9a-f]+: 6515a000 frint64x z0\.s, p0/m, z0\.s + *[0-9a-f]+: 6515a01f frint64x z31\.s, p0/m, z0\.s + *[0-9a-f]+: 6515bc00 frint64x z0\.s, p7/m, z0\.s + *[0-9a-f]+: 6515a3e0 frint64x z0\.s, p0/m, z31\.s + *[0-9a-f]+: 6517a000 frint64x z0\.d, p0/m, z0\.d + *[0-9a-f]+: 6517a01f frint64x z31\.d, p0/m, z0\.d + *[0-9a-f]+: 6517bc00 frint64x z0\.d, p7/m, z0\.d + *[0-9a-f]+: 6517a3e0 frint64x z0\.d, p0/m, z31\.d + *[0-9a-f]+: 641da000 frint64x z0\.s, p0/z, z0\.s + *[0-9a-f]+: 641da01f frint64x z31\.s, p0/z, z0\.s + *[0-9a-f]+: 641dbc00 frint64x z0\.s, p7/z, z0\.s + *[0-9a-f]+: 641da3e0 frint64x z0\.s, p0/z, z31\.s + *[0-9a-f]+: 641de000 frint64x z0\.d, p0/z, z0\.d + *[0-9a-f]+: 641de01f frint64x z31\.d, p0/z, z0\.d + *[0-9a-f]+: 641dfc00 frint64x z0\.d, p7/z, z0\.d + *[0-9a-f]+: 641de3e0 frint64x z0\.d, p0/z, z31\.d + *[0-9a-f]+: 6514a000 frint64z z0\.s, p0/m, z0\.s + *[0-9a-f]+: 6514a01f frint64z z31\.s, p0/m, z0\.s + *[0-9a-f]+: 6514bc00 frint64z z0\.s, p7/m, z0\.s + *[0-9a-f]+: 6514a3e0 frint64z z0\.s, p0/m, z31\.s + *[0-9a-f]+: 6516a000 frint64z z0\.d, p0/m, z0\.d + *[0-9a-f]+: 6516a01f frint64z z31\.d, p0/m, z0\.d + *[0-9a-f]+: 6516bc00 frint64z z0\.d, p7/m, z0\.d + *[0-9a-f]+: 6516a3e0 frint64z z0\.d, p0/m, z31\.d + *[0-9a-f]+: 641d8000 frint64z z0\.s, p0/z, z0\.s + *[0-9a-f]+: 641d801f frint64z z31\.s, p0/z, z0\.s + *[0-9a-f]+: 641d9c00 frint64z z0\.s, p7/z, z0\.s + *[0-9a-f]+: 641d83e0 frint64z z0\.s, p0/z, z31\.s + *[0-9a-f]+: 641dc000 frint64z z0\.d, p0/z, z0\.d + *[0-9a-f]+: 641dc01f frint64z z31\.d, p0/z, z0\.d + *[0-9a-f]+: 641ddc00 frint64z z0\.d, p7/z, z0\.d + *[0-9a-f]+: 641dc3e0 frint64z z0\.d, p0/z, z31\.d + *[0-9a-f]+: 6459c000 frintx z0\.h, p0/z, z0\.h + *[0-9a-f]+: 6459c01f frintx z31\.h, p0/z, z0\.h + *[0-9a-f]+: 6459dc00 frintx z0\.h, p7/z, z0\.h + *[0-9a-f]+: 6459c3e0 frintx z0\.h, p0/z, z31\.h + *[0-9a-f]+: 6499c000 frintx z0\.s, p0/z, z0\.s + *[0-9a-f]+: 6499c01f frintx z31\.s, p0/z, z0\.s + *[0-9a-f]+: 6499dc00 frintx z0\.s, p7/z, z0\.s + *[0-9a-f]+: 6499c3e0 frintx z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64d9c000 frintx z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64d9c01f frintx z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64d9dc00 frintx z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64d9c3e0 frintx z0\.d, p0/z, z31\.d + *[0-9a-f]+: 6459e000 frinti z0\.h, p0/z, z0\.h + *[0-9a-f]+: 6459e01f frinti z31\.h, p0/z, z0\.h + *[0-9a-f]+: 6459fc00 frinti z0\.h, p7/z, z0\.h + *[0-9a-f]+: 6459e3e0 frinti z0\.h, p0/z, z31\.h + *[0-9a-f]+: 6499e000 frinti z0\.s, p0/z, z0\.s + *[0-9a-f]+: 6499e01f frinti z31\.s, p0/z, z0\.s + *[0-9a-f]+: 6499fc00 frinti z0\.s, p7/z, z0\.s + *[0-9a-f]+: 6499e3e0 frinti z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64d9e000 frinti z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64d9e01f frinti z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64d9fc00 frinti z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64d9e3e0 frinti z0\.d, p0/z, z31\.d + *[0-9a-f]+: 64598000 frinta z0\.h, p0/z, z0\.h + *[0-9a-f]+: 6459801f frinta z31\.h, p0/z, z0\.h + *[0-9a-f]+: 64599c00 frinta z0\.h, p7/z, z0\.h + *[0-9a-f]+: 645983e0 frinta z0\.h, p0/z, z31\.h + *[0-9a-f]+: 64998000 frinta z0\.s, p0/z, z0\.s + *[0-9a-f]+: 6499801f frinta z31\.s, p0/z, z0\.s + *[0-9a-f]+: 64999c00 frinta z0\.s, p7/z, z0\.s + *[0-9a-f]+: 649983e0 frinta z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64d98000 frinta z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64d9801f frinta z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64d99c00 frinta z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64d983e0 frinta z0\.d, p0/z, z31\.d + *[0-9a-f]+: 64588000 frintn z0\.h, p0/z, z0\.h + *[0-9a-f]+: 6458801f frintn z31\.h, p0/z, z0\.h + *[0-9a-f]+: 64589c00 frintn z0\.h, p7/z, z0\.h + *[0-9a-f]+: 645883e0 frintn z0\.h, p0/z, z31\.h + *[0-9a-f]+: 64988000 frintn z0\.s, p0/z, z0\.s + *[0-9a-f]+: 6498801f frintn z31\.s, p0/z, z0\.s + *[0-9a-f]+: 64989c00 frintn z0\.s, p7/z, z0\.s + *[0-9a-f]+: 649883e0 frintn z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64d88000 frintn z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64d8801f frintn z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64d89c00 frintn z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64d883e0 frintn z0\.d, p0/z, z31\.d + *[0-9a-f]+: 6458e000 frintz z0\.h, p0/z, z0\.h + *[0-9a-f]+: 6458e01f frintz z31\.h, p0/z, z0\.h + *[0-9a-f]+: 6458fc00 frintz z0\.h, p7/z, z0\.h + *[0-9a-f]+: 6458e3e0 frintz z0\.h, p0/z, z31\.h + *[0-9a-f]+: 6498e000 frintz z0\.s, p0/z, z0\.s + *[0-9a-f]+: 6498e01f frintz z31\.s, p0/z, z0\.s + *[0-9a-f]+: 6498fc00 frintz z0\.s, p7/z, z0\.s + *[0-9a-f]+: 6498e3e0 frintz z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64d8e000 frintz z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64d8e01f frintz z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64d8fc00 frintz z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64d8e3e0 frintz z0\.d, p0/z, z31\.d + *[0-9a-f]+: 6458c000 frintm z0\.h, p0/z, z0\.h + *[0-9a-f]+: 6458c01f frintm z31\.h, p0/z, z0\.h + *[0-9a-f]+: 6458dc00 frintm z0\.h, p7/z, z0\.h + *[0-9a-f]+: 6458c3e0 frintm z0\.h, p0/z, z31\.h + *[0-9a-f]+: 6498c000 frintm z0\.s, p0/z, z0\.s + *[0-9a-f]+: 6498c01f frintm z31\.s, p0/z, z0\.s + *[0-9a-f]+: 6498dc00 frintm z0\.s, p7/z, z0\.s + *[0-9a-f]+: 6498c3e0 frintm z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64d8c000 frintm z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64d8c01f frintm z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64d8dc00 frintm z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64d8c3e0 frintm z0\.d, p0/z, z31\.d + *[0-9a-f]+: 6458a000 frintp z0\.h, p0/z, z0\.h + *[0-9a-f]+: 6458a01f frintp z31\.h, p0/z, z0\.h + *[0-9a-f]+: 6458bc00 frintp z0\.h, p7/z, z0\.h + *[0-9a-f]+: 6458a3e0 frintp z0\.h, p0/z, z31\.h + *[0-9a-f]+: 6498a000 frintp z0\.s, p0/z, z0\.s + *[0-9a-f]+: 6498a01f frintp z31\.s, p0/z, z0\.s + *[0-9a-f]+: 6498bc00 frintp z0\.s, p7/z, z0\.s + *[0-9a-f]+: 6498a3e0 frintp z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64d8a000 frintp z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64d8a01f frintp z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64d8bc00 frintp z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64d8a3e0 frintp z0\.d, p0/z, z31\.d + *[0-9a-f]+: 645ba000 fsqrt z0\.h, p0/z, z0\.h + *[0-9a-f]+: 645ba01f fsqrt z31\.h, p0/z, z0\.h + *[0-9a-f]+: 645bbc00 fsqrt z0\.h, p7/z, z0\.h + *[0-9a-f]+: 645ba3e0 fsqrt z0\.h, p0/z, z31\.h + *[0-9a-f]+: 649ba000 fsqrt z0\.s, p0/z, z0\.s + *[0-9a-f]+: 649ba01f fsqrt z31\.s, p0/z, z0\.s + *[0-9a-f]+: 649bbc00 fsqrt z0\.s, p7/z, z0\.s + *[0-9a-f]+: 649ba3e0 fsqrt z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64dba000 fsqrt z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64dba01f fsqrt z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64dbbc00 fsqrt z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64dba3e0 fsqrt z0\.d, p0/z, z31\.d + *[0-9a-f]+: 25228000 lastp x0, p0, p0\.b + *[0-9a-f]+: 2522801f lastp xzr, p0, p0\.b + *[0-9a-f]+: 2522bc00 lastp x0, p15, p0\.b + *[0-9a-f]+: 252281e0 lastp x0, p0, p15\.b + *[0-9a-f]+: 25628000 lastp x0, p0, p0\.h + *[0-9a-f]+: 2562801f lastp xzr, p0, p0\.h + *[0-9a-f]+: 2562bc00 lastp x0, p15, p0\.h + *[0-9a-f]+: 256281e0 lastp x0, p0, p15\.h + *[0-9a-f]+: 25a28000 lastp x0, p0, p0\.s + *[0-9a-f]+: 25a2801f lastp xzr, p0, p0\.s + *[0-9a-f]+: 25a2bc00 lastp x0, p15, p0\.s + *[0-9a-f]+: 25a281e0 lastp x0, p0, p15\.s + *[0-9a-f]+: 25e28000 lastp x0, p0, p0\.d + *[0-9a-f]+: 25e2801f lastp xzr, p0, p0\.d + *[0-9a-f]+: 25e2bc00 lastp x0, p15, p0\.d + *[0-9a-f]+: 25e281e0 lastp x0, p0, p15\.d + *[0-9a-f]+: 0407a000 neg z0\.b, p0/z, z0\.b + *[0-9a-f]+: 0407a01f neg z31\.b, p0/z, z0\.b + *[0-9a-f]+: 0407bc00 neg z0\.b, p7/z, z0\.b + *[0-9a-f]+: 0407a3e0 neg z0\.b, p0/z, z31\.b + *[0-9a-f]+: 0447a000 neg z0\.h, p0/z, z0\.h + *[0-9a-f]+: 0447a01f neg z31\.h, p0/z, z0\.h + *[0-9a-f]+: 0447bc00 neg z0\.h, p7/z, z0\.h + *[0-9a-f]+: 0447a3e0 neg z0\.h, p0/z, z31\.h + *[0-9a-f]+: 0487a000 neg z0\.s, p0/z, z0\.s + *[0-9a-f]+: 0487a01f neg z31\.s, p0/z, z0\.s + *[0-9a-f]+: 0487bc00 neg z0\.s, p7/z, z0\.s + *[0-9a-f]+: 0487a3e0 neg z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04c7a000 neg z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04c7a01f neg z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04c7bc00 neg z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04c7a3e0 neg z0\.d, p0/z, z31\.d + *[0-9a-f]+: 040ea000 not z0\.b, p0/z, z0\.b + *[0-9a-f]+: 040ea01f not z31\.b, p0/z, z0\.b + *[0-9a-f]+: 040ebc00 not z0\.b, p7/z, z0\.b + *[0-9a-f]+: 040ea3e0 not z0\.b, p0/z, z31\.b + *[0-9a-f]+: 044ea000 not z0\.h, p0/z, z0\.h + *[0-9a-f]+: 044ea01f not z31\.h, p0/z, z0\.h + *[0-9a-f]+: 044ebc00 not z0\.h, p7/z, z0\.h + *[0-9a-f]+: 044ea3e0 not z0\.h, p0/z, z31\.h + *[0-9a-f]+: 048ea000 not z0\.s, p0/z, z0\.s + *[0-9a-f]+: 048ea01f not z31\.s, p0/z, z0\.s + *[0-9a-f]+: 048ebc00 not z0\.s, p7/z, z0\.s + *[0-9a-f]+: 048ea3e0 not z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04cea000 not z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04cea01f not z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04cebc00 not z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04cea3e0 not z0\.d, p0/z, z31\.d + *[0-9a-f]+: 0527a000 rbit z0\.b, p0/z, z0\.b + *[0-9a-f]+: 0527a01f rbit z31\.b, p0/z, z0\.b + *[0-9a-f]+: 0527bc00 rbit z0\.b, p7/z, z0\.b + *[0-9a-f]+: 0527a3e0 rbit z0\.b, p0/z, z31\.b + *[0-9a-f]+: 0567a000 rbit z0\.h, p0/z, z0\.h + *[0-9a-f]+: 0567a01f rbit z31\.h, p0/z, z0\.h + *[0-9a-f]+: 0567bc00 rbit z0\.h, p7/z, z0\.h + *[0-9a-f]+: 0567a3e0 rbit z0\.h, p0/z, z31\.h + *[0-9a-f]+: 05a7a000 rbit z0\.s, p0/z, z0\.s + *[0-9a-f]+: 05a7a01f rbit z31\.s, p0/z, z0\.s + *[0-9a-f]+: 05a7bc00 rbit z0\.s, p7/z, z0\.s + *[0-9a-f]+: 05a7a3e0 rbit z0\.s, p0/z, z31\.s + *[0-9a-f]+: 05e7a000 rbit z0\.d, p0/z, z0\.d + *[0-9a-f]+: 05e7a01f rbit z31\.d, p0/z, z0\.d + *[0-9a-f]+: 05e7bc00 rbit z0\.d, p7/z, z0\.d + *[0-9a-f]+: 05e7a3e0 rbit z0\.d, p0/z, z31\.d + *[0-9a-f]+: 0564a000 revb z0\.h, p0/z, z0\.h + *[0-9a-f]+: 0564a01f revb z31\.h, p0/z, z0\.h + *[0-9a-f]+: 0564bc00 revb z0\.h, p7/z, z0\.h + *[0-9a-f]+: 0564a3e0 revb z0\.h, p0/z, z31\.h + *[0-9a-f]+: 05a4a000 revb z0\.s, p0/z, z0\.s + *[0-9a-f]+: 05a4a01f revb z31\.s, p0/z, z0\.s + *[0-9a-f]+: 05a4bc00 revb z0\.s, p7/z, z0\.s + *[0-9a-f]+: 05a4a3e0 revb z0\.s, p0/z, z31\.s + *[0-9a-f]+: 05e4a000 revb z0\.d, p0/z, z0\.d + *[0-9a-f]+: 05e4a01f revb z31\.d, p0/z, z0\.d + *[0-9a-f]+: 05e4bc00 revb z0\.d, p7/z, z0\.d + *[0-9a-f]+: 05e4a3e0 revb z0\.d, p0/z, z31\.d + *[0-9a-f]+: 05a5a000 revh z0\.s, p0/z, z0\.s + *[0-9a-f]+: 05a5a01f revh z31\.s, p0/z, z0\.s + *[0-9a-f]+: 05a5bc00 revh z0\.s, p7/z, z0\.s + *[0-9a-f]+: 05a5a3e0 revh z0\.s, p0/z, z31\.s + *[0-9a-f]+: 05e5a000 revh z0\.d, p0/z, z0\.d + *[0-9a-f]+: 05e5a01f revh z31\.d, p0/z, z0\.d + *[0-9a-f]+: 05e5bc00 revh z0\.d, p7/z, z0\.d + *[0-9a-f]+: 05e5a3e0 revh z0\.d, p0/z, z31\.d + *[0-9a-f]+: 05e6a000 revw z0\.d, p0/z, z0\.d + *[0-9a-f]+: 05e6a01f revw z31\.d, p0/z, z0\.d + *[0-9a-f]+: 05e6bc00 revw z0\.d, p7/z, z0\.d + *[0-9a-f]+: 05e6a3e0 revw z0\.d, p0/z, z31\.d + *[0-9a-f]+: 052ea000 revd z0\.q, p0/z, z0\.q + *[0-9a-f]+: 052ea01f revd z31\.q, p0/z, z0\.q + *[0-9a-f]+: 052ebc00 revd z0\.q, p7/z, z0\.q + *[0-9a-f]+: 052ea3e0 revd z0\.q, p0/z, z31\.q + *[0-9a-f]+: 645cc000 scvtf z0\.h, p0/z, z0\.h + *[0-9a-f]+: 645cc01f scvtf z31\.h, p0/z, z0\.h + *[0-9a-f]+: 645cdc00 scvtf z0\.h, p7/z, z0\.h + *[0-9a-f]+: 645cc3e0 scvtf z0\.h, p0/z, z31\.h + *[0-9a-f]+: 645d8000 scvtf z0\.h, p0/z, z0\.s + *[0-9a-f]+: 645d801f scvtf z31\.h, p0/z, z0\.s + *[0-9a-f]+: 645d9c00 scvtf z0\.h, p7/z, z0\.s + *[0-9a-f]+: 645d83e0 scvtf z0\.h, p0/z, z31\.s + *[0-9a-f]+: 649d8000 scvtf z0\.s, p0/z, z0\.s + *[0-9a-f]+: 649d801f scvtf z31\.s, p0/z, z0\.s + *[0-9a-f]+: 649d9c00 scvtf z0\.s, p7/z, z0\.s + *[0-9a-f]+: 649d83e0 scvtf z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64dc8000 scvtf z0\.d, p0/z, z0\.s + *[0-9a-f]+: 64dc801f scvtf z31\.d, p0/z, z0\.s + *[0-9a-f]+: 64dc9c00 scvtf z0\.d, p7/z, z0\.s + *[0-9a-f]+: 64dc83e0 scvtf z0\.d, p0/z, z31\.s + *[0-9a-f]+: 645dc000 scvtf z0\.h, p0/z, z0\.d + *[0-9a-f]+: 645dc01f scvtf z31\.h, p0/z, z0\.d + *[0-9a-f]+: 645ddc00 scvtf z0\.h, p7/z, z0\.d + *[0-9a-f]+: 645dc3e0 scvtf z0\.h, p0/z, z31\.d + *[0-9a-f]+: 64dd8000 scvtf z0\.s, p0/z, z0\.d + *[0-9a-f]+: 64dd801f scvtf z31\.s, p0/z, z0\.d + *[0-9a-f]+: 64dd9c00 scvtf z0\.s, p7/z, z0\.d + *[0-9a-f]+: 64dd83e0 scvtf z0\.s, p0/z, z31\.d + *[0-9a-f]+: 64ddc000 scvtf z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64ddc01f scvtf z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64dddc00 scvtf z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64ddc3e0 scvtf z0\.d, p0/z, z31\.d + *[0-9a-f]+: 440aa000 sqabs z0\.b, p0/z, z0\.b + *[0-9a-f]+: 440aa01f sqabs z31\.b, p0/z, z0\.b + *[0-9a-f]+: 440abc00 sqabs z0\.b, p7/z, z0\.b + *[0-9a-f]+: 440aa3e0 sqabs z0\.b, p0/z, z31\.b + *[0-9a-f]+: 444aa000 sqabs z0\.h, p0/z, z0\.h + *[0-9a-f]+: 444aa01f sqabs z31\.h, p0/z, z0\.h + *[0-9a-f]+: 444abc00 sqabs z0\.h, p7/z, z0\.h + *[0-9a-f]+: 444aa3e0 sqabs z0\.h, p0/z, z31\.h + *[0-9a-f]+: 448aa000 sqabs z0\.s, p0/z, z0\.s + *[0-9a-f]+: 448aa01f sqabs z31\.s, p0/z, z0\.s + *[0-9a-f]+: 448abc00 sqabs z0\.s, p7/z, z0\.s + *[0-9a-f]+: 448aa3e0 sqabs z0\.s, p0/z, z31\.s + *[0-9a-f]+: 44caa000 sqabs z0\.d, p0/z, z0\.d + *[0-9a-f]+: 44caa01f sqabs z31\.d, p0/z, z0\.d + *[0-9a-f]+: 44cabc00 sqabs z0\.d, p7/z, z0\.d + *[0-9a-f]+: 44caa3e0 sqabs z0\.d, p0/z, z31\.d + *[0-9a-f]+: 440ba000 sqneg z0\.b, p0/z, z0\.b + *[0-9a-f]+: 440ba01f sqneg z31\.b, p0/z, z0\.b + *[0-9a-f]+: 440bbc00 sqneg z0\.b, p7/z, z0\.b + *[0-9a-f]+: 440ba3e0 sqneg z0\.b, p0/z, z31\.b + *[0-9a-f]+: 444ba000 sqneg z0\.h, p0/z, z0\.h + *[0-9a-f]+: 444ba01f sqneg z31\.h, p0/z, z0\.h + *[0-9a-f]+: 444bbc00 sqneg z0\.h, p7/z, z0\.h + *[0-9a-f]+: 444ba3e0 sqneg z0\.h, p0/z, z31\.h + *[0-9a-f]+: 448ba000 sqneg z0\.s, p0/z, z0\.s + *[0-9a-f]+: 448ba01f sqneg z31\.s, p0/z, z0\.s + *[0-9a-f]+: 448bbc00 sqneg z0\.s, p7/z, z0\.s + *[0-9a-f]+: 448ba3e0 sqneg z0\.s, p0/z, z31\.s + *[0-9a-f]+: 44cba000 sqneg z0\.d, p0/z, z0\.d + *[0-9a-f]+: 44cba01f sqneg z31\.d, p0/z, z0\.d + *[0-9a-f]+: 44cbbc00 sqneg z0\.d, p7/z, z0\.d + *[0-9a-f]+: 44cba3e0 sqneg z0\.d, p0/z, z31\.d + *[0-9a-f]+: 0440a000 sxtb z0\.h, p0/z, z0\.h + *[0-9a-f]+: 0440a01f sxtb z31\.h, p0/z, z0\.h + *[0-9a-f]+: 0440bc00 sxtb z0\.h, p7/z, z0\.h + *[0-9a-f]+: 0440a3e0 sxtb z0\.h, p0/z, z31\.h + *[0-9a-f]+: 0480a000 sxtb z0\.s, p0/z, z0\.s + *[0-9a-f]+: 0480a01f sxtb z31\.s, p0/z, z0\.s + *[0-9a-f]+: 0480bc00 sxtb z0\.s, p7/z, z0\.s + *[0-9a-f]+: 0480a3e0 sxtb z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04c0a000 sxtb z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04c0a01f sxtb z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04c0bc00 sxtb z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04c0a3e0 sxtb z0\.d, p0/z, z31\.d + *[0-9a-f]+: 0482a000 sxth z0\.s, p0/z, z0\.s + *[0-9a-f]+: 0482a01f sxth z31\.s, p0/z, z0\.s + *[0-9a-f]+: 0482bc00 sxth z0\.s, p7/z, z0\.s + *[0-9a-f]+: 0482a3e0 sxth z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04c2a000 sxth z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04c2a01f sxth z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04c2bc00 sxth z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04c2a3e0 sxth z0\.d, p0/z, z31\.d + *[0-9a-f]+: 04c4a000 sxtw z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04c4a01f sxtw z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04c4bc00 sxtw z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04c4a3e0 sxtw z0\.d, p0/z, z31\.d + *[0-9a-f]+: 645ce000 ucvtf z0\.h, p0/z, z0\.h + *[0-9a-f]+: 645ce01f ucvtf z31\.h, p0/z, z0\.h + *[0-9a-f]+: 645cfc00 ucvtf z0\.h, p7/z, z0\.h + *[0-9a-f]+: 645ce3e0 ucvtf z0\.h, p0/z, z31\.h + *[0-9a-f]+: 645da000 ucvtf z0\.h, p0/z, z0\.s + *[0-9a-f]+: 645da01f ucvtf z31\.h, p0/z, z0\.s + *[0-9a-f]+: 645dbc00 ucvtf z0\.h, p7/z, z0\.s + *[0-9a-f]+: 645da3e0 ucvtf z0\.h, p0/z, z31\.s + *[0-9a-f]+: 649da000 ucvtf z0\.s, p0/z, z0\.s + *[0-9a-f]+: 649da01f ucvtf z31\.s, p0/z, z0\.s + *[0-9a-f]+: 649dbc00 ucvtf z0\.s, p7/z, z0\.s + *[0-9a-f]+: 649da3e0 ucvtf z0\.s, p0/z, z31\.s + *[0-9a-f]+: 64dca000 ucvtf z0\.d, p0/z, z0\.s + *[0-9a-f]+: 64dca01f ucvtf z31\.d, p0/z, z0\.s + *[0-9a-f]+: 64dcbc00 ucvtf z0\.d, p7/z, z0\.s + *[0-9a-f]+: 64dca3e0 ucvtf z0\.d, p0/z, z31\.s + *[0-9a-f]+: 645de000 ucvtf z0\.h, p0/z, z0\.d + *[0-9a-f]+: 645de01f ucvtf z31\.h, p0/z, z0\.d + *[0-9a-f]+: 645dfc00 ucvtf z0\.h, p7/z, z0\.d + *[0-9a-f]+: 645de3e0 ucvtf z0\.h, p0/z, z31\.d + *[0-9a-f]+: 64dda000 ucvtf z0\.s, p0/z, z0\.d + *[0-9a-f]+: 64dda01f ucvtf z31\.s, p0/z, z0\.d + *[0-9a-f]+: 64ddbc00 ucvtf z0\.s, p7/z, z0\.d + *[0-9a-f]+: 64dda3e0 ucvtf z0\.s, p0/z, z31\.d + *[0-9a-f]+: 64dde000 ucvtf z0\.d, p0/z, z0\.d + *[0-9a-f]+: 64dde01f ucvtf z31\.d, p0/z, z0\.d + *[0-9a-f]+: 64ddfc00 ucvtf z0\.d, p7/z, z0\.d + *[0-9a-f]+: 64dde3e0 ucvtf z0\.d, p0/z, z31\.d + *[0-9a-f]+: 4482a000 urecpe z0\.s, p0/z, z0\.s + *[0-9a-f]+: 4482a01f urecpe z31\.s, p0/z, z0\.s + *[0-9a-f]+: 4482bc00 urecpe z0\.s, p7/z, z0\.s + *[0-9a-f]+: 4482a3e0 urecpe z0\.s, p0/z, z31\.s + *[0-9a-f]+: 4483a000 ursqrte z0\.s, p0/z, z0\.s + *[0-9a-f]+: 4483a01f ursqrte z31\.s, p0/z, z0\.s + *[0-9a-f]+: 4483bc00 ursqrte z0\.s, p7/z, z0\.s + *[0-9a-f]+: 4483a3e0 ursqrte z0\.s, p0/z, z31\.s + *[0-9a-f]+: 0441a000 uxtb z0\.h, p0/z, z0\.h + *[0-9a-f]+: 0441a01f uxtb z31\.h, p0/z, z0\.h + *[0-9a-f]+: 0441bc00 uxtb z0\.h, p7/z, z0\.h + *[0-9a-f]+: 0441a3e0 uxtb z0\.h, p0/z, z31\.h + *[0-9a-f]+: 0481a000 uxtb z0\.s, p0/z, z0\.s + *[0-9a-f]+: 0481a01f uxtb z31\.s, p0/z, z0\.s + *[0-9a-f]+: 0481bc00 uxtb z0\.s, p7/z, z0\.s + *[0-9a-f]+: 0481a3e0 uxtb z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04c1a000 uxtb z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04c1a01f uxtb z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04c1bc00 uxtb z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04c1a3e0 uxtb z0\.d, p0/z, z31\.d + *[0-9a-f]+: 0483a000 uxth z0\.s, p0/z, z0\.s + *[0-9a-f]+: 0483a01f uxth z31\.s, p0/z, z0\.s + *[0-9a-f]+: 0483bc00 uxth z0\.s, p7/z, z0\.s + *[0-9a-f]+: 0483a3e0 uxth z0\.s, p0/z, z31\.s + *[0-9a-f]+: 04c3a000 uxth z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04c3a01f uxth z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04c3bc00 uxth z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04c3a3e0 uxth z0\.d, p0/z, z31\.d + *[0-9a-f]+: 04c5a000 uxtw z0\.d, p0/z, z0\.d + *[0-9a-f]+: 04c5a01f uxtw z31\.d, p0/z, z0\.d + *[0-9a-f]+: 04c5bc00 uxtw z0\.d, p7/z, z0\.d + *[0-9a-f]+: 04c5a3e0 uxtw z0\.d, p0/z, z31\.d diff --git a/gas/testsuite/gas/aarch64/sve2p2.s b/gas/testsuite/gas/aarch64/sve2p2.s new file mode 100644 index 0000000..a0a0175 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p2.s @@ -0,0 +1,738 @@ + abs z0.b, p0/z, z0.b + abs z31.b, p0/z, z0.b + abs z0.b, p7/z, z0.b + abs z0.b, p0/z, z31.b + abs z0.h, p0/z, z0.h + abs z31.h, p0/z, z0.h + abs z0.h, p7/z, z0.h + abs z0.h, p0/z, z31.h + abs z0.s, p0/z, z0.s + abs z31.s, p0/z, z0.s + abs z0.s, p7/z, z0.s + abs z0.s, p0/z, z31.s + abs z0.d, p0/z, z0.d + abs z31.d, p0/z, z0.d + abs z0.d, p7/z, z0.d + abs z0.d, p0/z, z31.d + + bfcvt z0.h, p0/z, z0.s + bfcvt z31.h, p0/z, z0.s + bfcvt z0.h, p7/z, z0.s + bfcvt z0.h, p0/z, z31.s + + bfcvtnt z0.h, p0/z, z0.s + bfcvtnt z31.h, p0/z, z0.s + bfcvtnt z0.h, p7/z, z0.s + bfcvtnt z0.h, p0/z, z31.s + + cls z0.b, p0/z, z0.b + cls z31.b, p0/z, z0.b + cls z0.b, p7/z, z0.b + cls z0.b, p0/z, z31.b + cls z0.h, p0/z, z0.h + cls z31.h, p0/z, z0.h + cls z0.h, p7/z, z0.h + cls z0.h, p0/z, z31.h + cls z0.s, p0/z, z0.s + cls z31.s, p0/z, z0.s + cls z0.s, p7/z, z0.s + cls z0.s, p0/z, z31.s + cls z0.d, p0/z, z0.d + cls z31.d, p0/z, z0.d + cls z0.d, p7/z, z0.d + cls z0.d, p0/z, z31.d + + clz z0.b, p0/z, z0.b + clz z31.b, p0/z, z0.b + clz z0.b, p7/z, z0.b + clz z0.b, p0/z, z31.b + clz z0.h, p0/z, z0.h + clz z31.h, p0/z, z0.h + clz z0.h, p7/z, z0.h + clz z0.h, p0/z, z31.h + clz z0.s, p0/z, z0.s + clz z31.s, p0/z, z0.s + clz z0.s, p7/z, z0.s + clz z0.s, p0/z, z31.s + clz z0.d, p0/z, z0.d + clz z31.d, p0/z, z0.d + clz z0.d, p7/z, z0.d + clz z0.d, p0/z, z31.d + + cnot z0.b, p0/z, z0.b + cnot z31.b, p0/z, z0.b + cnot z0.b, p7/z, z0.b + cnot z0.b, p0/z, z31.b + cnot z0.h, p0/z, z0.h + cnot z31.h, p0/z, z0.h + cnot z0.h, p7/z, z0.h + cnot z0.h, p0/z, z31.h + cnot z0.s, p0/z, z0.s + cnot z31.s, p0/z, z0.s + cnot z0.s, p7/z, z0.s + cnot z0.s, p0/z, z31.s + cnot z0.d, p0/z, z0.d + cnot z31.d, p0/z, z0.d + cnot z0.d, p7/z, z0.d + cnot z0.d, p0/z, z31.d + + cnt z0.b, p0/z, z0.b + cnt z31.b, p0/z, z0.b + cnt z0.b, p7/z, z0.b + cnt z0.b, p0/z, z31.b + cnt z0.h, p0/z, z0.h + cnt z31.h, p0/z, z0.h + cnt z0.h, p7/z, z0.h + cnt z0.h, p0/z, z31.h + cnt z0.s, p0/z, z0.s + cnt z31.s, p0/z, z0.s + cnt z0.s, p7/z, z0.s + cnt z0.s, p0/z, z31.s + cnt z0.d, p0/z, z0.d + cnt z31.d, p0/z, z0.d + cnt z0.d, p7/z, z0.d + cnt z0.d, p0/z, z31.d + +// Word and doubleword forms in nonstreaming mode are part of FEAT_SVE. + compact z0.b, p0, z0.b + compact z31.b, p0, z0.b + compact z0.b, p7, z0.b + compact z0.b, p0, z31.b + compact z0.h, p0, z0.h + compact z31.h, p0, z0.h + compact z0.h, p7, z0.h + compact z0.h, p0, z31.h + compact z0.s, p0, z0.s + compact z31.s, p0, z0.s + compact z0.s, p7, z0.s + compact z0.s, p0, z31.s + compact z0.d, p0, z0.d + compact z31.d, p0, z0.d + compact z0.d, p7, z0.d + compact z0.d, p0, z31.d + + expand z0.b, p0, z0.b + expand z31.b, p0, z0.b + expand z0.b, p7, z0.b + expand z0.b, p0, z31.b + expand z0.h, p0, z0.h + expand z31.h, p0, z0.h + expand z0.h, p7, z0.h + expand z0.h, p0, z31.h + expand z0.s, p0, z0.s + expand z31.s, p0, z0.s + expand z0.s, p7, z0.s + expand z0.s, p0, z31.s + expand z0.d, p0, z0.d + expand z31.d, p0, z0.d + expand z0.d, p7, z0.d + expand z0.d, p0, z31.d + + fabs z0.h, p0/z, z0.h + fabs z31.h, p0/z, z0.h + fabs z0.h, p7/z, z0.h + fabs z0.h, p0/z, z31.h + fabs z0.s, p0/z, z0.s + fabs z31.s, p0/z, z0.s + fabs z0.s, p7/z, z0.s + fabs z0.s, p0/z, z31.s + fabs z0.d, p0/z, z0.d + fabs z31.d, p0/z, z0.d + fabs z0.d, p7/z, z0.d + fabs z0.d, p0/z, z31.d + + fcvt z0.s, p0/z, z0.h + fcvt z31.s, p0/z, z0.h + fcvt z0.s, p7/z, z0.h + fcvt z0.s, p0/z, z31.h + fcvt z0.d, p0/z, z0.h + fcvt z31.d, p0/z, z0.h + fcvt z0.d, p7/z, z0.h + fcvt z0.d, p0/z, z31.h + fcvt z0.h, p0/z, z0.s + fcvt z31.h, p0/z, z0.s + fcvt z0.h, p7/z, z0.s + fcvt z0.h, p0/z, z31.s + fcvt z0.d, p0/z, z0.s + fcvt z31.d, p0/z, z0.s + fcvt z0.d, p7/z, z0.s + fcvt z0.d, p0/z, z31.s + fcvt z0.h, p0/z, z0.d + fcvt z31.h, p0/z, z0.d + fcvt z0.h, p7/z, z0.d + fcvt z0.h, p0/z, z31.d + fcvt z0.s, p0/z, z0.d + fcvt z31.s, p0/z, z0.d + fcvt z0.s, p7/z, z0.d + fcvt z0.s, p0/z, z31.d + + fcvtlt z0.s, p0/z, z0.h + fcvtlt z31.s, p0/z, z0.h + fcvtlt z0.s, p7/z, z0.h + fcvtlt z0.s, p0/z, z31.h + fcvtlt z0.d, p0/z, z0.s + fcvtlt z31.d, p0/z, z0.s + fcvtlt z0.d, p7/z, z0.s + fcvtlt z0.d, p0/z, z31.s + + fcvtnt z0.h, p0/z, z0.s + fcvtnt z31.h, p0/z, z0.s + fcvtnt z0.h, p7/z, z0.s + fcvtnt z0.h, p0/z, z31.s + fcvtnt z0.s, p0/z, z0.d + fcvtnt z31.s, p0/z, z0.d + fcvtnt z0.s, p7/z, z0.d + fcvtnt z0.s, p0/z, z31.d + + fcvtx z0.s, p0/z, z0.d + fcvtx z31.s, p0/z, z0.d + fcvtx z0.s, p7/z, z0.d + fcvtx z0.s, p0/z, z31.d + + fcvtxnt z0.s, p0/z, z0.d + fcvtxnt z31.s, p0/z, z0.d + fcvtxnt z0.s, p7/z, z0.d + fcvtxnt z0.s, p0/z, z31.d + + fcvtzs z0.h, p0/z, z0.h + fcvtzs z31.h, p0/z, z0.h + fcvtzs z0.h, p7/z, z0.h + fcvtzs z0.h, p0/z, z31.h + fcvtzs z0.s, p0/z, z0.h + fcvtzs z31.s, p0/z, z0.h + fcvtzs z0.s, p7/z, z0.h + fcvtzs z0.s, p0/z, z31.h + fcvtzs z0.d, p0/z, z0.h + fcvtzs z31.d, p0/z, z0.h + fcvtzs z0.d, p7/z, z0.h + fcvtzs z0.d, p0/z, z31.h + fcvtzs z0.s, p0/z, z0.s + fcvtzs z31.s, p0/z, z0.s + fcvtzs z0.s, p7/z, z0.s + fcvtzs z0.s, p0/z, z31.s + fcvtzs z0.d, p0/z, z0.s + fcvtzs z31.d, p0/z, z0.s + fcvtzs z0.d, p7/z, z0.s + fcvtzs z0.d, p0/z, z31.s + fcvtzs z0.s, p0/z, z0.d + fcvtzs z31.s, p0/z, z0.d + fcvtzs z0.s, p7/z, z0.d + fcvtzs z0.s, p0/z, z31.d + fcvtzs z0.d, p0/z, z0.d + fcvtzs z31.d, p0/z, z0.d + fcvtzs z0.d, p7/z, z0.d + fcvtzs z0.d, p0/z, z31.d + + fcvtzu z0.h, p0/z, z0.h + fcvtzu z31.h, p0/z, z0.h + fcvtzu z0.h, p7/z, z0.h + fcvtzu z0.h, p0/z, z31.h + fcvtzu z0.s, p0/z, z0.h + fcvtzu z31.s, p0/z, z0.h + fcvtzu z0.s, p7/z, z0.h + fcvtzu z0.s, p0/z, z31.h + fcvtzu z0.d, p0/z, z0.h + fcvtzu z31.d, p0/z, z0.h + fcvtzu z0.d, p7/z, z0.h + fcvtzu z0.d, p0/z, z31.h + fcvtzu z0.s, p0/z, z0.s + fcvtzu z31.s, p0/z, z0.s + fcvtzu z0.s, p7/z, z0.s + fcvtzu z0.s, p0/z, z31.s + fcvtzu z0.d, p0/z, z0.s + fcvtzu z31.d, p0/z, z0.s + fcvtzu z0.d, p7/z, z0.s + fcvtzu z0.d, p0/z, z31.s + fcvtzu z0.s, p0/z, z0.d + fcvtzu z31.s, p0/z, z0.d + fcvtzu z0.s, p7/z, z0.d + fcvtzu z0.s, p0/z, z31.d + fcvtzu z0.d, p0/z, z0.d + fcvtzu z31.d, p0/z, z0.d + fcvtzu z0.d, p7/z, z0.d + fcvtzu z0.d, p0/z, z31.d + + firstp x0, p0, p0.b + firstp xzr, p0, p0.b + firstp x0, p15, p0.b + firstp x0, p0, p15.b + firstp x0, p0, p0.h + firstp xzr, p0, p0.h + firstp x0, p15, p0.h + firstp x0, p0, p15.h + firstp x0, p0, p0.s + firstp xzr, p0, p0.s + firstp x0, p15, p0.s + firstp x0, p0, p15.s + firstp x0, p0, p0.d + firstp xzr, p0, p0.d + firstp x0, p15, p0.d + firstp x0, p0, p15.d + + flogb z0.h, p0/z, z0.h + flogb z31.h, p0/z, z0.h + flogb z0.h, p7/z, z0.h + flogb z0.h, p0/z, z31.h + flogb z0.s, p0/z, z0.s + flogb z31.s, p0/z, z0.s + flogb z0.s, p7/z, z0.s + flogb z0.s, p0/z, z31.s + flogb z0.d, p0/z, z0.d + flogb z31.d, p0/z, z0.d + flogb z0.d, p7/z, z0.d + flogb z0.d, p0/z, z31.d + + fneg z0.h, p0/z, z0.h + fneg z31.h, p0/z, z0.h + fneg z0.h, p7/z, z0.h + fneg z0.h, p0/z, z31.h + fneg z0.s, p0/z, z0.s + fneg z31.s, p0/z, z0.s + fneg z0.s, p7/z, z0.s + fneg z0.s, p0/z, z31.s + fneg z0.d, p0/z, z0.d + fneg z31.d, p0/z, z0.d + fneg z0.d, p7/z, z0.d + fneg z0.d, p0/z, z31.d + + frecpx z0.h, p0/z, z0.h + frecpx z31.h, p0/z, z0.h + frecpx z0.h, p7/z, z0.h + frecpx z0.h, p0/z, z31.h + frecpx z0.s, p0/z, z0.s + frecpx z31.s, p0/z, z0.s + frecpx z0.s, p7/z, z0.s + frecpx z0.s, p0/z, z31.s + frecpx z0.d, p0/z, z0.d + frecpx z31.d, p0/z, z0.d + frecpx z0.d, p7/z, z0.d + frecpx z0.d, p0/z, z31.d + + frint32x z0.s, p0/m, z0.s + frint32x z31.s, p0/m, z0.s + frint32x z0.s, p7/m, z0.s + frint32x z0.s, p0/m, z31.s + frint32x z0.d, p0/m, z0.d + frint32x z31.d, p0/m, z0.d + frint32x z0.d, p7/m, z0.d + frint32x z0.d, p0/m, z31.d + frint32x z0.s, p0/z, z0.s + frint32x z31.s, p0/z, z0.s + frint32x z0.s, p7/z, z0.s + frint32x z0.s, p0/z, z31.s + frint32x z0.d, p0/z, z0.d + frint32x z31.d, p0/z, z0.d + frint32x z0.d, p7/z, z0.d + frint32x z0.d, p0/z, z31.d + + frint32z z0.s, p0/m, z0.s + frint32z z31.s, p0/m, z0.s + frint32z z0.s, p7/m, z0.s + frint32z z0.s, p0/m, z31.s + frint32z z0.d, p0/m, z0.d + frint32z z31.d, p0/m, z0.d + frint32z z0.d, p7/m, z0.d + frint32z z0.d, p0/m, z31.d + frint32z z0.s, p0/z, z0.s + frint32z z31.s, p0/z, z0.s + frint32z z0.s, p7/z, z0.s + frint32z z0.s, p0/z, z31.s + frint32z z0.d, p0/z, z0.d + frint32z z31.d, p0/z, z0.d + frint32z z0.d, p7/z, z0.d + frint32z z0.d, p0/z, z31.d + + frint64x z0.s, p0/m, z0.s + frint64x z31.s, p0/m, z0.s + frint64x z0.s, p7/m, z0.s + frint64x z0.s, p0/m, z31.s + frint64x z0.d, p0/m, z0.d + frint64x z31.d, p0/m, z0.d + frint64x z0.d, p7/m, z0.d + frint64x z0.d, p0/m, z31.d + frint64x z0.s, p0/z, z0.s + frint64x z31.s, p0/z, z0.s + frint64x z0.s, p7/z, z0.s + frint64x z0.s, p0/z, z31.s + frint64x z0.d, p0/z, z0.d + frint64x z31.d, p0/z, z0.d + frint64x z0.d, p7/z, z0.d + frint64x z0.d, p0/z, z31.d + + frint64z z0.s, p0/m, z0.s + frint64z z31.s, p0/m, z0.s + frint64z z0.s, p7/m, z0.s + frint64z z0.s, p0/m, z31.s + frint64z z0.d, p0/m, z0.d + frint64z z31.d, p0/m, z0.d + frint64z z0.d, p7/m, z0.d + frint64z z0.d, p0/m, z31.d + frint64z z0.s, p0/z, z0.s + frint64z z31.s, p0/z, z0.s + frint64z z0.s, p7/z, z0.s + frint64z z0.s, p0/z, z31.s + frint64z z0.d, p0/z, z0.d + frint64z z31.d, p0/z, z0.d + frint64z z0.d, p7/z, z0.d + frint64z z0.d, p0/z, z31.d + + frintx z0.h, p0/z, z0.h + frintx z31.h, p0/z, z0.h + frintx z0.h, p7/z, z0.h + frintx z0.h, p0/z, z31.h + frintx z0.s, p0/z, z0.s + frintx z31.s, p0/z, z0.s + frintx z0.s, p7/z, z0.s + frintx z0.s, p0/z, z31.s + frintx z0.d, p0/z, z0.d + frintx z31.d, p0/z, z0.d + frintx z0.d, p7/z, z0.d + frintx z0.d, p0/z, z31.d + + frinti z0.h, p0/z, z0.h + frinti z31.h, p0/z, z0.h + frinti z0.h, p7/z, z0.h + frinti z0.h, p0/z, z31.h + frinti z0.s, p0/z, z0.s + frinti z31.s, p0/z, z0.s + frinti z0.s, p7/z, z0.s + frinti z0.s, p0/z, z31.s + frinti z0.d, p0/z, z0.d + frinti z31.d, p0/z, z0.d + frinti z0.d, p7/z, z0.d + frinti z0.d, p0/z, z31.d + + frinta z0.h, p0/z, z0.h + frinta z31.h, p0/z, z0.h + frinta z0.h, p7/z, z0.h + frinta z0.h, p0/z, z31.h + frinta z0.s, p0/z, z0.s + frinta z31.s, p0/z, z0.s + frinta z0.s, p7/z, z0.s + frinta z0.s, p0/z, z31.s + frinta z0.d, p0/z, z0.d + frinta z31.d, p0/z, z0.d + frinta z0.d, p7/z, z0.d + frinta z0.d, p0/z, z31.d + + frintn z0.h, p0/z, z0.h + frintn z31.h, p0/z, z0.h + frintn z0.h, p7/z, z0.h + frintn z0.h, p0/z, z31.h + frintn z0.s, p0/z, z0.s + frintn z31.s, p0/z, z0.s + frintn z0.s, p7/z, z0.s + frintn z0.s, p0/z, z31.s + frintn z0.d, p0/z, z0.d + frintn z31.d, p0/z, z0.d + frintn z0.d, p7/z, z0.d + frintn z0.d, p0/z, z31.d + + frintz z0.h, p0/z, z0.h + frintz z31.h, p0/z, z0.h + frintz z0.h, p7/z, z0.h + frintz z0.h, p0/z, z31.h + frintz z0.s, p0/z, z0.s + frintz z31.s, p0/z, z0.s + frintz z0.s, p7/z, z0.s + frintz z0.s, p0/z, z31.s + frintz z0.d, p0/z, z0.d + frintz z31.d, p0/z, z0.d + frintz z0.d, p7/z, z0.d + frintz z0.d, p0/z, z31.d + + frintm z0.h, p0/z, z0.h + frintm z31.h, p0/z, z0.h + frintm z0.h, p7/z, z0.h + frintm z0.h, p0/z, z31.h + frintm z0.s, p0/z, z0.s + frintm z31.s, p0/z, z0.s + frintm z0.s, p7/z, z0.s + frintm z0.s, p0/z, z31.s + frintm z0.d, p0/z, z0.d + frintm z31.d, p0/z, z0.d + frintm z0.d, p7/z, z0.d + frintm z0.d, p0/z, z31.d + + frintp z0.h, p0/z, z0.h + frintp z31.h, p0/z, z0.h + frintp z0.h, p7/z, z0.h + frintp z0.h, p0/z, z31.h + frintp z0.s, p0/z, z0.s + frintp z31.s, p0/z, z0.s + frintp z0.s, p7/z, z0.s + frintp z0.s, p0/z, z31.s + frintp z0.d, p0/z, z0.d + frintp z31.d, p0/z, z0.d + frintp z0.d, p7/z, z0.d + frintp z0.d, p0/z, z31.d + + fsqrt z0.h, p0/z, z0.h + fsqrt z31.h, p0/z, z0.h + fsqrt z0.h, p7/z, z0.h + fsqrt z0.h, p0/z, z31.h + fsqrt z0.s, p0/z, z0.s + fsqrt z31.s, p0/z, z0.s + fsqrt z0.s, p7/z, z0.s + fsqrt z0.s, p0/z, z31.s + fsqrt z0.d, p0/z, z0.d + fsqrt z31.d, p0/z, z0.d + fsqrt z0.d, p7/z, z0.d + fsqrt z0.d, p0/z, z31.d + + lastp x0, p0, p0.b + lastp xzr, p0, p0.b + lastp x0, p15, p0.b + lastp x0, p0, p15.b + lastp x0, p0, p0.h + lastp xzr, p0, p0.h + lastp x0, p15, p0.h + lastp x0, p0, p15.h + lastp x0, p0, p0.s + lastp xzr, p0, p0.s + lastp x0, p15, p0.s + lastp x0, p0, p15.s + lastp x0, p0, p0.d + lastp xzr, p0, p0.d + lastp x0, p15, p0.d + lastp x0, p0, p15.d + + neg z0.b, p0/z, z0.b + neg z31.b, p0/z, z0.b + neg z0.b, p7/z, z0.b + neg z0.b, p0/z, z31.b + neg z0.h, p0/z, z0.h + neg z31.h, p0/z, z0.h + neg z0.h, p7/z, z0.h + neg z0.h, p0/z, z31.h + neg z0.s, p0/z, z0.s + neg z31.s, p0/z, z0.s + neg z0.s, p7/z, z0.s + neg z0.s, p0/z, z31.s + neg z0.d, p0/z, z0.d + neg z31.d, p0/z, z0.d + neg z0.d, p7/z, z0.d + neg z0.d, p0/z, z31.d + + not z0.b, p0/z, z0.b + not z31.b, p0/z, z0.b + not z0.b, p7/z, z0.b + not z0.b, p0/z, z31.b + not z0.h, p0/z, z0.h + not z31.h, p0/z, z0.h + not z0.h, p7/z, z0.h + not z0.h, p0/z, z31.h + not z0.s, p0/z, z0.s + not z31.s, p0/z, z0.s + not z0.s, p7/z, z0.s + not z0.s, p0/z, z31.s + not z0.d, p0/z, z0.d + not z31.d, p0/z, z0.d + not z0.d, p7/z, z0.d + not z0.d, p0/z, z31.d + + rbit z0.b, p0/z, z0.b + rbit z31.b, p0/z, z0.b + rbit z0.b, p7/z, z0.b + rbit z0.b, p0/z, z31.b + rbit z0.h, p0/z, z0.h + rbit z31.h, p0/z, z0.h + rbit z0.h, p7/z, z0.h + rbit z0.h, p0/z, z31.h + rbit z0.s, p0/z, z0.s + rbit z31.s, p0/z, z0.s + rbit z0.s, p7/z, z0.s + rbit z0.s, p0/z, z31.s + rbit z0.d, p0/z, z0.d + rbit z31.d, p0/z, z0.d + rbit z0.d, p7/z, z0.d + rbit z0.d, p0/z, z31.d + + revb z0.h, p0/z, z0.h + revb z31.h, p0/z, z0.h + revb z0.h, p7/z, z0.h + revb z0.h, p0/z, z31.h + revb z0.s, p0/z, z0.s + revb z31.s, p0/z, z0.s + revb z0.s, p7/z, z0.s + revb z0.s, p0/z, z31.s + revb z0.d, p0/z, z0.d + revb z31.d, p0/z, z0.d + revb z0.d, p7/z, z0.d + revb z0.d, p0/z, z31.d + + revh z0.s, p0/z, z0.s + revh z31.s, p0/z, z0.s + revh z0.s, p7/z, z0.s + revh z0.s, p0/z, z31.s + revh z0.d, p0/z, z0.d + revh z31.d, p0/z, z0.d + revh z0.d, p7/z, z0.d + revh z0.d, p0/z, z31.d + + revw z0.d, p0/z, z0.d + revw z31.d, p0/z, z0.d + revw z0.d, p7/z, z0.d + revw z0.d, p0/z, z31.d + + revd z0.q, p0/z, z0.q + revd z31.q, p0/z, z0.q + revd z0.q, p7/z, z0.q + revd z0.q, p0/z, z31.q + + scvtf z0.h, p0/z, z0.h + scvtf z31.h, p0/z, z0.h + scvtf z0.h, p7/z, z0.h + scvtf z0.h, p0/z, z31.h + scvtf z0.h, p0/z, z0.s + scvtf z31.h, p0/z, z0.s + scvtf z0.h, p7/z, z0.s + scvtf z0.h, p0/z, z31.s + scvtf z0.s, p0/z, z0.s + scvtf z31.s, p0/z, z0.s + scvtf z0.s, p7/z, z0.s + scvtf z0.s, p0/z, z31.s + scvtf z0.d, p0/z, z0.s + scvtf z31.d, p0/z, z0.s + scvtf z0.d, p7/z, z0.s + scvtf z0.d, p0/z, z31.s + scvtf z0.h, p0/z, z0.d + scvtf z31.h, p0/z, z0.d + scvtf z0.h, p7/z, z0.d + scvtf z0.h, p0/z, z31.d + scvtf z0.s, p0/z, z0.d + scvtf z31.s, p0/z, z0.d + scvtf z0.s, p7/z, z0.d + scvtf z0.s, p0/z, z31.d + scvtf z0.d, p0/z, z0.d + scvtf z31.d, p0/z, z0.d + scvtf z0.d, p7/z, z0.d + scvtf z0.d, p0/z, z31.d + + sqabs z0.b, p0/z, z0.b + sqabs z31.b, p0/z, z0.b + sqabs z0.b, p7/z, z0.b + sqabs z0.b, p0/z, z31.b + sqabs z0.h, p0/z, z0.h + sqabs z31.h, p0/z, z0.h + sqabs z0.h, p7/z, z0.h + sqabs z0.h, p0/z, z31.h + sqabs z0.s, p0/z, z0.s + sqabs z31.s, p0/z, z0.s + sqabs z0.s, p7/z, z0.s + sqabs z0.s, p0/z, z31.s + sqabs z0.d, p0/z, z0.d + sqabs z31.d, p0/z, z0.d + sqabs z0.d, p7/z, z0.d + sqabs z0.d, p0/z, z31.d + + sqneg z0.b, p0/z, z0.b + sqneg z31.b, p0/z, z0.b + sqneg z0.b, p7/z, z0.b + sqneg z0.b, p0/z, z31.b + sqneg z0.h, p0/z, z0.h + sqneg z31.h, p0/z, z0.h + sqneg z0.h, p7/z, z0.h + sqneg z0.h, p0/z, z31.h + sqneg z0.s, p0/z, z0.s + sqneg z31.s, p0/z, z0.s + sqneg z0.s, p7/z, z0.s + sqneg z0.s, p0/z, z31.s + sqneg z0.d, p0/z, z0.d + sqneg z31.d, p0/z, z0.d + sqneg z0.d, p7/z, z0.d + sqneg z0.d, p0/z, z31.d + + sxtb z0.h, p0/z, z0.h + sxtb z31.h, p0/z, z0.h + sxtb z0.h, p7/z, z0.h + sxtb z0.h, p0/z, z31.h + sxtb z0.s, p0/z, z0.s + sxtb z31.s, p0/z, z0.s + sxtb z0.s, p7/z, z0.s + sxtb z0.s, p0/z, z31.s + sxtb z0.d, p0/z, z0.d + sxtb z31.d, p0/z, z0.d + sxtb z0.d, p7/z, z0.d + sxtb z0.d, p0/z, z31.d + + sxth z0.s, p0/z, z0.s + sxth z31.s, p0/z, z0.s + sxth z0.s, p7/z, z0.s + sxth z0.s, p0/z, z31.s + sxth z0.d, p0/z, z0.d + sxth z31.d, p0/z, z0.d + sxth z0.d, p7/z, z0.d + sxth z0.d, p0/z, z31.d + + sxtw z0.d, p0/z, z0.d + sxtw z31.d, p0/z, z0.d + sxtw z0.d, p7/z, z0.d + sxtw z0.d, p0/z, z31.d + + ucvtf z0.h, p0/z, z0.h + ucvtf z31.h, p0/z, z0.h + ucvtf z0.h, p7/z, z0.h + ucvtf z0.h, p0/z, z31.h + ucvtf z0.h, p0/z, z0.s + ucvtf z31.h, p0/z, z0.s + ucvtf z0.h, p7/z, z0.s + ucvtf z0.h, p0/z, z31.s + ucvtf z0.s, p0/z, z0.s + ucvtf z31.s, p0/z, z0.s + ucvtf z0.s, p7/z, z0.s + ucvtf z0.s, p0/z, z31.s + ucvtf z0.d, p0/z, z0.s + ucvtf z31.d, p0/z, z0.s + ucvtf z0.d, p7/z, z0.s + ucvtf z0.d, p0/z, z31.s + ucvtf z0.h, p0/z, z0.d + ucvtf z31.h, p0/z, z0.d + ucvtf z0.h, p7/z, z0.d + ucvtf z0.h, p0/z, z31.d + ucvtf z0.s, p0/z, z0.d + ucvtf z31.s, p0/z, z0.d + ucvtf z0.s, p7/z, z0.d + ucvtf z0.s, p0/z, z31.d + ucvtf z0.d, p0/z, z0.d + ucvtf z31.d, p0/z, z0.d + ucvtf z0.d, p7/z, z0.d + ucvtf z0.d, p0/z, z31.d + + urecpe z0.s, p0/z, z0.s + urecpe z31.s, p0/z, z0.s + urecpe z0.s, p7/z, z0.s + urecpe z0.s, p0/z, z31.s + + ursqrte z0.s, p0/z, z0.s + ursqrte z31.s, p0/z, z0.s + ursqrte z0.s, p7/z, z0.s + ursqrte z0.s, p0/z, z31.s + + uxtb z0.h, p0/z, z0.h + uxtb z31.h, p0/z, z0.h + uxtb z0.h, p7/z, z0.h + uxtb z0.h, p0/z, z31.h + uxtb z0.s, p0/z, z0.s + uxtb z31.s, p0/z, z0.s + uxtb z0.s, p7/z, z0.s + uxtb z0.s, p0/z, z31.s + uxtb z0.d, p0/z, z0.d + uxtb z31.d, p0/z, z0.d + uxtb z0.d, p7/z, z0.d + uxtb z0.d, p0/z, z31.d + + uxth z0.s, p0/z, z0.s + uxth z31.s, p0/z, z0.s + uxth z0.s, p7/z, z0.s + uxth z0.s, p0/z, z31.s + uxth z0.d, p0/z, z0.d + uxth z31.d, p0/z, z0.d + uxth z0.d, p7/z, z0.d + uxth z0.d, p0/z, z31.d + + uxtw z0.d, p0/z, z0.d + uxtw z31.d, p0/z, z0.d + uxtw z0.d, p7/z, z0.d + uxtw z0.d, p0/z, z31.d + diff --git a/gas/testsuite/gas/riscv/option-arch-dis.d b/gas/testsuite/gas/riscv/option-arch-dis.d index 6768fe7..e4b603b 100644 --- a/gas/testsuite/gas/riscv/option-arch-dis.d +++ b/gas/testsuite/gas/riscv/option-arch-dis.d @@ -22,5 +22,5 @@ Disassembly of section .text: [ ]+2:[ ]+00b50533[ ]+add[ ]+a0,a0,a1 [ ]+6:[ ]+00302573[ ]+frcsr[ ]+a0 [ ]+a:[ ]+952e[ ]+add[ ]+a0,a0,a1 -[ ]+c:[ ]+c8002573[ ]+.insn[ ]+4, 0xc8002573 +[ ]+c:[ ]+c8002573[ ]+rdcycleh[ ]+a0 #... diff --git a/gas/testsuite/gas/riscv/option-arch.s b/gas/testsuite/gas/riscv/option-arch.s index 4d2d261..a37659f 100644 --- a/gas/testsuite/gas/riscv/option-arch.s +++ b/gas/testsuite/gas/riscv/option-arch.s @@ -7,5 +7,5 @@ frcsr a0 .option pop .option arch, +m3p0, +d3p0, +xvendor32x3p0 add a0, a0, a1 # func-level, rv64i_m3p0_d3p0_c_xvendor32x3p0 -.option arch, rv32i2p1c2p0 # FIXME: maybe we should adjust xlen in dis-assembler according to mappin symbols? -rdcycleh a0 # func-level, rv32i2p1_c2p0 +.option arch, rv32i2p1c2p0 +rdcycleh a0 # func-level, rv32i2p1_c2p0, won't affcet file-level attribute diff --git a/gas/testsuite/gas/riscv/option-norvc.d b/gas/testsuite/gas/riscv/option-norvc.d new file mode 100644 index 0000000..6f36ed6 --- /dev/null +++ b/gas/testsuite/gas/riscv/option-norvc.d @@ -0,0 +1,48 @@ +#as: -misa-spec=2.2 -march=rv64i +#source: option-norvc.s +#objdump: -d --syms --special-syms -Mno-aliases + +.*:[ ]+file format .* + +SYMBOL TABLE: +0+00 l d .text 0+00 .text +0+00 l d .data 0+00 .data +0+00 l d .bss 0+00 .bss +0+00 l .text 0+00 \$xrv64i2p0_c2p0 +0+02 l .text 0+00 \$xrv64i2p0 +0+06 l .text 0+00 \$xrv32i2p0_f2p0_c2p0 +0+08 l .text 0+00 \$xrv32i2p0_f2p0 +0+0c l .text 0+00 \$xrv64i2p0_f2p0_d2p0_c2p0 +0+0e l .text 0+00 \$xrv64i2p0_f2p0_d2p0 +0+12 l .text 0+00 \$xrv64i2p0_f2p0_d2p0_zca1p0 +0+14 l .text 0+00 \$xrv64i2p0_f2p0_d2p0 +0+18 l .text 0+00 \$xrv32i2p0_f2p0_zca1p0_zcf1p0 +0+1a l .text 0+00 \$xrv32i2p0_f2p0 +0+1e l .text 0+00 \$xrv64i2p0_f2p0_d2p0_zca1p0_zcd1p0 +0+20 l .text 0+00 \$xrv64i2p0_f2p0_d2p0 +0+24 l .text 0+00 \$xrv32i2p0_zilsd1p0_zca1p0_zcb1p0_zclsd1p0 +0+28 l .text 0+00 \$xrv32i2p0_zilsd1p0 +0+30 l .text 0+00 \$xrv64i2p0 +0+0 l d .riscv.attributes 0+00 .riscv.attributes + + +Disassembly of section .text: + +0+000 <.text>: +[ ]+[0-9a-f]+:[ ]+0001[ ]+c\.addi[ ]+zero,0 +[ ]+[0-9a-f]+:[ ]+00000013[ ]+addi[ ]+zero,zero,0 +[ ]+[0-9a-f]+:[ ]+6108[ ]+c\.flw[ ]+fa0,0\(a0\) +[ ]+[0-9a-f]+:[ ]+00052507[ ]+flw[ ]+fa0,0\(a0\) +[ ]+[0-9a-f]+:[ ]+2108[ ]+c\.fld[ ]+fa0,0\(a0\) +[ ]+[0-9a-f]+:[ ]+00053507[ ]+fld[ ]+fa0,0\(a0\) +[ ]+[0-9a-f]+:[ ]+0001[ ]+c\.addi[ ]+zero,0 +[ ]+[0-9a-f]+:[ ]+00000013[ ]+addi[ ]+zero,zero,0 +[ ]+[0-9a-f]+:[ ]+6108[ ]+c\.flw[ ]+fa0,0\(a0\) +[ ]+[0-9a-f]+:[ ]+00052507[ ]+flw[ ]+fa0,0\(a0\) +[ ]+[0-9a-f]+:[ ]+2108[ ]+c\.fld[ ]+fa0,0\(a0\) +[ ]+[0-9a-f]+:[ ]+00053507[ ]+fld[ ]+fa0,0\(a0\) +[ ]+[0-9a-f]+:[ ]+8020[ ]+c\.lbu[ ]+s0,2\(s0\) +[ ]+[0-9a-f]+:[ ]+6080[ ]+c\.ld[ ]+s0,0\(s1\) +[ ]+[0-9a-f]+:[ ]+00244403[ ]+lbu[ ]+s0,2\(s0\) +[ ]+[0-9a-f]+:[ ]+0004b403[ ]+ld[ ]+s0,0\(s1\) +#... diff --git a/gas/testsuite/gas/riscv/option-norvc.s b/gas/testsuite/gas/riscv/option-norvc.s new file mode 100644 index 0000000..d4f05e6 --- /dev/null +++ b/gas/testsuite/gas/riscv/option-norvc.s @@ -0,0 +1,50 @@ +.option rvc +nop +.option norvc +nop + +.option push +.option arch, rv32i +.option arch, +c,+f +flw fa0, 0(a0) +.option norvc +flw fa0, 0(a0) +.option pop + +.option arch, +c,+d +fld fa0, 0(a0) +.option norvc +fld fa0, 0(a0) + +.option arch, +zca +nop +.option norvc +nop + +.option push +.option arch, rv32i +.option arch, +zcf +flw fa0, 0(a0) +.option norvc +flw fa0, 0(a0) +.option pop + +.option arch, +zcd +fld fa0, 0(a0) +.option norvc +fld fa0, 0(a0) + +.option push +.option arch, rv32i +.option arch, +zcb,+zclsd +lbu x8,2(x8) +ld x8, 0(x9) +.option norvc +lbu x8,2(x8) +ld x8, 0(x9) +.option pop + +.option arch, rv64i +.option arch, +zcmp,+zcmop,+zcmt +.option norvc +nop diff --git a/gas/write.c b/gas/write.c index 4d95d76..455dc44 100644 --- a/gas/write.c +++ b/gas/write.c @@ -142,7 +142,7 @@ fix_new_internal (fragS *frag, /* Which frag? */ n_fixups++; - fixP = (fixS *) obstack_alloc (¬es, sizeof (fixS)); + fixP = obstack_alloc (¬es, sizeof (fixS)); fixP->fx_frag = frag; fixP->fx_where = where; @@ -222,7 +222,7 @@ fix_new (fragS *frag, /* Which frag? */ RELOC_ENUM r_type /* Relocation type. */) { return fix_new_internal (frag, where, size, add_symbol, - (symbolS *) NULL, offset, pcrel, r_type, false); + NULL, offset, pcrel, r_type, false); } /* Create a fixup for an expression. Currently we only support fixups @@ -290,7 +290,7 @@ fix_at_start (fragS *frag, unsigned long size, symbolS *add_symbol, offsetT offset, int pcrel, RELOC_ENUM r_type) { return fix_new_internal (frag, 0, size, add_symbol, - (symbolS *) NULL, offset, pcrel, r_type, true); + NULL, offset, pcrel, r_type, true); } /* Generic function to determine whether a fixup requires a relocation. */ @@ -352,7 +352,7 @@ get_recorded_alignment (segT seg) static void renumber_sections (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *countparg) { - int *countp = (int *) countparg; + int *countp = countparg; sec->index = *countp; ++*countp; @@ -369,9 +369,9 @@ chain_frchains_together_1 (segT section, struct frchain *frchp) prev_frag->fr_next = frchp->frch_root; prev_frag = frchp->frch_last; gas_assert (prev_frag->fr_type != 0); - if (frchp->fix_root != (fixS *) NULL) + if (frchp->fix_root != NULL) { - if (seg_info (section)->fix_root == (fixS *) NULL) + if (seg_info (section)->fix_root == NULL) seg_info (section)->fix_root = frchp->fix_root; prev_fix->fx_next = frchp->fix_root; seg_info (section)->fix_tail = frchp->fix_tail; @@ -395,7 +395,7 @@ chain_frchains_together (bfd *abfd ATTRIBUTE_UNUSED, /* BFD may have introduced its own sections without using subseg_new, so it is possible that seg_info is NULL. */ info = seg_info (section); - if (info != (segment_info_type *) NULL) + if (info != NULL) info->frchainP->frch_last = chain_frchains_together_1 (section, info->frchainP); @@ -553,7 +553,7 @@ static void relax_seg (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *xxx) { segment_info_type *seginfo = seg_info (sec); - struct relax_seg_info *info = (struct relax_seg_info *) xxx; + struct relax_seg_info *info = xxx; if (seginfo && seginfo->frchainP && relax_segment (seginfo->frchainP->frch_root, sec, info->pass)) @@ -587,8 +587,8 @@ size_seg (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *xxx ATTRIBUTE_UNUSED) size = 0; flags = bfd_section_flags (sec); - if (size == 0 && bfd_section_size (sec) != 0 && - (flags & SEC_HAS_CONTENTS) != 0) + if (size == 0 && bfd_section_size (sec) != 0 + && (flags & SEC_HAS_CONTENTS) != 0) return; if (size > 0 && ! seginfo->bss) @@ -1293,7 +1293,7 @@ write_relocs (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, n = 0; r = my_reloc_list; last_frag = NULL; - for (fixp = seginfo->fix_root; fixp != (fixS *) NULL; fixp = fixp->fx_next) + for (fixp = seginfo->fix_root; fixp != NULL; fixp = fixp->fx_next) { int fx_size, slack; valueT loc; @@ -1668,9 +1668,8 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED, if (f->fr_fix) { - x = bfd_set_section_contents (stdoutput, sec, - f->fr_literal, (file_ptr) offset, - (bfd_size_type) f->fr_fix); + x = bfd_set_section_contents (stdoutput, sec, f->fr_literal, + offset, f->fr_fix); if (!x) as_fatal (ngettext ("can't write %ld byte " "to section %s of %s: '%s'", @@ -1694,10 +1693,8 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED, /* Do it the old way. Can this ever happen? */ while (count--) { - x = bfd_set_section_contents (stdoutput, sec, - fill_literal, - (file_ptr) offset, - (bfd_size_type) fill_size); + x = bfd_set_section_contents (stdoutput, sec, fill_literal, + offset, fill_size); if (!x) as_fatal (ngettext ("can't fill %ld byte " "in section %s of %s: '%s'", @@ -1732,9 +1729,8 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED, for (; count > 0; count -= n_per_buf) { n_per_buf = n_per_buf > count ? count : n_per_buf; - x = bfd_set_section_contents - (stdoutput, sec, buf, (file_ptr) offset, - (bfd_size_type) n_per_buf * fill_size); + x = bfd_set_section_contents (stdoutput, sec, buf, offset, + n_per_buf * fill_size); if (!x) as_fatal (ngettext ("can't fill %ld byte " "in section %s of %s: '%s'", @@ -2145,7 +2141,7 @@ write_object_file (void) bfd_map_over_sections (stdoutput, renumber_sections, &i); } - bfd_map_over_sections (stdoutput, chain_frchains_together, (char *) 0); + bfd_map_over_sections (stdoutput, chain_frchains_together, NULL); /* We have two segments. If user gave -R flag, then we must put the data frags into the text segment. Do this before relaxing so @@ -2167,12 +2163,12 @@ write_object_file (void) struct broken_word *brokp; for (brokp = broken_words; - brokp != (struct broken_word *) NULL; + brokp != NULL; brokp = brokp->next_broken_word) { brokp->added = 0; - if (brokp->dispfrag != (fragS *) NULL + if (brokp->dispfrag != NULL && brokp->dispfrag->fr_type == rs_broken_word) brokp->dispfrag->fr_subtype = 0; } @@ -2194,7 +2190,7 @@ write_object_file (void) TC_FINALIZE_SYMS_BEFORE_SIZE_SEG to 0. */ finalize_syms = TC_FINALIZE_SYMS_BEFORE_SIZE_SEG; - bfd_map_over_sections (stdoutput, size_seg, (char *) 0); + bfd_map_over_sections (stdoutput, size_seg, NULL); /* Relaxation has completed. Freeze all syms. */ finalize_syms = 1; @@ -2335,7 +2331,7 @@ write_object_file (void) obj_frob_file_before_adjust (); #endif - bfd_map_over_sections (stdoutput, adjust_reloc_syms, (char *) 0); + bfd_map_over_sections (stdoutput, adjust_reloc_syms, NULL); #ifdef tc_frob_file_before_fix tc_frob_file_before_fix (); @@ -2344,7 +2340,7 @@ write_object_file (void) obj_frob_file_before_fix (); #endif - bfd_map_over_sections (stdoutput, fix_segment, (char *) 0); + bfd_map_over_sections (stdoutput, fix_segment, NULL); /* Set up symbol table, and write it out. */ if (symbol_rootP) @@ -2379,7 +2375,7 @@ write_object_file (void) if (name) { const char *name2 = - decode_local_label_name ((char *) S_GET_NAME (symp)); + decode_local_label_name (S_GET_NAME (symp)); /* They only differ if `name' is a fb or dollar local label name. */ if (name2 != name && ! S_IS_DEFINED (symp)) @@ -2501,7 +2497,7 @@ write_object_file (void) obj_coff_generate_pdata (); #endif - bfd_map_over_sections (stdoutput, write_relocs, (char *) 0); + bfd_map_over_sections (stdoutput, write_relocs, NULL); reloc_list = NULL; #ifdef tc_frob_file_after_relocs @@ -2529,10 +2525,10 @@ write_object_file (void) flags = BFD_COMPRESS | BFD_COMPRESS_GABI | BFD_COMPRESS_ZSTD; stdoutput->flags |= flags & bfd_applicable_file_flags (stdoutput); if ((stdoutput->flags & BFD_COMPRESS) != 0) - bfd_map_over_sections (stdoutput, compress_debug, (char *) 0); + bfd_map_over_sections (stdoutput, compress_debug, NULL); } - bfd_map_over_sections (stdoutput, write_contents, (char *) 0); + bfd_map_over_sections (stdoutput, write_contents, NULL); } #ifdef TC_GENERIC_RELAX_TABLE @@ -2896,8 +2892,7 @@ relax_segment (struct frag *segment_frag_root, segT segment, int pass) { char buf[50]; - bfd_sprintf_vma (stdoutput, buf, - (addressT) lie->addnum); + bfd_sprintf_vma (stdoutput, buf, lie->addnum); as_warn_where (fragP->fr_file, fragP->fr_line, _(".word %s-%s+%s didn't fit"), S_GET_NAME (lie->add), diff --git a/gdb/c-lang.c b/gdb/c-lang.c index f052401..9fccc1f 100644 --- a/gdb/c-lang.c +++ b/gdb/c-lang.c @@ -484,13 +484,6 @@ convert_hex (struct type *type, const char *p, return p; } -#define ADVANCE \ - do { \ - ++p; \ - if (p == limit) \ - error (_("Malformed escape sequence")); \ - } while (0) - /* Convert an escape sequence to a target format. TYPE is the target character type to use, and DEST_CHARSET is the name of the target character set. The backslash of the escape sequence is at *P, and @@ -502,18 +495,29 @@ static const char * convert_escape (struct type *type, const char *dest_charset, const char *p, const char *limit, struct obstack *output) { + auto advance = [&] () + { + ++p; + if (p == limit) + error (_("Malformed escape sequence")); + }; + /* Skip the backslash. */ - ADVANCE; + advance (); switch (*p) { case '\\': - obstack_1grow (output, '\\'); + /* Convert the backslash itself. This is probably overkill but + it doesn't hurt to do the full conversion. */ + convert_between_encodings (host_charset (), dest_charset, + (const gdb_byte *) p, 1, 1, + output, translit_none); ++p; break; case 'x': - ADVANCE; + advance (); if (!ISXDIGIT (*p)) error (_("\\x used with no following hex digits.")); p = convert_hex (type, p, limit, output); @@ -535,7 +539,7 @@ convert_escape (struct type *type, const char *dest_charset, { int length = *p == 'u' ? 4 : 8; - ADVANCE; + advance (); if (!ISXDIGIT (*p)) error (_("\\u used with no following hex digits")); p = convert_ucn (p, limit, dest_charset, output, length); diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 9be4748..dcb7e7b 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -4915,6 +4915,16 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, return -1; } break; + case 0xd0: /* VADDSUBPD XMM1, XMM2, reg/mem */ + /* VADDSUBPS XMM1, XMM2, reg/mem */ + i386_record_modrm (ir); + /* The most significant bit of the register offset + is vex_r. */ + record_full_arch_list_add_reg (ir->regcache, + tdep->ymm0_regnum + + ir->reg + vex_r * 8); + break; + case 0xd6: /* VMOVQ reg/mem XMM */ i386_record_modrm (ir); /* This is the vmovq version that stores into a regular register diff --git a/gdb/testsuite/gdb.base/wchar.exp b/gdb/testsuite/gdb.base/wchar.exp index 70f738c..f0e4777 100644 --- a/gdb/testsuite/gdb.base/wchar.exp +++ b/gdb/testsuite/gdb.base/wchar.exp @@ -72,3 +72,7 @@ gdb_test "print repeat_p" "= $hex L\"A$cent$cent\"\.\.\." \ # From PR cli/14977, but here because it requires wchar_t. gdb_test "printf \"%ls\\n\", 0" "\\(null\\)" + +# From PR exp/33124 - a bug when converting escapes. +set wbs {L'\\'} +gdb_test "print $wbs" " = $decimal [string_to_regexp $wbs]" diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.c b/gdb/testsuite/gdb.reverse/i386-avx-reverse.c index a37b65a..f559d69 100644 --- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.c +++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.c @@ -419,6 +419,37 @@ arith_test () return 0; /* end arith_test */ } +int +vaddsubpd_test () +{ + /* start vaddsubpd_test */ + /* YMM test. */ + asm volatile ("vaddsubpd %ymm15,%ymm1,%ymm0"); + asm volatile ("vaddsubpd %ymm0,%ymm1,%ymm15"); + asm volatile ("vaddsubpd %ymm2,%ymm3,%ymm4"); + + /* XMM test. */ + asm volatile ("vaddsubpd %xmm15,%xmm1,%xmm2"); + asm volatile ("vaddsubpd %xmm0,%xmm1,%xmm10"); + return 0; /* end vaddsubpd_test */ +} + +int +vaddsubps_test () +{ + /* start vaddsubps_test */ + /* YMM test. */ + asm volatile ("vaddsubps %ymm15,%ymm1,%ymm2"); + asm volatile ("vaddsubps %ymm0,%ymm1,%ymm10"); + asm volatile ("vaddsubps %ymm2,%ymm3,%ymm4"); + + /* XMM test. */ + asm volatile ("vaddsubps %xmm0,%xmm1,%xmm15"); + asm volatile ("vaddsubps %xmm15,%xmm1,%xmm0"); + return 0; /* end vaddsubps_test */ +} + + /* This include is used to allocate the dynamic buffer and have the pointers aligned to a 32-bit boundary, so we can test instructions that require aligned memory. */ @@ -449,5 +480,7 @@ main () vpcmpeq_test (); vpmovmskb_test (); arith_test (); + vaddsubpd_test (); + vaddsubps_test (); return 0; /* end of main */ } diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp index 00f58f8..fbcff49 100644 --- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp +++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp @@ -626,3 +626,73 @@ if {[record_full_function "arith"] == true} { } gdb_test "finish" "Run till exit from.*arith_test.*" \ "leaving arith" + +# Preparation and testing vaddsubpd instructions + +gdb_test_no_output "set \$ymm15.v2_int128 = {0xcafeface, 0xcafeface}" \ + "set ymm15 for vaddsubpd" +gdb_test_no_output "set \$ymm0.v2_int128 = {0xcafeface, 0xcafeface}" \ + "set ymm0 for vaddsubpd" +gdb_test_no_output "set \$xmm2.uint128 = 0xbeef" \ + "set xmm2 for vaddsubpd" +gdb_test_no_output "set \$xmm10.uint128 = 0xbeef" \ + "set xmm10 for vaddsubpd" +gdb_test_no_output "set \$ymm3.v2_int128 = {0xcafeface, 0xcafeface}" \ + "set ymm3 for vaddsubpd" +gdb_test_no_output "set \$ymm4.v2_int128 = {0xcafeface, 0xcafeface}" \ + "set ymm4 for vaddsubpd" + +if {[record_full_function "vaddsubpd"] == true} { + test_one_register "vaddsubpd" "xmm10" \ + "0xbeef" "xmm10:" + test_one_register "vaddsubpd" "xmm2" \ + "0xbeef" "xmm2:" + test_one_register "vaddsubpd" "ymm4" \ + "0xcafeface, 0xcafeface" "ymm4: " + test_one_register "vaddsubpd" "ymm15" \ + "0xcafeface, 0xcafeface" "ymm15: " + test_one_register "vaddsubpd" "ymm0" \ + "0xcafeface, 0xcafeface" "ymm0: " + + gdb_test "record stop" "Process record is stopped.*" \ + "delete history for vaddsubpd_test" +} else { + untested "couldn't run vaddsubpd tests" +} +gdb_test "finish" "Run till exit from.*vaddsubpd_test.*" \ + "leaving vaddsubpd" + +# Preparation and testing vaddsubps instruction + +gdb_test_no_output "set \$ymm10.v2_int128 = {0xcafeface, 0xcafeface}" \ + "set ymm10 for vaddsubps" +gdb_test_no_output "set \$ymm2.v2_int128 = {0xcafeface, 0xcafeface}" \ + "set ymm2 for vaddsubps" +gdb_test_no_output "set \$xmm15.uint128 = 0xbeef" \ + "set xmm15 for vaddsubps" +gdb_test_no_output "set \$xmm0.uint128 = 0xbeef" \ + "set xmm0 for vaddsubps" +gdb_test_no_output "set \$ymm3.v2_int128 = {0xcafeface, 0xcafeface}" \ + "set ymm3 for vaddsubps" +gdb_test_no_output "set \$ymm4.v2_int128 = {0xcafeface, 0xcafeface}" \ + "set ymm4 for vaddsubps" + +if {[record_full_function "vaddsubps"] == true} { + test_one_register "vaddsubps" "xmm0" \ + "0xbeef" "xmm0: " + test_one_register "vaddsubps" "xmm15" \ + "0xbeef" "xmm15: " + test_one_register "vaddsubps" "ymm4" \ + "0xcafeface, 0xcafeface" "ymm4: " + test_one_register "vaddsubps" "ymm10" \ + "0xcafeface, 0xcafeface" "ymm10: " + test_one_register "vaddsubps" "ymm2" \ + "0xcafeface, 0xcafeface" "ymm2: " + + gdb_test "record stop" "Process record is stopped.*" \ + "delete history for vaddsubps_test" +} else { + untested "couldn't run vaddsubps tests" +} +gdb_test "finish" "Run till exit from.*vaddsubps_test.*" \ + "leaving vaddsubps" diff --git a/gprofng/src/Disasm.cc b/gprofng/src/Disasm.cc index 42fb777..3ee50d7 100644 --- a/gprofng/src/Disasm.cc +++ b/gprofng/src/Disasm.cc @@ -50,19 +50,6 @@ struct DisContext static const int MAX_DISASM_STR = 2048; -Disasm::Disasm (char *fname) -{ - dwin = NULL; - dis_str = NULL; - need_swap_endian = false; - my_stabs = Stabs::NewStabs (fname, fname); - if (my_stabs == NULL) - return; - stabs = my_stabs; - platform = stabs->get_platform (); - disasm_open (); -} - Disasm::Disasm (Platform_t _platform, Stabs *_stabs) { dwin = NULL; @@ -70,7 +57,6 @@ Disasm::Disasm (Platform_t _platform, Stabs *_stabs) need_swap_endian = false; stabs = _stabs; platform = _platform; - my_stabs = NULL; disasm_open (); } @@ -263,7 +249,6 @@ Disasm::disasm_open () Disasm::~Disasm () { - delete my_stabs; delete dwin; delete dis_str; } @@ -370,7 +355,7 @@ Disasm::get_funcname_in_plt (uint64_t pc) { if (stabs) { - Elf *elf = stabs->openElf (true); + Elf *elf = stabs->openElf (false); if (elf) return elf->get_funcname_in_plt (pc); } diff --git a/gprofng/src/Disasm.h b/gprofng/src/Disasm.h index 0326b5c..3d7159d 100644 --- a/gprofng/src/Disasm.h +++ b/gprofng/src/Disasm.h @@ -31,7 +31,6 @@ enum Platform_t; class Disasm { public: - Disasm (char *fname); Disasm (Platform_t _platform, Stabs *_stabs); ~Disasm (); void remove_disasm_hndl (void *hndl); @@ -59,7 +58,7 @@ private: disassemble_info dis_info; Data_window *dwin; - Stabs *stabs, *my_stabs; + Stabs *stabs; Platform_t platform; char addr_fmt[32]; int hex_visible; diff --git a/gprofng/src/Dwarf.cc b/gprofng/src/Dwarf.cc index 85891099..934ae44 100644 --- a/gprofng/src/Dwarf.cc +++ b/gprofng/src/Dwarf.cc @@ -368,6 +368,7 @@ Dwarf::Dwarf (Stabs *_stabs) debug_infoSec = NULL; debug_abbrevSec = NULL; debug_strSec = NULL; + debug_alt_strSec = NULL; debug_lineSec = NULL; debug_line_strSec = NULL; debug_rangesSec = NULL; @@ -378,19 +379,14 @@ Dwarf::Dwarf (Stabs *_stabs) return; } debug_infoSec = dwrGetSec (NTXT (".debug_info")); - if (debug_infoSec) - { - debug_infoSec->reloc = ElfReloc::get_elf_reloc (elf, NTXT (".rela.debug_info"), NULL); - debug_infoSec->reloc = ElfReloc::get_elf_reloc (elf, NTXT (".rel.debug_info"), debug_infoSec->reloc); - if (debug_infoSec->reloc) - debug_infoSec->reloc->dump (); - } debug_abbrevSec = dwrGetSec (NTXT (".debug_abbrev")); debug_strSec = dwrGetSec (NTXT (".debug_str")); debug_lineSec = dwrGetSec (NTXT (".debug_line")); debug_rangesSec = dwrGetSec (NTXT (".debug_ranges")); debug_line_strSec = dwrGetSec (".debug_line_str"); debug_rnglists = NULL; + if (elf->gnu_debugalt_file) + debug_alt_strSec = elf->gnu_debugalt_file->get_dwr_section (".debug_str"); if ((debug_infoSec == NULL) || (debug_abbrevSec == NULL) || (debug_lineSec == NULL)) { @@ -401,27 +397,16 @@ Dwarf::Dwarf (Stabs *_stabs) Dwarf::~Dwarf () { - delete debug_infoSec; - delete debug_abbrevSec; - delete debug_strSec; - delete debug_lineSec; - delete debug_rangesSec; Destroy (dwrCUs); } DwrSec * Dwarf::dwrGetSec (const char *sec_name) { - int secN = elf->elf_get_sec_num (sec_name); - if (secN > 0) - { - Elf_Data *elfData = elf->elf_getdata (secN); - if (elfData) - return new DwrSec ((unsigned char *) elfData->d_buf, elfData->d_size, - elf->need_swap_endian, - elf->elf_getclass () == ELFCLASS32); - } - return NULL; + DwrSec *p = elf->get_dwr_section (sec_name); + if (p) + p->offset = 0; + return p; } uint64_t @@ -1189,7 +1174,6 @@ Dwarf::get_debug_rnglists () debug_rnglistsSec->size = debug_rnglistsSec->sizeSec; debug_rnglistsSec->offset = length; } - delete debug_rnglistsSec; debug_rnglists->dump ("Dwarf::get_debug_rnglists"); return debug_rnglists; } diff --git a/gprofng/src/Dwarf.h b/gprofng/src/Dwarf.h index bf8ffb4..14d9878 100644 --- a/gprofng/src/Dwarf.h +++ b/gprofng/src/Dwarf.h @@ -78,6 +78,7 @@ public: DwrSec *debug_infoSec; DwrSec *debug_abbrevSec; DwrSec *debug_strSec; + DwrSec *debug_alt_strSec; DwrSec *debug_lineSec; DwrSec *debug_line_strSec; DwrSec *debug_rangesSec; diff --git a/gprofng/src/DwarfLib.cc b/gprofng/src/DwarfLib.cc index 79be8cf..4720ef1 100644 --- a/gprofng/src/DwarfLib.cc +++ b/gprofng/src/DwarfLib.cc @@ -35,31 +35,6 @@ #define CASE_S(x) case x: s = (char *) #x; break static char * -gelf_st_type2str (int type) -{ - static char buf[128]; - char *s; - switch (type) - { - CASE_S (STT_NOTYPE); - CASE_S (STT_OBJECT); - CASE_S (STT_FUNC); - CASE_S (STT_SECTION); - CASE_S (STT_FILE); - CASE_S (STT_COMMON); - CASE_S (STT_TLS); - // CASE_S(STT_NUM); - CASE_S (STT_LOPROC); - CASE_S (STT_HIPROC); - default: s = NTXT ("???"); - break; - } - snprintf (buf, sizeof (buf), NTXT ("%s(%d)"), s, type); - buf[sizeof (buf) - 1] = 0; - return buf; -} - -static char * special_opcode2str (int opcode) { static char buf[128]; @@ -78,6 +53,7 @@ extended_opcode2str (int opcode) CASE_S (DW_LNE_end_sequence); CASE_S (DW_LNE_set_address); CASE_S (DW_LNE_define_file); + CASE_S (DW_LNS_set_file); default: snprintf (buf, sizeof (buf), NTXT ("??? (%d)"), opcode); buf[sizeof (buf) - 1] = 0; @@ -166,234 +142,6 @@ get_string (DwrSec *sec, uint64_t off) return NULL; } - -////////////////////////////////////////////////////////// -// class ElfReloc - -ElfReloc::ElfReloc (Elf *_elf) -{ - elf = _elf; - reloc = NULL; - cur_reloc_ind = 0; -} - -ElfReloc::~ElfReloc () -{ - if (reloc) - { - reloc->destroy (); - delete reloc; - } -} - -void -ElfReloc::dump_rela_debug_sec (int sec) -{ - if (!DUMP_RELA_SEC) - return; - Elf_Internal_Shdr *shdr = elf->get_shdr (sec); - if (shdr == NULL) - return; - - Elf_Data *data = elf->elf_getdata (sec); - if (data == NULL) - return; - - uint64_t ScnSize = data->d_size; - uint64_t EntSize = shdr->sh_entsize; - if (ScnSize == 0 || EntSize == 0) - return; - - Elf_Internal_Rela rela; - int n, cnt = (int) (ScnSize / EntSize); - - char *sec_name = elf->get_sec_name (sec); - if (sec_name == NULL) // It can not be, but let's check - return; - Dprintf (DUMP_RELA_SEC, - "======= DwarfLib::dump_rela_debug_sec Section:%2d '%s'\n", - sec, sec_name); - Dprintf (DUMP_RELA_SEC, - " N |addend| offset | r_info | stt_type |\n"); - for (n = 0; n < cnt; n++) - { - if (strncmp (sec_name, NTXT (".rela."), 6) == 0) - elf->elf_getrela (data, n, &rela); - else - { - elf->elf_getrel (data, n, &rela); - rela.r_addend = 0; - } - int ndx = (int) GELF_R_SYM (rela.r_info); - Elf_Internal_Shdr *secHdr; - Elf_Internal_Sym sym; - asymbol *asym; - asym = elf->elf_getsym (ndx, &sym, false); - Dprintf (DUMP_RELA_SEC, NTXT ("%3d:%5d |%11lld |0x%016llx | %-15s|"), - n, (int) rela.r_addend, - (long long) rela.r_offset, (long long) rela.r_info, - gelf_st_type2str ((int) GELF_ST_TYPE (sym.st_info))); - switch (GELF_ST_TYPE (sym.st_info)) - { - case STT_FUNC: - case STT_OBJECT: - case STT_NOTYPE: - Dprintf (DUMP_RELA_SEC, NTXT (" img_offset=0x%llx"), - (long long) (bfd_asymbol_value (asym))); - Dprintf (DUMP_RELA_SEC, NTXT (" %s"), bfd_asymbol_name (asym)); - break; - case STT_SECTION: - secHdr = elf->get_shdr (sym.st_shndx); - if (secHdr) - { - Dprintf (DUMP_RELA_SEC, NTXT (" value=0x%016llx (%lld)"), - (long long) (secHdr->sh_offset + rela.r_addend), - (long long) (secHdr->sh_offset + rela.r_addend)); - } - break; - default: - break; - } - Dprintf (DUMP_RELA_SEC, NTXT ("\n")); - } - Dprintf (DUMP_RELA_SEC, NTXT ("\n")); -} - -void -ElfReloc::dump () -{ - if (!DUMP_ELF_RELOC || (reloc == NULL) || (reloc->size () == 0)) - return; - Dprintf (DUMP_ELF_RELOC, NTXT ("======= ElfReloc::dump\n")); - Dprintf (DUMP_ELF_RELOC, NTXT (" N | offset | value | STT_TYPE\n")); - for (int i = 0; i < reloc->size (); i++) - { - Sreloc *srlc = reloc->fetch (i); - Dprintf (DUMP_ELF_RELOC, NTXT ("%3d:%11lld |%11lld | %s\n"), - i, (long long) srlc->offset, (long long) srlc->value, - gelf_st_type2str (srlc->stt_type)); - } - Dprintf (DUMP_ELF_RELOC, NTXT ("\n")); -} - -static int -DwrRelocOffsetCmp (const void *a, const void *b) -{ - ElfReloc::Sreloc *item1 = *((ElfReloc::Sreloc **) a); - ElfReloc::Sreloc *item2 = *((ElfReloc::Sreloc **) b); - return item1->offset < item2->offset ? -1 : - item1->offset == item2->offset ? 0 : 1; -} - -ElfReloc * -ElfReloc::get_elf_reloc (Elf *elfp, char *sec_name, ElfReloc *rlc) -{ - int et = elfp->elf_getehdr ()->e_type; - if (et == ET_EXEC || et == ET_DYN) - return rlc; - int sec = elfp->elf_get_sec_num (sec_name); - if (sec == 0) - return rlc; - Elf_Internal_Shdr *shdr = elfp->get_shdr (sec); - if (shdr == NULL || shdr->sh_entsize == 0) - return rlc; - - Elf_Data *data = elfp->elf_getdata (sec); - if (data == NULL || data->d_size == 0) - return rlc; - - int cnt = (int) (data->d_size / shdr->sh_entsize); - Vector<Sreloc *> *vp = NULL; - - for (int n = 0; n < cnt; n++) - { - Elf_Internal_Shdr *secHdr; - Sreloc *srlc; - Elf_Internal_Rela rela; - if (strncmp (sec_name, NTXT (".rela."), 6) == 0) - elfp->elf_getrela (data, n, &rela); - else - { - elfp->elf_getrel (data, n, &rela); - rela.r_addend = 0; - } - int ndx = (int) GELF_R_SYM (rela.r_info); - Elf_Internal_Sym sym; - elfp->elf_getsym (ndx, &sym, false); - - srlc = new Sreloc; - srlc->offset = rela.r_offset; - srlc->value = 0; - srlc->stt_type = (int) GELF_ST_TYPE (sym.st_info); - switch (GELF_ST_TYPE (sym.st_info)) - { - case STT_FUNC: - secHdr = elfp->get_shdr (sym.st_shndx); - if (secHdr) - srlc->value = secHdr->sh_offset + sym.st_value; - break; - case STT_OBJECT: - case STT_NOTYPE: - secHdr = elfp->get_shdr (shdr->sh_info); - if (secHdr) - { - srlc->offset = rela.r_info; - srlc->value = secHdr->sh_offset + rela.r_addend; - } - break; - case STT_SECTION: - secHdr = elfp->get_shdr (sym.st_shndx); - if (secHdr) - srlc->value = rela.r_addend; - break; - default: - srlc->value = 0; - break; - } - if (rlc == NULL) - { - rlc = new ElfReloc (elfp); - vp = rlc->reloc; - } - if (vp == NULL) - { - vp = new Vector<Sreloc*>; - rlc->reloc = vp; - } - vp->append (srlc); - } - if (vp) - vp->sort (DwrRelocOffsetCmp); - if (rlc) - { - rlc->dump_rela_debug_sec (sec); - rlc->dump (); - } - return rlc; -} - -long long -ElfReloc::get_reloc_addr (long long offset) -{ - Sreloc *srlc; - int i = cur_reloc_ind - 1; - if (i >= 0 && i < reloc->size ()) - { - srlc = reloc->fetch (i); - if (srlc->offset > offset) // need to reset - cur_reloc_ind = 0; - } - for (; cur_reloc_ind < reloc->size (); cur_reloc_ind++) - { - srlc = reloc->fetch (cur_reloc_ind); - if (srlc->offset == offset) - return srlc->value; - if (srlc->offset > offset) - return 0; - } - return 0; -} - DwrLocation * DwrCU::dwr_get_location (DwrSec *secp, DwrLocation *lp) { @@ -936,6 +684,8 @@ DwrCU::form2str (int tag) CASE_S (DW_FORM_strp); CASE_S (DW_FORM_udata); CASE_S (DW_FORM_ref_addr); + CASE_S (DW_FORM_GNU_ref_alt); + CASE_S (DW_FORM_GNU_strp_alt); CASE_S (DW_FORM_ref1); CASE_S (DW_FORM_ref2); CASE_S (DW_FORM_ref4); @@ -993,6 +743,7 @@ Dwr_Tag::dump () case DW_FORM_strp: case DW_FORM_string: case DW_FORM_line_strp: + case DW_FORM_GNU_strp_alt: case DW_FORM_strp_sup: case DW_FORM_strx1: case DW_FORM_strx2: @@ -1033,6 +784,7 @@ Dwr_Tag::dump () case DW_FORM_ref_udata: case DW_FORM_indirect: case DW_FORM_sec_offset: + case DW_FORM_GNU_ref_alt: case DW_FORM_exprloc: case DW_FORM_ref_sig8: case DW_FORM_flag_present: @@ -1058,34 +810,28 @@ Dwr_Tag::dump () DwrSec::DwrSec (unsigned char *_data, uint64_t _size, bool _need_swap_endian, bool _addr32) { - isCopy = false; data = _data; sizeSec = _size; size = (data ? _size : 0); offset = 0; fmt64 = false; - reloc = NULL; need_swap_endian = _need_swap_endian; addr32 = _addr32; } DwrSec::DwrSec (DwrSec *secp, uint64_t _offset) { - isCopy = true; data = secp->data; sizeSec = secp->sizeSec; size = secp->size; offset = _offset; fmt64 = secp->fmt64; - reloc = secp->reloc; need_swap_endian = secp->need_swap_endian; addr32 = secp->addr32; } DwrSec::~DwrSec () { - if (!isCopy) - delete reloc; } bool @@ -1213,17 +959,13 @@ DwrSec::GetLong () uint64_t DwrSec::GetADDR_32 () { - uint64_t res = reloc ? reloc->get_reloc_addr (offset) : 0; - res += Get_32 (); - return res; + return Get_32 (); } uint64_t DwrSec::GetADDR_64 () { - uint64_t res = reloc ? reloc->get_reloc_addr (offset) : 0; - res += Get_64 (); - return res; + return Get_64 (); } uint64_t @@ -1283,6 +1025,7 @@ DwrSec::get_value (int dw_form) case DW_FORM_line_strp: case DW_FORM_strp: case DW_FORM_strp_sup: + case DW_FORM_GNU_strp_alt: return GetRef (); case DW_FORM_data1: return Get_8 (); @@ -1546,6 +1289,8 @@ DwrLineRegs::read_file_names_dwarf5 () nm = get_string (dwarf->debug_line_strSec, off); else if (efmt[k].form_code == DW_FORM_strp) nm = get_string (dwarf->debug_strSec, off); + else if (efmt[k].form_code == DW_FORM_GNU_strp_alt) + nm = get_string (dwarf->debug_alt_strSec, off); } break; case DW_LNCT_directory_index: @@ -1843,7 +1588,7 @@ DwrCU::DwrCU (Dwarf *_dwarf) if (DUMP_DWARFLIB) { Dprintf (DUMP_DWARFLIB, - "CU_HEADER: header_offset = 0x%08llx %lld" + "File: %s\nCU_HEADER: header_offset = 0x%08llx %lld" " next_header_offset=0x%08llx %lld\n" " abbrev_offset = 0x%08llx %lld\n" " unit_length = %lld\n" @@ -1851,6 +1596,7 @@ DwrCU::DwrCU (Dwarf *_dwarf) " address_size = %d\n" " fmt64 = %s\n" "debug_info: need_swap_endian=%s fmt64=%s addr32=%s\n", + dwarf->elf->get_location (), (long long) cu_offset, (long long) cu_offset, (long long) next_cu_offset, (long long) next_cu_offset, (long long) debug_abbrev_offset, (long long) debug_abbrev_offset, @@ -2050,6 +1796,9 @@ DwrCU::set_die (Dwarf_Die die) else atf->u.offset = debug_infoSec->GetADDR (); break; + case DW_FORM_GNU_ref_alt: + atf->u.offset = debug_infoSec->GetRef (); + break; case DW_FORM_sec_offset: atf->u.offset = debug_infoSec->GetRef (); break; @@ -2073,6 +1822,10 @@ DwrCU::set_die (Dwarf_Die die) case DW_FORM_rnglistx: atf->u.offset = debug_infoSec->GetULEB128 (); break; + case DW_FORM_GNU_strp_alt: + atf->u.offset = debug_infoSec->GetRef (); + atf->u.str = get_string (dwarf->debug_alt_strSec, atf->u.offset); + break; case DW_FORM_strx: atf->u.offset = debug_infoSec->GetULEB128 (); atf->u.str = get_string (dwarf->debug_strSec, atf->u.offset); diff --git a/gprofng/src/DwarfLib.h b/gprofng/src/DwarfLib.h index 06b19b8..49ecb41 100644 --- a/gprofng/src/DwarfLib.h +++ b/gprofng/src/DwarfLib.h @@ -23,7 +23,6 @@ #include "dwarf2.h" -class ElfReloc; class Dwr_type; class Function; class Range; @@ -76,7 +75,6 @@ public: return (uint32_t) GetULEB128 (); } - ElfReloc *reloc; uint64_t sizeSec; uint64_t size; uint64_t offset; @@ -87,7 +85,6 @@ public: int segment_selector_size; // DWARF 5 private: - bool isCopy; unsigned char *data; bool bounds_violation (uint64_t sz); }; diff --git a/gprofng/src/Elf.cc b/gprofng/src/Elf.cc index f0fd121..e63e3c3 100644 --- a/gprofng/src/Elf.cc +++ b/gprofng/src/Elf.cc @@ -28,6 +28,8 @@ #include "Map.h" #include "StringBuilder.h" #include "DbeFile.h" +#include "DbeSession.h" +#include "Dwarf.h" typedef uint32_t Elf32_Word; typedef uint32_t Elf64_Word; @@ -83,55 +85,30 @@ struct S_Elf64_Dyn } d_un; }; +#ifndef DEBUGDIR +#define DEBUGDIR "/lib/debug" +#endif +#ifndef EXTRA_DEBUG_ROOT1 +#define EXTRA_DEBUG_ROOT1 "/usr/lib/debug" +#endif +#ifndef EXTRA_DEBUG_ROOT2 +#define EXTRA_DEBUG_ROOT2 "/usr/lib/debug/usr" +#endif -// Symbol table -typedef struct -{ - Elf32_Word st_name; - Elf32_Addr st_value; - Elf32_Word st_size; - unsigned char st_info; /* bind, type: ELF_32_ST_... */ - unsigned char st_other; - Elf32_Half st_shndx; /* SHN_... */ -} Elf32_Sym; - -typedef struct -{ - Elf64_Word st_name; - unsigned char st_info; /* bind, type: ELF_64_ST_... */ - unsigned char st_other; - Elf64_Half st_shndx; /* SHN_... */ - Elf64_Addr st_value; - Elf64_Xword st_size; -} Elf64_Sym; - - -// Relocation -typedef struct -{ - Elf32_Addr r_offset; - Elf32_Word r_info; /* sym, type: ELF32_R_... */ -} Elf32_Rel; - -typedef struct -{ - Elf32_Addr r_offset; - Elf32_Word r_info; /* sym, type: ELF32_R_... */ - Elf32_Sword r_addend; -} Elf32_Rela; - -typedef struct -{ - Elf64_Addr r_offset; - Elf64_Xword r_info; /* sym, type: ELF64_R_... */ -} Elf64_Rel; +static const char *debug_dirs[] = { + DEBUGDIR, EXTRA_DEBUG_ROOT1, EXTRA_DEBUG_ROOT2, "." +}; -typedef struct +template<> void Vector<asymbol *>::dump (const char *msg) { - Elf64_Addr r_offset; - Elf64_Xword r_info; /* sym, type: ELF64_R_... */ - Elf64_Sxword r_addend; -} Elf64_Rela; + Dprintf (1, NTXT ("\nFile: %s Vector<asymbol *> [%ld]\n"), + msg ? msg : "NULL", (long) size ()); + for (long i = 0, sz = size (); i < sz; i++) + { + asymbol *sym = get (i); + Dprintf (1, " %3ld %s\n", i, sym->name); + } +} int Elf::bfd_status = -1; @@ -149,6 +126,8 @@ Elf::Elf (char *filename) : DbeMessages (), Data_window (filename) ancillary_files = NULL; elfSymbols = NULL; gnu_debug_file = NULL; + gnu_debugalt_file = NULL; + sections = NULL; dbeFile = NULL; abfd = NULL; bfd_symcnt = -1; @@ -196,23 +175,13 @@ Elf::Elf (char *filename) : DbeMessages (), Data_window (filename) } status = ELF_ERR_NONE; -#if ARCH(SPARC) - need_swap_endian = is_Intel (); -#else - need_swap_endian = !is_Intel (); -#endif - + need_swap_endian = DbeSession::is_bigendian () != bfd_big_endian (abfd); analyzerInfo = 0; - SUNW_ldynsym = 0; - gnuLink = 0; stab = 0; - stabStr = 0; stabIndex = 0; stabIndexStr = 0; stabExcl = 0; stabExclStr = 0; - symtab = 0; - dynsym = 0; info = 0; plt = 0; dwarf = false; @@ -234,20 +203,12 @@ Elf::Elf (char *filename) : DbeMessages (), Data_window (filename) stabExcl = sec; else if (streq (name, NTXT (".stab.exclstr"))) stabExclStr = sec; - else if (streq (name, NTXT (".gnu_debuglink"))) - gnuLink = sec; else if (streq (name, NTXT (".__analyzer_info"))) analyzerInfo = sec; else if (streq (name, NTXT (".info"))) info = true; else if (streq (name, NTXT (".plt"))) plt = sec; - else if (streq (name, NTXT (".SUNW_ldynsym"))) - SUNW_ldynsym = sec; - else if (streq (name, NTXT (".dynsym"))) - dynsym = sec; - else if (streq (name, NTXT (".symtab"))) - symtab = sec; else if (strncmp (name, NTXT (".debug"), 6) == 0) dwarf = true; } @@ -276,6 +237,12 @@ Elf::~Elf () } free (data); } + if (sections) + { + for (int i = 0; i < (int) ehdrp->e_shnum; i++) + delete sections[i]; + free (sections); + } if (ancillary_files) { ancillary_files->destroy (); @@ -283,6 +250,7 @@ Elf::~Elf () } delete elfSymbols; delete gnu_debug_file; + delete gnu_debugalt_file; delete dbeFile; delete synthsym; free (bfd_sym); @@ -405,9 +373,36 @@ Elf::get_sec_name (unsigned int sec) return elf_strptr (ehdrp->e_shstrndx, shdr->sh_name); } +DwrSec * +Elf::get_dwr_section (const char *sec_name) +{ + int sec_num = elf_get_sec_num (sec_name); + if (sec_num > 0) + { + if (sections == NULL) + { + sections = (DwrSec **) xmalloc (ehdrp->e_shnum * sizeof (DwrSec *)); + for (int i = 0; i < (int) ehdrp->e_shnum; i++) + sections[i] = NULL; + } + if (sections[sec_num] == NULL) + { + Elf_Data *elfData = elf_getdata (sec_num); + if (elfData) + sections[sec_num] = new DwrSec ((unsigned char *) elfData->d_buf, + elfData->d_size, need_swap_endian, + elf_getclass () == ELFCLASS32); + } + return sections[sec_num]; + } + return NULL; +} + Elf_Data * Elf::elf_getdata (unsigned int sec) { + if (sec == 0) + return NULL; if (data == NULL) { data = (Elf_Data **) xmalloc (ehdrp->e_shnum * sizeof (Elf_Data *)); @@ -572,50 +567,6 @@ Elf::elf_getsym (unsigned int ndx, Elf_Internal_Sym *dst, bool is_dynamic) return asym; } -Elf_Internal_Rela * -Elf::elf_getrel (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst) -{ - if (dst == NULL || edta == NULL || edta->d_buf == NULL) - return NULL; - if (elf_getclass () == ELFCLASS32) - { - Elf32_Rel *rel = ((Elf32_Rel *) edta->d_buf) + ndx; - dst->r_offset = decode (rel->r_offset); - dst->r_info = ELF64_R_INFO (ELF32_R_SYM (decode (rel->r_info)), - ELF32_R_TYPE (decode (rel->r_info))); - } - else - { - Elf64_Rel *rel = ((Elf64_Rel *) edta->d_buf) + ndx; - dst->r_offset = decode (rel->r_offset); - dst->r_info = decode (rel->r_info); - } - return dst; -} - -Elf_Internal_Rela * -Elf::elf_getrela (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst) -{ - if (dst == NULL || edta == NULL || edta->d_buf == NULL) - return NULL; - if (elf_getclass () == ELFCLASS32) - { - Elf32_Rela *rela = ((Elf32_Rela *) edta->d_buf) + ndx; - dst->r_offset = decode (rela->r_offset); - dst->r_addend = decode (rela->r_addend); - dst->r_info = ELF64_R_INFO (ELF32_R_SYM (decode (rela->r_info)), - ELF32_R_TYPE (decode (rela->r_info))); - } - else - { - Elf64_Rela *rela = ((Elf64_Rela *) edta->d_buf) + ndx; - dst->r_offset = decode (rela->r_offset); - dst->r_addend = decode (rela->r_addend); - dst->r_info = decode (rela->r_info); - } - return dst; -} - Elf64_Ancillary * Elf::elf_getancillary (Elf_Data *edta, unsigned int ndx, Elf64_Ancillary *dst) { @@ -676,25 +627,54 @@ Elf::get_related_file (const char *lo_name, const char *nm) return NULL; } -Elf * -Elf::find_ancillary_files (char *lo_name) +static char * +find_file (char *(bfd_func) (bfd *, const char *), bfd *abfd) { - // read the .gnu_debuglink and .SUNW_ancillary seections - if (gnu_debug_file) - return gnu_debug_file; - unsigned int sec = elf_get_sec_num (NTXT (".gnu_debuglink")); - if (sec > 0) + char *fnm = NULL; + for (size_t i = 0; i < ARR_SIZE (debug_dirs); i++) + { + fnm = bfd_func (abfd, debug_dirs[i]); + if (fnm) + break; + } + Dprintf (DUMP_DWARFLIB, "FOUND: gnu_debug_file: %s --> %s\n", + abfd->filename, fnm); + return fnm; +} + +void +Elf::find_gnu_debug_files () +{ + char *fnm; + if (gnu_debug_file == NULL) { - Elf_Data *dp = elf_getdata (sec); - if (dp) + fnm = find_file (bfd_follow_gnu_debuglink, abfd); + if (fnm) { - gnu_debug_file = get_related_file (lo_name, (char *) (dp->d_buf)); + gnu_debug_file = Elf::elf_begin (fnm); + free (fnm); if (gnu_debug_file) - return gnu_debug_file; + gnu_debug_file->find_gnu_debug_files (); + } + } + if (gnu_debugalt_file == NULL) + { + fnm = find_file (bfd_follow_gnu_debugaltlink, abfd); + if (fnm) + { + gnu_debugalt_file = Elf::elf_begin (fnm); + free (fnm); } } +} - sec = elf_get_sec_num (NTXT (".SUNW_ancillary")); +void +Elf::find_ancillary_files (const char *lo_name) +{ + // read the .SUNW_ancillary section + if (ancillary_files != NULL) + return; + unsigned int sec = elf_get_sec_num (".SUNW_ancillary"); if (sec > 0) { Elf_Internal_Shdr *shdr = get_shdr (sec); @@ -755,7 +735,6 @@ Elf::find_ancillary_files (char *lo_name) } } } - return NULL; } void @@ -828,6 +807,8 @@ Elf::get_funcname_in_plt (uint64_t pc) for (long i = 0; i < bfd_synthcnt; i++) synthsym->append (bfd_synthsym + i); synthsym->sort (cmp_sym_addr); + if (DUMP_ELF_SYM) + synthsym->dump (get_location ()); } asymbol sym, *symp = &sym; diff --git a/gprofng/src/Elf.h b/gprofng/src/Elf.h index b324c39..2d227f7 100644 --- a/gprofng/src/Elf.h +++ b/gprofng/src/Elf.h @@ -32,13 +32,12 @@ class Symbol; class DbeFile; +class DwrSec; template <class ITEM> class Vector; template <typename Key_t, typename Value_t> class Map; -#define GELF_R_SYM(info) ((info)>>32) #define GELF_ST_TYPE(info) ((info) & 0xf) #define GELF_ST_BIND(info) ((info) >> 4) -#define GELF_R_TYPE(info) ((((uint64_t)(info))<<56)>>56) #define SHF_SUNW_ABSENT 0x00200000 /* section data not present */ #define SEC_DECOMPRESSED 0x00400000 /* bfd allocated this memory */ @@ -94,10 +93,15 @@ public: char *elf_strptr (unsigned int sec, uint64_t off); long elf_getSymCount (bool is_dynamic); asymbol *elf_getsym (unsigned int ndx, Elf_Internal_Sym *dst, bool is_dynamic); - Elf_Internal_Rela *elf_getrel (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst); - Elf_Internal_Rela *elf_getrela (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst); Elf64_Ancillary *elf_getancillary (Elf_Data *edta, unsigned int ndx, Elf64_Ancillary *dst); - Elf *find_ancillary_files (char *lo_name); // read the .gnu_debuglink and .SUNW_ancillary seections + + // read the .SUNW_ancillary section + void find_ancillary_files (const char *lo_name); + + // read the .gnu_debuglink and .gnu_debugaltlink sections + void find_gnu_debug_files (); + + DwrSec *get_dwr_section (const char *sec_name); // Used in Dwarf reader const char *get_funcname_in_plt (uint64_t pc); char *get_location (); char *dump (); @@ -130,9 +134,10 @@ public: Elf_status status; Vector<Elf*> *ancillary_files; Elf *gnu_debug_file; + Elf *gnu_debugalt_file; // if the .gun_debugaltlink section presents DbeFile *dbeFile; Map<const char*, Symbol*> *elfSymbols; - unsigned int gnuLink, analyzerInfo, SUNW_ldynsym, stab, stabStr, symtab, dynsym; + unsigned int analyzerInfo, stab, stabStr; unsigned int stabIndex, stabIndexStr, stabExcl, stabExclStr, info, plt; bool dwarf; @@ -143,6 +148,7 @@ protected: int elf_datatype; Elf_Internal_Ehdr *ehdrp; Elf_Data **data; + DwrSec **sections; bfd *abfd; static int bfd_status; long bfd_symcnt; @@ -154,28 +160,4 @@ protected: Vector <asymbol *> *synthsym; }; - -class ElfReloc -{ -public: - struct Sreloc - { - long long offset; - long long value; - int stt_type; - }; - - static ElfReloc *get_elf_reloc (Elf *elf, char *sec_name, ElfReloc *rlc); - ElfReloc (Elf *_elf); - ~ElfReloc (); - long long get_reloc_addr (long long offset); - void dump (); - void dump_rela_debug_sec (int sec); - -private: - Elf *elf; - Vector<Sreloc *> *reloc; - int cur_reloc_ind; -}; - #endif diff --git a/gprofng/src/Experiment.cc b/gprofng/src/Experiment.cc index 4cbb7f6..2768927 100644 --- a/gprofng/src/Experiment.cc +++ b/gprofng/src/Experiment.cc @@ -6811,7 +6811,8 @@ Experiment::copy_file_to_common_archive (const char *name, const char *aname, * @return 0 - success */ int -Experiment::copy_file (char *name, char *aname, int hide_msg, char *common_archive, int relative_path) +Experiment::copy_file (const char *name, const char *aname, int hide_msg, + const char *common_archive, int relative_path) { if (common_archive) { diff --git a/gprofng/src/Experiment.h b/gprofng/src/Experiment.h index c85aadd..9a3d226 100644 --- a/gprofng/src/Experiment.h +++ b/gprofng/src/Experiment.h @@ -267,8 +267,8 @@ public: static int copy_file_to_archive (const char *name, const char *aname, int hide_msg); static int copy_file_to_common_archive (const char *name, const char *aname, int hide_msg, const char *common_archive, int relative_path = 0); - static int copy_file (char *name, char *aname, int hide_msg, - char *common_archive = NULL, int relative_path = 0); + static int copy_file (const char *name, const char *aname, int hide_msg, + const char *common_archive = NULL, int relative_path = 0); // get_raw_events() // action: get unfiltered packets, loading them if required diff --git a/gprofng/src/LoadObject.cc b/gprofng/src/LoadObject.cc index bf49e9d..7b4bef2 100644 --- a/gprofng/src/LoadObject.cc +++ b/gprofng/src/LoadObject.cc @@ -102,7 +102,6 @@ LoadObject::LoadObject (const char *loname) noname = dbeSession->createUnknownModule (this); modules->put (noname->get_name (), noname); pathname = NULL; - arch_name = NULL; runTimePath = NULL; objStabs = NULL; firstExp = NULL; @@ -135,7 +134,6 @@ LoadObject::~LoadObject () delete modules; delete elf_lo; free (pathname); - free (arch_name); free (runTimePath); delete objStabs; delete warnq; @@ -167,45 +165,66 @@ LoadObject::get_elf () { case Elf::ELF_ERR_CANT_OPEN_FILE: append_msg (CMSG_ERROR, GTXT ("Cannot open ELF file `%s'"), fnm); - break; + return NULL; case Elf::ELF_ERR_BAD_ELF_FORMAT: default: append_msg (CMSG_ERROR, GTXT ("Cannot read ELF header of `%s'"), fnm); - break; + return NULL; } + if (dbeFile->inArchive) + { + // Try to find gnu_debug and gnu debug_alt files in archive + char *nm = dbe_sprintf ("%s_debug", fnm); + elf_lo->gnu_debug_file = Elf::elf_begin (nm); + free (nm); + if (elf_lo->gnu_debug_file) + { + nm = dbe_sprintf ("%s_debug_alt", fnm); + elf_lo->gnu_debug_file->gnu_debugalt_file = Elf::elf_begin (nm); + free (nm); + } + nm = dbe_sprintf ("%s_alt", fnm); + elf_lo->gnu_debugalt_file = Elf::elf_begin (nm); + free (nm); + } + else if (checksum != 0 && elf_lo->elf_checksum () != 0 && + checksum != elf_lo->elf_checksum ()) + { + char *msg = dbe_sprintf (GTXT ("%s has an unexpected checksum value;" + "perhaps it was rebuilt. File ignored"), + dbeFile->get_location ()); + commentq->append (new Emsg (CMSG_ERROR, msg)); + delete msg; + delete elf_lo; + elf_lo = NULL; + return NULL; + } + elf_lo->find_gnu_debug_files (); + elf_lo->find_ancillary_files (get_pathname ()); } return elf_lo; } Stabs * -LoadObject::openDebugInfo (char *fname, Stabs::Stab_status *stp) +LoadObject::openDebugInfo (Stabs::Stab_status *stp) { if (objStabs == NULL) { - if (fname == NULL) - return NULL; - objStabs = new Stabs (fname, get_pathname ()); - Stabs::Stab_status st = objStabs->get_status (); - if ((st == Stabs::DBGD_ERR_NONE) && (checksum != 0)) + Stabs::Stab_status st = Stabs::DBGD_ERR_BAD_ELF_LIB; + Elf *elf = get_elf (); + if (elf) { - Elf *elf = get_elf (); - if (elf && (checksum != elf->elf_checksum ())) + objStabs = new Stabs (elf, get_pathname ()); + st = objStabs->get_status (); + if (st != Stabs::DBGD_ERR_NONE) { - char *buf = dbe_sprintf (GTXT ("*** Note: '%s' has an unexpected checksum value; perhaps it was rebuilt. File ignored"), - fname); - commentq->append (new Emsg (CMSG_ERROR, buf)); - delete buf; - st = Stabs::DBGD_ERR_CHK_SUM; + delete objStabs; + objStabs = NULL; } } if (stp) *stp = st; - if (st != Stabs::DBGD_ERR_NONE) - { - delete objStabs; - objStabs = NULL; - } } return objStabs; } @@ -560,7 +579,7 @@ fixFuncAlias (Vector<Function*> *SymLst) void LoadObject::post_process_functions () { - if (flags & SEG_FLAG_DYNAMIC || platform == Java) + if ((flags & SEG_FLAG_DYNAMIC) != 0 || platform == Java) return; char *msg = GTXT ("Processing Load Object Data"); @@ -726,21 +745,8 @@ LoadObject::read_stabs () delete msg; return ARCHIVE_ERR_OPEN; } - else if (checksum != 0 && checksum != elf->elf_checksum ()) - { - char *msg = dbe_sprintf (GTXT ("%s has an unexpected checksum value;" - "perhaps it was rebuilt. File ignored"), - dbeFile->get_location ()); - commentq->append (new Emsg (CMSG_ERROR, msg)); - delete msg; - return ARCHIVE_ERR_OPEN; - } Stabs::Stab_status status = Stabs::DBGD_ERR_CANT_OPEN_FILE; - char *location = dbeFile->get_location (true); - if (location == NULL) - return ARCHIVE_ERR_OPEN; - - if (openDebugInfo (location, &status)) + if (openDebugInfo (&status)) { status = objStabs->read_archive (this); isRelocatable = objStabs->is_relocatable (); diff --git a/gprofng/src/LoadObject.h b/gprofng/src/LoadObject.h index dd40ea0..c93594b 100644 --- a/gprofng/src/LoadObject.h +++ b/gprofng/src/LoadObject.h @@ -117,13 +117,6 @@ public: return pathname; } - void - set_archname (char *aname) - { - free (arch_name); - arch_name = aname; - } - bool is_relocatable () { @@ -144,7 +137,7 @@ public: Module *get_comparable_Module (Module *mod); void append_module (Module *mod); Elf *get_elf (); - Stabs *openDebugInfo (char *fname, Stabs::Stab_status *stp = NULL); + Stabs *openDebugInfo (Stabs::Stab_status *stp = NULL); Arch_status read_stabs (); Arch_status sync_read_stabs (); void post_process_functions (); @@ -192,7 +185,6 @@ private: char *pathname; // User name of object file ino64_t inode; // inode number of segment file bool isRelocatable; // is relocatable .o - char *arch_name; // .archive name Emsgqueue *warnq; Emsgqueue *commentq; Function **funcHTable; // hash table for functions diff --git a/gprofng/src/Module.cc b/gprofng/src/Module.cc index a62d3e8..55091ad 100644 --- a/gprofng/src/Module.cc +++ b/gprofng/src/Module.cc @@ -131,7 +131,7 @@ Stabs * Module::openDebugInfo () { setFile (); - objStabs = loadobject->openDebugInfo (disPath); + objStabs = loadobject->openDebugInfo (); return objStabs; } diff --git a/gprofng/src/Stabs.cc b/gprofng/src/Stabs.cc index c6d6473..116316e 100644 --- a/gprofng/src/Stabs.cc +++ b/gprofng/src/Stabs.cc @@ -163,21 +163,11 @@ Stabs::removeDupSyms () SymLst->truncate (last); } -Stabs * -Stabs::NewStabs (char *_path, char *lo_name) +Stabs::Stabs (Elf *elf, char *_lo_name) { - Stabs *stabs = new Stabs (_path, lo_name); - if (stabs->status != Stabs::DBGD_ERR_NONE) - { - delete stabs; - return NULL; - } - return stabs; -} - -Stabs::Stabs (char *_path, char *_lo_name) -{ - path = dbe_strdup (_path); + elfDis = elf; + elfDbg = elf->gnu_debug_file ? elf->gnu_debug_file : elf; + path = dbe_strdup (elf->get_location ()); lo_name = dbe_strdup (_lo_name); SymLstByName = NULL; pltSym = NULL; @@ -187,16 +177,12 @@ Stabs::Stabs (char *_path, char *_lo_name) LocalFileIdx = new Vector<int>; last_PC_to_sym = NULL; dwarf = NULL; - elfDbg = NULL; - elfDis = NULL; stabsModules = NULL; textsz = 0; wsize = Wnone; st_check_symtab = false; status = DBGD_ERR_NONE; - if (openElf (false) == NULL) - return; switch (elfDis->elf_getclass ()) { case ELFCLASS32: @@ -206,6 +192,31 @@ Stabs::Stabs (char *_path, char *_lo_name) wsize = W64; break; } + switch (elfDis->elf_getehdr ()->e_machine) + { + case EM_SPARC: + platform = Sparc; + break; + case EM_SPARC32PLUS: + platform = Sparcv8plus; + break; + case EM_SPARCV9: + platform = Sparcv9; + break; + case EM_386: + // case EM_486: + platform = Intel; + break; + case EM_X86_64: + platform = Amd64; + break; + case EM_AARCH64: + platform = Aarch64; + break; + default: + platform = Unknown; + break; + } isRelocatable = elfDis->elf_getehdr ()->e_type == ET_REL; for (unsigned int pnum = 0; pnum < elfDis->elf_getehdr ()->e_phnum; pnum++) { @@ -228,7 +239,6 @@ Stabs::~Stabs () delete SymLstByName; Destroy (SymLst); Destroy (LocalFile); - delete elfDis; delete dwarf; delete LocalLst; delete LocalFileIdx; @@ -238,90 +248,11 @@ Stabs::~Stabs () } Elf * -Stabs::openElf (char *fname, Stab_status &st) -{ - Elf::Elf_status elf_status; - Elf *elf = Elf::elf_begin (fname, &elf_status); - if (elf == NULL) - { - switch (elf_status) - { - case Elf::ELF_ERR_CANT_OPEN_FILE: - case Elf::ELF_ERR_CANT_MMAP: - case Elf::ELF_ERR_BIG_FILE: - st = DBGD_ERR_CANT_OPEN_FILE; - break; - case Elf::ELF_ERR_BAD_ELF_FORMAT: - default: - st = DBGD_ERR_BAD_ELF_FORMAT; - break; - } - return NULL; - } - if (elf->elf_version (EV_CURRENT) == EV_NONE) - { - // ELF library out of date - delete elf; - st = DBGD_ERR_BAD_ELF_LIB; - return NULL; - } - - Elf_Internal_Ehdr *ehdrp = elf->elf_getehdr (); - if (ehdrp == NULL) - { - // check machine - delete elf; - st = DBGD_ERR_BAD_ELF_FORMAT; - return NULL; - } - switch (ehdrp->e_machine) - { - case EM_SPARC: - platform = Sparc; - break; - case EM_SPARC32PLUS: - platform = Sparcv8plus; - break; - case EM_SPARCV9: - platform = Sparcv9; - break; - case EM_386: - // case EM_486: - platform = Intel; - break; - case EM_X86_64: - platform = Amd64; - break; - case EM_AARCH64: - platform = Aarch64; - break; - default: - platform = Unknown; - break; - } - return elf; -} - -Elf * Stabs::openElf (bool dbg_info) { - if (status != DBGD_ERR_NONE) - return NULL; - if (elfDis == NULL) - { - elfDis = openElf (path, status); - if (elfDis == NULL) - return NULL; - } - if (!dbg_info) - return elfDis; - if (elfDbg == NULL) - { - elfDbg = elfDis->find_ancillary_files (lo_name); - if (elfDbg == NULL) - elfDbg = elfDis; - } - return elfDbg; + if (dbg_info) + return elfDbg; + return elfDis; } bool @@ -2131,57 +2062,6 @@ Stabs::append_Function (Module *module, char *fname) return func; } -Function * -Stabs::append_Function (Module *module, char *linkerName, uint64_t pc) -{ - Dprintf (DEBUG_STABS, NTXT ("Stabs::append_Function: module=%s linkerName=%s pc=0x%llx\n"), - STR (module->get_name ()), STR (linkerName), (unsigned long long) pc); - long i; - Symbol *sitem = NULL, *sp; - Function *func; - sp = new Symbol; - if (pc) - { - sp->value = pc; - i = SymLst->bisearch (0, -1, &sp, SymFindCmp); - if (i != -1) - sitem = SymLst->fetch (i); - } - - if (!sitem && linkerName) - { - if (SymLstByName == NULL) - { - SymLstByName = SymLst->copy (); - SymLstByName->sort (SymNameCmp); - } - sp->name = linkerName; - i = SymLstByName->bisearch (0, -1, &sp, SymNameCmp); - sp->name = NULL; - if (i != -1) - sitem = SymLstByName->fetch (i); - } - delete sp; - - if (!sitem) - return NULL; - if (sitem->alias) - sitem = sitem->alias; - if (sitem->func) - return sitem->func; - - sitem->func = func = dbeSession->createFunction (); - func->img_fname = path; - func->img_offset = sitem->img_offset; - func->save_addr = sitem->save; - func->size = sitem->size; - func->module = module; - func->set_name (sitem->name); //XXXX ?? Now call it to set obj->name - module->functions->append (func); - module->loadobject->functions->append (func); - return func; -}// Stabs::append_Function - Dwarf * Stabs::openDwarf () { diff --git a/gprofng/src/Stabs.h b/gprofng/src/Stabs.h index c8da278..cd10c25 100644 --- a/gprofng/src/Stabs.h +++ b/gprofng/src/Stabs.h @@ -76,8 +76,7 @@ class Stabs { DBGD_ERR_CHK_SUM }; - static Stabs *NewStabs(char *_path, char *lo_name); - Stabs(char *_path, char *_lo_name); + Stabs(Elf *elf, char *_lo_name); ~Stabs(); bool is_relocatable(){ return isRelocatable; } @@ -100,7 +99,6 @@ class Stabs { static Function *find_func(char *fname, Vector<Function*> *functions, bool fortran, bool inner_names=false); Module *append_Module(LoadObject *lo, char *name, int lastMod = 0); Function *append_Function(Module *module, char *fname); - Function *append_Function(Module *module, char *linkerName, uint64_t pc); Function *map_PC_to_func(uint64_t pc, uint64_t &low_pc, Vector<Function*> *functions); char *path; // path to the object file char *lo_name; // User name of load object @@ -138,7 +136,6 @@ class Stabs { Vector<char*> *LocalFile; // list of local files Vector<int> *LocalFileIdx; // start index in LocalLst - Elf *openElf(char *fname, Stab_status &st); Map<const char*, Symbol*> *get_elf_symbols(); Dwarf *dwarf; diff --git a/gprofng/src/gp-archive.cc b/gprofng/src/gp-archive.cc index ee9f917..2c15da8 100644 --- a/gprofng/src/gp-archive.cc +++ b/gprofng/src/gp-archive.cc @@ -357,25 +357,59 @@ er_archive::start (int argc, char *argv[]) } lo->sync_read_stabs (); Elf *elf = lo->get_elf (); - if (elf && (lo->checksum != 0) && (lo->checksum != elf->elf_checksum ())) + if (elf == NULL) { if (!quiet) - fprintf (stderr, GTXT ("gp-archive: '%s' has an unexpected checksum value; perhaps it was rebuilt. File ignored\n"), + fprintf (stderr, GTXT ("gp-archive: Cannot open \"%s\"\n"), df->get_location ()); + Dprintf (DEBUG_ARCHIVE, + " loadObjs[%ld]: not found '%s'\n", i, df->get_location ()); + continue; + } + else if (df->inArchive) + { + Dprintf (DEBUG_ARCHIVE, + " loadObjs[%ld]: inArchive=1 '%s'\n", i, df->get_name ()); continue; } - copy_files->append (df); - if (elf) + else if (!mask_is_on (df->get_name ())) + { + Dprintf (DEBUG_ARCHIVE, + " loadObjs[%ld]: mask_is_on=0 '%s'\n", i, df->get_name ()); + continue; + } + char *fnm = elf->get_location (); + char *anm = founder_exp->getNameInArchive (fnm); + archive_file (fnm, anm); + + // archive gnu_debug and gnu_debugalt files + if (elf->gnu_debug_file) { - Elf *f = elf->find_ancillary_files (lo->get_pathname ()); - if (f) - copy_files->append (f->dbeFile); - for (long i1 = 0, sz1 = VecSize(elf->ancillary_files); i1 < sz1; i1++) + char *arch_nm = dbe_sprintf ("%s_debug", anm); + archive_file (elf->gnu_debug_file->get_location (), arch_nm); + free (arch_nm); + if (elf->gnu_debug_file->gnu_debugalt_file) { - Elf *ancElf = elf->ancillary_files->get (i1); - copy_files->append (ancElf->dbeFile); + arch_nm = dbe_sprintf ("%s_debug_alt", anm); + archive_file (elf->gnu_debug_file->gnu_debugalt_file->get_location (), arch_nm); + free (arch_nm); } } + if (elf->gnu_debugalt_file) + { + char *arch_nm = dbe_sprintf ("%s_alt", anm); + archive_file (elf->gnu_debugalt_file->get_location (), arch_nm); + free (arch_nm); + } + free (anm); + + elf->find_ancillary_files (lo->get_pathname ()); + for (long i1 = 0, sz1 = VecSize (elf->ancillary_files); i1 < sz1; i1++) + { + Elf *ancElf = elf->ancillary_files->get (i1); + copy_files->append (ancElf->dbeFile); + } + Vector<Module*> *modules = lo->seg_modules; for (long i1 = 0, sz1 = VecSize(modules); i1 < sz1; i1++) { @@ -469,7 +503,7 @@ er_archive::start (int argc, char *argv[]) int res = founder_exp->copy_file (fnm, anm, quiet, common_archive_dir, use_relative_path); if (0 == res) // file successfully archived df->inArchive = 1; - delete anm; + free (anm); } delete copy_files; @@ -490,6 +524,15 @@ er_archive::start (int argc, char *argv[]) } int +er_archive::archive_file (const char *from, const char *to) +{ + if (force) + unlink (to); + return Experiment::copy_file (from, to, quiet, common_archive_dir, + use_relative_path); +} + +int er_archive::check_args (int argc, char *argv[]) { int opt; diff --git a/gprofng/src/gp-archive.h b/gprofng/src/gp-archive.h index 41fb4b2..3b9d0ee 100644 --- a/gprofng/src/gp-archive.h +++ b/gprofng/src/gp-archive.h @@ -47,6 +47,7 @@ public: private: void usage (); int check_args (int argc, char *argv[]); + int archive_file (const char *from, const char *to); int clean_old_archive (char *expname, ArchiveExp *founder_exp); int mask_is_on (const char *str); void check_env_var (); diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index 7c1163d..dab6eac 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -282,6 +282,10 @@ enum aarch64_feature_bit { AARCH64_FEATURE_SVE_B16B16, /* SME non-widening BFloat16 instructions. */ AARCH64_FEATURE_SME_B16B16, + /* SVE2.2. */ + AARCH64_FEATURE_SVE2p2, + /* SME2.2. */ + AARCH64_FEATURE_SME2p2, /* Armv9.1-A processors. */ AARCH64_FEATURE_V9_1A, /* Armv9.2-A processors. */ @@ -307,6 +311,8 @@ enum aarch64_feature_bit { AARCH64_FEATURE_FP8DOT2_SVE, /* +sme-f16f16 or +sme-f8f16 */ AARCH64_FEATURE_SME_F16F16_F8F16, + /* +sve or +sme2p2 */ + AARCH64_FEATURE_SVE_SME2p2, /* +sve2 or +sme2 */ AARCH64_FEATURE_SVE2_SME2, /* +sve2p1 or +sme */ @@ -315,6 +321,8 @@ enum aarch64_feature_bit { AARCH64_FEATURE_SVE2p1_SME2, /* +sve2p1 or +sme2p1 */ AARCH64_FEATURE_SVE2p1_SME2p1, + /* +sve2p2 or +sme2p2 */ + AARCH64_FEATURE_SVE2p2_SME2p2, AARCH64_NUM_FEATURES }; @@ -1192,13 +1200,16 @@ enum aarch64_insn_class sve_pred_zm, sve_shift_pred, sve_shift_unpred, + sve_size_bh, sve_size_bhs, sve_size_bhsd, sve_size_hsd, sve_size_hsd2, + sve_size_hsd3, sve_size_sd, - sve_size_bh, sve_size_sd2, + sve_size_sd3, + sve_size_sd4, sve_size_13, sve_shift_tsz_hsd, sve_shift_tsz_bhsd, diff --git a/include/opcode/d30v.h b/include/opcode/d30v.h index 82b7612..a8db13e 100644 --- a/include/opcode/d30v.h +++ b/include/opcode/d30v.h @@ -279,8 +279,8 @@ extern const struct d30v_format d30v_format_table[]; /* formats, 2 SHORT_A forms and a LONG form. */ struct d30v_insn { - struct d30v_opcode *op; /* pointer to an entry in the opcode table */ - struct d30v_format *form; /* pointer to an entry in the format table */ + const struct d30v_opcode *op; /* pointer to an entry in the opcode table */ + const struct d30v_format *form; /* pointer to an entry in the format table */ int ecc; /* execution condition code */ }; diff --git a/include/sframe-api.h b/include/sframe-api.h index 753a91f..3dc18b6 100644 --- a/include/sframe-api.h +++ b/include/sframe-api.h @@ -36,11 +36,6 @@ typedef struct sframe_encoder_ctx sframe_encoder_ctx; #define MAX_OFFSET_BYTES \ ((SFRAME_FRE_OFFSET_4B * 2 * MAX_NUM_STACK_OFFSETS)) -/* Set of flags that are required to be harmonious between all decoder and - encoder objects participating in a link. */ -#define SFRAME_F_LD_MUSTHAVE_FLAGS \ - (SFRAME_F_FDE_FUNC_START_PCREL) - /* User interfacing SFrame Row Entry. An abstraction provided by libsframe so the consumer is decoupled from the binary format representation of the same. diff --git a/include/sframe-internal.h b/include/sframe-internal.h new file mode 100644 index 0000000..a246f26 --- /dev/null +++ b/include/sframe-internal.h @@ -0,0 +1,30 @@ +/* Internal header for SFrame. + + Used by GNU as and ld. + + 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/>. */ + +#ifndef _SFRAME_INTERNAL_H +#define _SFRAME_INTERNAL_H + +#include "sframe.h" + +/* Set of flags which are required to be harmonious between GNU as and ld. All + objects participating in the link for GNU ld must have these flags set. */ +#define SFRAME_V2_GNU_AS_LD_ENCODING_FLAGS \ + (SFRAME_F_FDE_FUNC_START_PCREL) + +#endif /* _SFRAME_INTERNAL_H */ diff --git a/ld/emulparams/elf32lriscv.sh b/ld/emulparams/elf32lriscv.sh index da0d7cf..4246013 100644 --- a/ld/emulparams/elf32lriscv.sh +++ b/ld/emulparams/elf32lriscv.sh @@ -6,7 +6,7 @@ OUTPUT_FORMAT="elf32-littleriscv" # On Linux, first look for 32 bit ILP32D target libraries in /lib/ilp32d as per # the glibc ABI. case "$target" in - riscv32*-linux*) + riscv*-linux*) case "$EMULATION_NAME" in *32*) LIBPATH_SUFFIX="32/ilp32d 32" ;; diff --git a/ld/emulparams/elf32lriscv_ilp32.sh b/ld/emulparams/elf32lriscv_ilp32.sh index 4935937..c773985 100644 --- a/ld/emulparams/elf32lriscv_ilp32.sh +++ b/ld/emulparams/elf32lriscv_ilp32.sh @@ -5,7 +5,7 @@ OUTPUT_FORMAT="elf32-littleriscv" # On Linux, first look for 32 bit ILP32 target libraries in /lib/ilp32 as per # the glibc ABI. case "$target" in - riscv32*-linux*) + riscv*-linux*) case "$EMULATION_NAME" in *32*) LIBPATH_SUFFIX="32/ilp32 32" ;; diff --git a/ld/emulparams/elf32lriscv_ilp32f.sh b/ld/emulparams/elf32lriscv_ilp32f.sh index c684bf8..a2f0c2a 100644 --- a/ld/emulparams/elf32lriscv_ilp32f.sh +++ b/ld/emulparams/elf32lriscv_ilp32f.sh @@ -5,7 +5,7 @@ OUTPUT_FORMAT="elf32-littleriscv" # On Linux, first look for 32 bit ILP32F target libraries in /lib/ilp32f as per # the glibc ABI. case "$target" in - riscv32*-linux*) + riscv*-linux*) case "$EMULATION_NAME" in *32*) LIBPATH_SUFFIX="32/ilp32f 32" ;; diff --git a/ld/emulparams/elf64lriscv.sh b/ld/emulparams/elf64lriscv.sh index e07a064..7958052 100644 --- a/ld/emulparams/elf64lriscv.sh +++ b/ld/emulparams/elf64lriscv.sh @@ -6,7 +6,7 @@ OUTPUT_FORMAT="elf64-littleriscv" # On Linux, first look for 64 bit LP64D target libraries in /lib64/lp64d as per # the glibc ABI, and then /lib64 for backward compatility. case "$target" in - riscv64*-linux*) + riscv*-linux*) case "$EMULATION_NAME" in *64*) LIBPATH_SUFFIX="64/lp64d 64";; diff --git a/ld/emulparams/elf64lriscv_lp64.sh b/ld/emulparams/elf64lriscv_lp64.sh index b1bb252..7c7feca 100644 --- a/ld/emulparams/elf64lriscv_lp64.sh +++ b/ld/emulparams/elf64lriscv_lp64.sh @@ -5,7 +5,7 @@ OUTPUT_FORMAT="elf64-littleriscv" # On Linux, first look for 64 bit LP64 target libraries in /lib64/lp64 as per # the glibc ABI, and then /lib64 for backward compatility. case "$target" in - riscv64*-linux*) + riscv*-linux*) case "$EMULATION_NAME" in *64*) LIBPATH_SUFFIX="64/lp64 64";; diff --git a/ld/emulparams/elf64lriscv_lp64f.sh b/ld/emulparams/elf64lriscv_lp64f.sh index 005f191..e036c2f 100644 --- a/ld/emulparams/elf64lriscv_lp64f.sh +++ b/ld/emulparams/elf64lriscv_lp64f.sh @@ -5,7 +5,7 @@ OUTPUT_FORMAT="elf64-littleriscv" # On Linux, first look for 64 bit LP64F target libraries in /lib64/lp64f as per # the glibc ABI, and then /lib64 for backward compatility. case "$target" in - riscv64*-linux*) + riscv*-linux*) case "$EMULATION_NAME" in *64*) LIBPATH_SUFFIX="64/lp64f 64";; diff --git a/ld/emultempl/loongarchelf.em b/ld/emultempl/loongarchelf.em index 928fd83..517ece1 100644 --- a/ld/emultempl/loongarchelf.em +++ b/ld/emultempl/loongarchelf.em @@ -58,7 +58,7 @@ larch_elf_before_allocation (void) ENABLE_RELAXATION; } - link_info.relax_pass = 2; + link_info.relax_pass = 3; } static void diff --git a/ld/ldlang.c b/ld/ldlang.c index 32e6e7a..cd1825b 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -2874,7 +2874,7 @@ lang_add_section (lang_statement_list_type *ptr, /* This must happen after flags have been updated. The output section may have been created before we saw its first input section, eg. for a data statement. */ - bfd_init_private_section_data (section->owner, section, + bfd_copy_private_section_data (section->owner, section, link_info.output_bfd, output->bfd_section, &link_info); @@ -10494,7 +10494,7 @@ setup_section (bfd *ibfd, sec_ptr isection, void *p) /* Allow the BFD backend to copy any private data it understands from the input section to the output section. */ - if (!bfd_copy_private_section_data (ibfd, isection, obfd, osection)) + if (!bfd_copy_private_section_data (ibfd, isection, obfd, osection, NULL)) { err = _("failed to copy private data"); goto loser; diff --git a/ld/ldwrite.c b/ld/ldwrite.c index 7613def..974245f 100644 --- a/ld/ldwrite.c +++ b/ld/ldwrite.c @@ -366,7 +366,7 @@ clone_section (bfd *abfd, asection *s, const char *name, int *count) n->reloc_count = 0; n->alignment_power = s->alignment_power; - bfd_copy_private_section_data (abfd, s, abfd, n); + bfd_copy_private_section_data (abfd, s, abfd, n, NULL); return n; } diff --git a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp index 2f09a69..e23cdc8 100644 --- a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp +++ b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp @@ -45,6 +45,7 @@ if [istarget "loongarch64-*-*"] { run_dump_test "underflow_s_5_20" run_dump_test "tls-le-norelax" run_dump_test "tls-le-relax" + run_dump_test "relax-after-alignment" run_dump_test "relax-medium-call" run_dump_test "relax-medium-call-1" run_dump_test "check_got_relax" diff --git a/ld/testsuite/ld-loongarch-elf/relax-after-alignment.d b/ld/testsuite/ld-loongarch-elf/relax-after-alignment.d new file mode 100644 index 0000000..844c518 --- /dev/null +++ b/ld/testsuite/ld-loongarch-elf/relax-after-alignment.d @@ -0,0 +1,30 @@ +#name: additional relaxation chances after alignment processing +#as: +#ld: --defsym _start=0 +#objdump: -d --no-show-raw-insn + +.*:\s+file format .* + + +Disassembly of section \.text: + +0000000120000400 <before>: +\s*120000400:\s+pcalau12i\s+\$t0, 512 +\s*[0-9a-f]+:\s+addi\.d\s+\$t0, \$t0, 1024 +\s*[0-9a-f]+:\s+pcaddi\s+\$t0, 524286 +\s*[0-9a-f]+:\s+nop\s* +\s*\.\.\. +\s*120000c00:\s+pcaddi\s+\$t0, 523776 +\s*\.\.\. + +0000000120200400 <target>: +\s*120200400:\s+break\s+0x0 + +0000000120200404 <after>: +\s*\.\.\. +\s*1203ffbfc:\s+pcaddi\s+\$t0, -523775 +\s*\.\.\. +\s*120400400:\s+pcaddi\s+\$t0, -524288 +\s*[0-9a-f]+:\s+nop\s* +\s*[0-9a-f]+:\s+pcalau12i\s+\$t0, -512 +\s*[0-9a-f]+:\s+addi\.d\s+\$t0, \$t0, 1024 diff --git a/ld/testsuite/ld-loongarch-elf/relax-after-alignment.s b/ld/testsuite/ld-loongarch-elf/relax-after-alignment.s new file mode 100644 index 0000000..24d29ec --- /dev/null +++ b/ld/testsuite/ld-loongarch-elf/relax-after-alignment.s @@ -0,0 +1,49 @@ +# 0x0 pre-relax, 0x400 post-relax +# all addresses are additionally offset by 0x120000000 without `ld -shared` +before: + la.pcrel $t0, target # too far; should stay as pcalau12i + addi.d + la.pcrel $t0, target # furthest reach of relax pass 2 + +# 0x10 pre-relax, 0x410 post-relax +.rept 508 +.word 0 +.endr + +# 0x800 {pre,post}-relax +# 255 nops + R_LARCH_ALIGN before relaxation +# none of the aligning nops should remain after relax pass 1 +.p2align 10 + +# 0xbfc pre-relax, 0xc00 post-relax + la.pcrel $t0, target # should become single pcaddi in relax pass 0 + +# 0xc04 {pre,post}-relax +.rept 523775 +.word 0 +.endr + +# 0x200400 {pre,post}-relax +target: + break 0 + +# 0x200404 {pre,post}-relax +after: +.rept 523774 +.word 0 +.endr + +# 0x3ffbfc {pre,post}-relax + la.pcrel $t0, target # should become single pcaddi in relax pass 0 + +# 255 nops + R_LARCH_ALIGN before relaxation +# none of the aligning nops should remain after relax pass 1 +.p2align 10 + +# 0x400000 pre-relax, 0x3ffc00 post-relax +.rept 512 +.word 0 +.endr + +# 0x400800 pre-relax, 0x400400 post-relax + la.pcrel $t0, target # furthest reach of relax pass 2 + la.pcrel $t0, target # too far; should stay as pcalau12i + addi.d diff --git a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp index e103df6..70c9aa7 100644 --- a/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp +++ b/ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp @@ -235,6 +235,9 @@ if [istarget "riscv*-*-*"] { run_dump_test "zicfilp-unlabeled-plt" + run_dump_test "pie-bind-locally-rv32" + run_dump_test "pie-bind-locally-rv64" + # 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/pie-bind-locally-a.s b/ld/testsuite/ld-riscv-elf/pie-bind-locally-a.s new file mode 100644 index 0000000..c1ff19b --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/pie-bind-locally-a.s @@ -0,0 +1,5 @@ + .text + .global _start +_start: + .option pic + la a0, _start diff --git a/ld/testsuite/ld-riscv-elf/pie-bind-locally-b.s b/ld/testsuite/ld-riscv-elf/pie-bind-locally-b.s new file mode 100644 index 0000000..e5f16cd --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/pie-bind-locally-b.s @@ -0,0 +1,8 @@ + .section .data.rel,"aw",%progbits + .type q, %object +q: +.ifdef __64_bit__ + .quad _start +.else + .word _start +.endif diff --git a/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv32.d b/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv32.d new file mode 100644 index 0000000..0133995 --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv32.d @@ -0,0 +1,10 @@ +#source: pie-bind-locally-a.s +#source: pie-bind-locally-b.s +#as: -march=rv32i -mabi=ilp32 +#ld: -m[riscv_choose_ilp32_emul] -pie +#readelf: -Wr + +Relocation section '\.rela\.dyn' at offset .* contains 2 entries: +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_RISCV_RELATIVE[ ].* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_RISCV_RELATIVE[ ].* diff --git a/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv64.d b/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv64.d new file mode 100644 index 0000000..6ae627a --- /dev/null +++ b/ld/testsuite/ld-riscv-elf/pie-bind-locally-rv64.d @@ -0,0 +1,10 @@ +#source: pie-bind-locally-a.s +#source: pie-bind-locally-b.s +#as: -march=rv64i -mabi=lp64 -defsym __64_bit__=1 +#ld: -m[riscv_choose_lp64_emul] -pie +#readelf: -Wr + +Relocation section '\.rela\.dyn' at offset .* contains 2 entries: +[ ]+Offset[ ]+Info[ ]+Type[ ]+.* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_RISCV_RELATIVE[ ].* +[0-9a-f]+[ ]+[0-9a-f]+[ ]+R_RISCV_RELATIVE[ ].* diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c index 00ac4ae..a9d0aeb 100644 --- a/opcodes/aarch64-asm.c +++ b/opcodes/aarch64-asm.c @@ -2279,11 +2279,24 @@ aarch64_encode_variant_using_iclass (struct aarch64_inst *inst) insert_field (FLD_SVE_sz2, &inst->value, aarch64_get_variant (inst), 0); break; + case sve_size_sd3: + insert_field (FLD_SVE_sz3, &inst->value, aarch64_get_variant (inst), 0); + break; + + case sve_size_sd4: + insert_field (FLD_SVE_sz4, &inst->value, aarch64_get_variant (inst), 0); + break; + case sve_size_hsd2: insert_field (FLD_SVE_size, &inst->value, aarch64_get_variant (inst) + 1, 0); break; + case sve_size_hsd3: + insert_field (FLD_len, &inst->value, + aarch64_get_variant (inst) + 1, 0); + break; + case sve_size_tsz_bhs: insert_fields (&inst->value, (1 << aarch64_get_variant (inst)), diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c index 02e9852..1460a92 100644 --- a/opcodes/aarch64-dis-2.c +++ b/opcodes/aarch64-dis-2.c @@ -15381,38 +15381,82 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x0000101xxxxxxxxxxxxx - sxtb. */ - return 2054; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000000101xxxxxxxxxxxxx + sxtb. */ + return 3733; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010000101xxxxxxxxxxxxx + sxtb. */ + return 2054; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x1000101xxxxxxxxxxxxx - cls. */ - return 1432; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001000101xxxxxxxxxxxxx + cls. */ + return 3663; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011000101xxxxxxxxxxxxx + cls. */ + return 1432; + } } } else { if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x0100101xxxxxxxxxxxxx - sxtw. */ - return 2056; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000100101xxxxxxxxxxxxx + sxtw. */ + return 3735; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010100101xxxxxxxxxxxxx + sxtw. */ + return 2056; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x1100101xxxxxxxxxxxxx - fabs. */ - return 1494; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001100101xxxxxxxxxxxxx + fabs. */ + return 3669; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011100101xxxxxxxxxxxxx + fabs. */ + return 1494; + } } } } @@ -15422,38 +15466,82 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x0010101xxxxxxxxxxxxx - sxth. */ - return 2055; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000010101xxxxxxxxxxxxx + sxth. */ + return 3734; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010010101xxxxxxxxxxxxx + sxth. */ + return 2055; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x1010101xxxxxxxxxxxxx - cnt. */ - return 1461; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001010101xxxxxxxxxxxxx + cnt. */ + return 3666; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011010101xxxxxxxxxxxxx + cnt. */ + return 1461; + } } } else { if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x0110101xxxxxxxxxxxxx - abs. */ - return 1390; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000110101xxxxxxxxxxxxx + abs. */ + return 3660; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010110101xxxxxxxxxxxxx + abs. */ + return 1390; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x1110101xxxxxxxxxxxxx - not. */ - return 1853; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001110101xxxxxxxxxxxxx + not. */ + return 3718; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011110101xxxxxxxxxxxxx + not. */ + return 1853; + } } } } @@ -15466,38 +15554,82 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x0001101xxxxxxxxxxxxx - uxtb. */ - return 2117; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000001101xxxxxxxxxxxxx + uxtb. */ + return 3745; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010001101xxxxxxxxxxxxx + uxtb. */ + return 2117; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x1001101xxxxxxxxxxxxx - clz. */ - return 1433; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001001101xxxxxxxxxxxxx + clz. */ + return 3664; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011001101xxxxxxxxxxxxx + clz. */ + return 1433; + } } } else { if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x0101101xxxxxxxxxxxxx - uxtw. */ - return 2119; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000101101xxxxxxxxxxxxx + uxtw. */ + return 3747; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010101101xxxxxxxxxxxxx + uxtw. */ + return 2119; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0x1101101xxxxxxxxxxxxx - fneg. */ - return 1571; + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001101101xxxxxxxxxxxxx + fneg. */ + return 3698; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011101101xxxxxxxxxxxxx + fneg. */ + return 1571; + } } } } @@ -15507,29 +15639,62 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 19) & 0x1) == 0) { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000011101xxxxxxxxxxxxx + uxth. */ + return 3746; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010011101xxxxxxxxxxxxx + uxth. */ + return 2118; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001011101xxxxxxxxxxxxx + cnot. */ + return 3665; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011011101xxxxxxxxxxxxx + cnot. */ + return 1460; + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 000001x0xx0x0011101xxxxxxxxxxxxx - uxth. */ - return 2118; + 000001x0xx00x111101xxxxxxxxxxxxx + neg. */ + return 3717; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 000001x0xx0x1011101xxxxxxxxxxxxx - cnot. */ - return 1460; + 000001x0xx01x111101xxxxxxxxxxxxx + neg. */ + return 1850; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x0xx0xx111101xxxxxxxxxxxxx - neg. */ - return 1850; - } } } } @@ -15712,11 +15877,33 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 010001x0xx0xxx10101xxxxxxxxxxxxx - sminp. */ - return 2244; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0x0010101xxxxxxxxxxxxx + urecpe. */ + return 3743; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0x1010101xxxxxxxxxxxxx + sqabs. */ + return 3731; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xx110101xxxxxxxxxxxxx + sminp. */ + return 2244; + } } } else @@ -15775,11 +15962,33 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 010001x0xx0xxx11101xxxxxxxxxxxxx - uminp. */ - return 2369; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0x0011101xxxxxxxxxxxxx + ursqrte. */ + return 3744; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0x1011101xxxxxxxxxxxxx + sqneg. */ + return 3732; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xx111101xxxxxxxxxxxxx + uminp. */ + return 2369; + } } } } @@ -17466,9 +17675,9 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { if (((word >> 14) & 0x1) == 0) { @@ -17555,117 +17764,7 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 17) & 0x1) == 0) - { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x0xx00x00x1x0xxxxxxxxxxxxx - fcadd. */ - return 1502; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x0xx01x00x1x0xxxxxxxxxxxxx - faddp. */ - return 2170; - } - } - else - { - if (((word >> 16) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x0xx0xx1001x0xxxxxxxxxxxxx - fmaxnmp. */ - return 2178; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x0xx0xx1011x0xxxxxxxxxxxxx - fminnmp. */ - return 2180; - } - } - } - else - { - if (((word >> 16) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x0xx0xxx101x0xxxxxxxxxxxxx - fmaxp. */ - return 2179; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x0xx0xxx111x0xxxxxxxxxxxxx - fminp. */ - return 2181; - } - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 111001x0000xxxxx1x0xxxxxxxxxxxxx - st1b. */ - return 1967; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 111001x0100xxxxx1x0xxxxxxxxxxxxx - st1h. */ - return 1986; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 111001x0010xxxxx1x0xxxxxxxxxxxxx - st1b. */ - return 1971; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 111001x0110xxxxx1x0xxxxxxxxxxxxx - st1h. */ - return 1992; - } - } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 31) & 0x1) == 0) { @@ -17776,41 +17875,203 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 31) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx111xxxxxxxx0xxxx + cmplo. */ + return 1451; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx111xxxxxxxx1xxxx + cmpls. */ + return 1453; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00000xxxx111xxxxxxxxxxxxx + ldnt1b. */ + return 1818; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01000xxxx111xxxxxxxxxxxxx + ldnt1h. */ + return 1822; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00100xxxx111xxxxxxxxxxxxx + ld3b. */ + return 1726; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01100xxxx111xxxxxxxxxxxxx + ld3h. */ + return 1730; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0xx01xxxx111xxxxxxxxxxxxx + ld2q. */ + return 3515; + } + } + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x0xx0x0000101xxxxxxxxxxxxx - faddqv. */ - return 3484; + 011001x0xx00000x100xxxxxxxxxxxxx + fcadd. */ + return 1502; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x0xx0x1000101xxxxxxxxxxxxx - fcvtnt. */ - return 2173; + 011001x0xx01000x100xxxxxxxxxxxxx + faddp. */ + return 2170; } } else { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x1000100xxxxxxxxxxxxx + frintn. */ + return 3711; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x1001100xxxxxxxxxxxxx + frinta. */ + return 3710; + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x0xx0xx100101xxxxxxxxxxxxx - fmaxnmqv. */ - return 3485; + 011001x0xx0xx000110xxxxxxxxxxxxx + frintm. */ + return 3713; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0xx001110xxxxxxxxxxxxx + frintx. */ + return 3708; + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x01001x0xxxxxxxxxxxxx + fmaxnmp. */ + return 2178; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x00x11001x0xxxxxxxxxxxxx + frint32z. */ + return 3703; + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10x1100100xxxxxxxxxxxxx + scvtf. */ + return 3727; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10x1100110xxxxxxxxxxxxx + scvtf. */ + return 3724; + } + } } } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x01011x0xxxxxxxxxxxxx + fminnmp. */ + return 2180; + } + else { if (((word >> 22) & 0x1) == 0) { @@ -17818,167 +18079,651 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x0000xx010101xxxxxxxxxxxxx - fcvtxnt. */ - return 2176; + 011001x0000x11011x0xxxxxxxxxxxxx + frint64z. */ + return 3707; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x0100xx010101xxxxxxxxxxxxx - bfcvtnt. */ - return 3164; + 011001x0100x11011x0xxxxxxxxxxxxx + scvtf. */ + return 3726; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x0x10xx010101xxxxxxxxxxxxx - fcvtnt. */ - return 2174; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0010x1101100xxxxxxxxxxxxx + scvtf. */ + return 3725; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0110x1101100xxxxxxxxxxxxx + scvtf. */ + return 3729; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0010x1101110xxxxxxxxxxxxx + scvtf. */ + return 3728; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0110x1101110xxxxxxxxxxxxx + scvtf. */ + return 3730; + } + } + } + } + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx000000101xxxxxxxxxxxxx + fcvtnt. */ + return 3678; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx010000101xxxxxxxxxxxxx + faddqv. */ + return 3484; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx001000101xxxxxxxxxxxxx + fcvtnt. */ + return 2173; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx011000101xxxxxxxxxxxxx + frintp. */ + return 3714; + } } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x0xx0xx110101xxxxxxxxxxxxx - fmaxqv. */ - return 3486; + 011001x0xx0xx000111xxxxxxxxxxxxx + frintz. */ + return 3712; + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x01001x1xxxxxxxxxxxxx + fmaxnmqv. */ + return 3485; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x00x11001x1xxxxxxxxxxxxx + frint32x. */ + return 3701; + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10x1100101xxxxxxxxxxxxx + ucvtf. */ + return 3739; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10x1100111xxxxxxxxxxxxx + ucvtf. */ + return 3736; + } + } } } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x0xx0xx001101xxxxxxxxxxxxx - fcvtlt. */ - return 2171; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x0001101xxxxxxxxxxxxx + fcvtlt. */ + return 3676; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x1001101xxxxxxxxxxxxx + fcvtlt. */ + return 2171; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x0xx0xx101101xxxxxxxxxxxxx - fminnmqv. */ - return 3487; + 011001x0xx0xx001111xxxxxxxxxxxxx + frinti. */ + return 3709; } } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x0xx0xx011101xxxxxxxxxxxxx - fcvtlt. */ - return 2172; + 011001x0xx0x01011x1xxxxxxxxxxxxx + fminnmqv. */ + return 3487; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x0xx0xx111101xxxxxxxxxxxxx - fminqv. */ - return 3488; + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0000x11011x1xxxxxxxxxxxxx + frint64x. */ + return 3705; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0100x11011x1xxxxxxxxxxxxx + ucvtf. */ + return 3738; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0010x1101101xxxxxxxxxxxxx + ucvtf. */ + return 3737; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0110x1101101xxxxxxxxxxxxx + ucvtf. */ + return 3741; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0010x1101111xxxxxxxxxxxxx + ucvtf. */ + return 3740; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0110x1101111xxxxxxxxxxxxx + ucvtf. */ + return 3742; + } + } + } } } } } - else + } + else + { + if (((word >> 16) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 111001x0000xxxxx101xxxxxxxxxxxxx - st1b. */ - return 1968; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x00xx010100xxxxxxxxxxxxx + fcvt. */ + return 3672; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10xx010100xxxxxxxxxxxxx + fcvt. */ + return 3674; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0000xx010110xxxxxxxxxxxxx + fcvtx. */ + return 3680; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0100xx010110xxxxxxxxxxxxx + bfcvt. */ + return 3661; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10xx010110xxxxxxxxxxxxx + fcvt. */ + return 3675; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 111001x0100xxxxx101xxxxxxxxxxxxx - st1h. */ - return 1987; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0000x0010101xxxxxxxxxxxxx + fcvtxnt. */ + return 3681; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0100x0010101xxxxxxxxxxxxx + bfcvtnt. */ + return 3662; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10x0010101xxxxxxxxxxxxx + fcvtnt. */ + return 3679; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x000001010101xxxxxxxxxxxxx + fcvtxnt. */ + return 2176; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x010001010101xxxxxxxxxxxxx + bfcvtnt. */ + return 3164; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x1001010101xxxxxxxxxxxxx + fcvtnt. */ + return 2174; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x0011010101xxxxxxxxxxxxx + fcvt. */ + return 3670; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x1011010101xxxxxxxxxxxxx + fcvt. */ + return 3671; + } + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0xx010111xxxxxxxxxxxxx + fcvt. */ + return 3673; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 111001x0010xxxxx101xxxxxxxxxxxxx - st1b. */ - return 1975; + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x01101x0xxxxxxxxxxxxx + fmaxp. */ + return 2179; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x01101x1xxxxxxxxxxxxx + fmaxqv. */ + return 3486; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 111001x0110xxxxx101xxxxxxxxxxxxx - st1h. */ - return 1996; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x00x11101xxxxxxxxxxxxxxx + flogb. */ + return 3697; + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10x1110100xxxxxxxxxxxxx + fcvtzs. */ + return 3687; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10x1110110xxxxxxxxxxxxx + fcvtzs. */ + return 3682; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10x1110101xxxxxxxxxxxxx + fcvtzu. */ + return 3694; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x10x1110111xxxxxxxxxxxxx + fcvtzu. */ + return 3689; + } + } + } } } } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 001001x0xx0xxxxx111xxxxxxxx0xxxx - cmplo. */ - return 1451; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 001001x0xx0xxxxx111xxxxxxxx1xxxx - cmpls. */ - return 1453; - } - } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0xx011100xxxxxxxxxxxxx + frecpx. */ + return 3699; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x0111100xxxxxxxxxxxxx + fminp. */ + return 2181; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x00x1111100xxxxxxxxxxxxx + fcvtzs. */ + return 3685; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0010x1111100xxxxxxxxxxxxx + fcvtzs. */ + return 3683; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0110x1111100xxxxxxxxxxxxx + fcvtzs. */ + return 3686; + } + } + } + } + } + else { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 101001x00000xxxx111xxxxxxxxxxxxx - ldnt1b. */ - return 1818; + 011001x00x0xxx11110xxxxxxxxxxxxx + fcvtzs. */ + return 3684; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 101001x01000xxxx111xxxxxxxxxxxxx - ldnt1h. */ - return 1822; + 011001x01x0xxx11110xxxxxxxxxxxxx + fcvtzs. */ + return 3688; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x0011101xxxxxxxxxxxxx + fcvtlt. */ + return 3677; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx001011101xxxxxxxxxxxxx + fcvtlt. */ + return 2172; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx011011101xxxxxxxxxxxxx + fsqrt. */ + return 3715; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0x0111101xxxxxxxxxxxxx + fminqv. */ + return 3488; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0x00x1111101xxxxxxxxxxxxx + fcvtzu. */ + return 3692; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0010x1111101xxxxxxxxxxxxx + fcvtzu. */ + return 3690; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0110x1111101xxxxxxxxxxxxx + fcvtzu. */ + return 3693; + } + } + } } } else @@ -17987,100 +18732,180 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 101001x00100xxxx111xxxxxxxxxxxxx - ld3b. */ - return 1726; + 011001x00x0xxx11111xxxxxxxxxxxxx + fcvtzu. */ + return 3691; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 101001x01100xxxx111xxxxxxxxxxxxx - ld3h. */ - return 1730; + 011001x01x0xxx11111xxxxxxxxxxxxx + fcvtzu. */ + return 3695; } } } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0000xxxxx1x0xxxxxxxxxxxxx + st1b. */ + return 1967; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 101001x0xx01xxxx111xxxxxxxxxxxxx - ld2q. */ - return 3515; + 111001x0100xxxxx1x0xxxxxxxxxxxxx + st1h. */ + return 1986; } } - } - else - { - if (((word >> 20) & 0x1) == 0) + else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x11001x0x000xxxx111xxxxxxxxxxxxx + 111001x0010xxxxx1x0xxxxxxxxxxxxx st1b. */ - return 1973; + return 1971; } else { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0110xxxxx1x0xxxxxxxxxxxxx + st1h. */ + return 1992; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x11001x00100xxxx111xxxxxxxxxxxxx + 111001x0000xxxxx101xxxxxxxxxxxxx st1b. */ - return 1976; + return 1968; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x11001x01100xxxx111xxxxxxxxxxxxx + 111001x0100xxxxx101xxxxxxxxxxxxx st1h. */ - return 1997; + return 1987; } } - } - else - { - if (((word >> 22) & 0x1) == 0) + else { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x11001x00001xxxx111xxxxxxxxxxxxx - stnt1b. */ - return 2037; + 111001x0010xxxxx101xxxxxxxxxxxxx + st1b. */ + return 1975; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x11001x01001xxxx111xxxxxxxxxxxxx - stnt1h. */ - return 2041; + 111001x0110xxxxx101xxxxxxxxxxxxx + st1h. */ + return 1996; } } - else + } + else + { + if (((word >> 20) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x11001x00101xxxx111xxxxxxxxxxxxx - st3b. */ - return 2021; + 111001x0x000xxxx111xxxxxxxxxxxxx + st1b. */ + return 1973; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x11001x01101xxxx111xxxxxxxxxxxxx - st3h. */ - return 2025; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x00100xxxx111xxxxxxxxxxxxx + st1b. */ + return 1976; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x01100xxxx111xxxxxxxxxxxxx + st1h. */ + return 1997; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x00001xxxx111xxxxxxxxxxxxx + stnt1b. */ + return 2037; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x01001xxxx111xxxxxxxxxxxxx + stnt1h. */ + return 2041; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x00101xxxx111xxxxxxxxxxxxx + st3b. */ + return 2021; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x01101xxxx111xxxxxxxxxxxxx + st3h. */ + return 2025; + } } } } @@ -19610,11 +20435,33 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x1xx1x0001100xxxxxxxxxxxxx - compact. */ - return 1467; + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x10x100001100xxxxxxxxxxxxx + compact. */ + return 3667; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x11x100001100xxxxxxxxxxxxx + compact. */ + return 1467; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx110001100xxxxxxxxxxxxx + expand. */ + return 3668; + } } else { @@ -19934,51 +20781,106 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 16) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x1xx100xx0101xxxxxxxxxxxxx - lasta. */ - return 1613; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx100000101xxxxxxxxxxxxx + lasta. */ + return 1613; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx110000101xxxxxxxxxxxxx + clasta. */ + return 1428; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1000101xxxxxxxxxxxxx + cpy. */ + return 1469; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 000001x1xx110xx0101xxxxxxxxxxxxx - clasta. */ - return 1428; + 000001x1xx1xx100101xxxxxxxxxxxxx + revb. */ + return 3720; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x1xx1x1xx0101xxxxxxxxxxxxx - cpy. */ - return 1469; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0x10101xxxxxxxxxxxxx + revw. */ + return 3722; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1x10101xxxxxxxxxxxxx + revd. */ + return 3723; + } } } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 000001x1xx10xxx1101xxxxxxxxxxxxx - lastb. */ - return 1615; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx10x001101xxxxxxxxxxxxx + lastb. */ + return 1615; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx11x001101xxxxxxxxxxxxx + clastb. */ + return 1431; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xx101101xxxxxxxxxxxxx + revh. */ + return 3721; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 000001x1xx11xxx1101xxxxxxxxxxxxx - clastb. */ - return 1431; + 000001x1xx1xxx11101xxxxxxxxxxxxx + rbit. */ + return 3719; } } } @@ -24432,11 +25334,11 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 19) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 @@ -24448,101 +25350,123 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x1xx010000101xxxxxxxxxxxxx - scvtf. */ - return 1914; + 011001x1xx000010101xxxxxxxxxxxxx + frintm. */ + return 1581; } } else { - if (((word >> 20) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x1xx000100101xxxxxxxxxxxxx - frinta. */ - return 1579; + 011001x1x00100x0101xxxxxxxxxxxxx + frint32z. */ + return 3702; } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x1x0010100101xxxxxxxxxxxxx + 011001x1x1010000101xxxxxxxxxxxxx scvtf. */ - return 1913; + return 1914; } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x101010100101xxxxxxxxxxxxx - scvtf. */ - return 1912; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x111010100101xxxxxxxxxxxxx - scvtf. */ - return 1916; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x1010010101xxxxxxxxxxxxx + scvtf. */ + return 1911; } } } } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x1xx000010101xxxxxxxxxxxxx - frintm. */ - return 1581; + 011001x1xx000100101xxxxxxxxxxxxx + frinta. */ + return 1579; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x1xx010010101xxxxxxxxxxxxx - scvtf. */ - return 1911; - } - } - else - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 011001x1xx000110101xxxxxxxxxxxxx frintx. */ return 1584; } - else + } + else + { + if (((word >> 22) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x10x010110101xxxxxxxxxxxxx - scvtf. */ - return 1915; + 011001x1000101x0101xxxxxxxxxxxxx + frint64z. */ + return 3706; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x11x010110101xxxxxxxxxxxxx + 011001x1100101x0101xxxxxxxxxxxxx scvtf. */ - return 1917; + return 1913; + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x101010100101xxxxxxxxxxxxx + scvtf. */ + return 1912; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x111010100101xxxxxxxxxxxxx + scvtf. */ + return 1916; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x101010110101xxxxxxxxxxxxx + scvtf. */ + return 1915; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x111010110101xxxxxxxxxxxxx + scvtf. */ + return 1917; + } } } } @@ -24702,13 +25626,13 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 @@ -24720,13 +25644,46 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x1xx010001101xxxxxxxxxxxxx - ucvtf. */ - return 2067; + 011001x1xx000011101xxxxxxxxxxxxx + frintz. */ + return 1585; } } else { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x00100x1101xxxxxxxxxxxxx + frint32x. */ + return 3700; + } + else + { + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x1010001101xxxxxxxxxxxxx + ucvtf. */ + return 2067; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x1010011101xxxxxxxxxxxxx + ucvtf. */ + return 2064; + } + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { if (((word >> 20) & 0x1) == 0) { if (((word >> 22) & 0x1) == 0) @@ -24755,40 +25712,106 @@ aarch64_opcode_lookup_1 (uint32_t word) return 1535; } } - } - else - { - if (((word >> 19) & 0x1) == 0) + else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x1x00x0101101xxxxxxxxxxxxx - ucvtf. */ - return 2066; + 011001x1xx001011101xxxxxxxxxxxxx + fcvt. */ + return 1523; } else { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011011101xxxxxxxxxxxxx + fcvtzu. */ + return 1531; + } + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0001x1101xxxxxxxxxxxxx + frinti. */ + return 1580; + } + else + { + if (((word >> 22) & 0x1) == 0) + { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x1010x0101101xxxxxxxxxxxxx - ucvtf. */ - return 2065; + 011001x1000101x1101xxxxxxxxxxxxx + frint64x. */ + return 3704; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 011001x1110x0101101xxxxxxxxxxxxx + 011001x1100101x1101xxxxxxxxxxxxx ucvtf. */ - return 2069; + return 2066; + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x101010101101xxxxxxxxxxxxx + ucvtf. */ + return 2065; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x111010101101xxxxxxxxxxxxx + ucvtf. */ + return 2069; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x101010111101xxxxxxxxxxxxx + ucvtf. */ + return 2068; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x111010111101xxxxxxxxxxxxx + ucvtf. */ + return 2070; + } } } } - else + } + else + { + if (((word >> 17) & 0x1) == 0) { if (((word >> 20) & 0x1) == 0) { @@ -24829,83 +25852,6 @@ aarch64_opcode_lookup_1 (uint32_t word) } } } - } - } - else - { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x1xx000011101xxxxxxxxxxxxx - frintz. */ - return 1585; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x1xx010011101xxxxxxxxxxxxx - ucvtf. */ - return 2064; - } - } - else - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x1xx001011101xxxxxxxxxxxxx - fcvt. */ - return 1523; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x1xx011011101xxxxxxxxxxxxx - fcvtzu. */ - return 1531; - } - } - } - else - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x1xx000111101xxxxxxxxxxxxx - frinti. */ - return 1580; - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x10x010111101xxxxxxxxxxxxx - ucvtf. */ - return 2068; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 011001x11x010111101xxxxxxxxxxxxx - ucvtf. */ - return 2070; - } - } - } else { if (((word >> 23) & 0x1) == 0) @@ -25158,109 +26104,131 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 10) & 0x1) == 0) - { - if (((word >> 11) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 001001x1xx1xxx1010xx000xxxxxxxxx - sqdecp. */ - return 1944; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 001001x1xx1xxx1010xx100xxxxxxxxx - sqdecp. */ - return 1946; - } - } - else + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 001001x1xx1xxx1010xxx10xxxxxxxxx - sqdecp. */ - return 1945; + 001001x1xx1x0x1010xxxx0xxxxxxxxx + lastp. */ + return 3716; } - } - } - else - { - if (((word >> 10) & 0x1) == 0) - { - if (((word >> 11) & 0x1) == 0) + else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 001001x1xx1xx00110xx000xxxxxxxxx - uqincp. */ - return 2107; + 001001x1xx1x1x1010xx000xxxxxxxxx + sqdecp. */ + return 1944; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 001001x1xx1xx10110xx000xxxxxxxxx - decp. */ - return 1478; + 001001x1xx1x1x1010xx100xxxxxxxxx + sqdecp. */ + return 1946; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 001001x1xx1xxx1110xx000xxxxxxxxx - uqdecp. */ - return 2093; + 001001x1xx1x1x1010xxx10xxxxxxxxx + sqdecp. */ + return 1945; } } - else + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1x000110xxxx0xxxxxxxxx + firstp. */ + return 3696; + } + else + { + if (((word >> 10) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 001001x1xx1xx00110xx100xxxxxxxxx - uqincp. */ - return 2108; + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1x100110xx000xxxxxxxxx + uqincp. */ + return 2107; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1x100110xx100xxxxxxxxx + uqincp. */ + return 2108; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 001001x1xx1xx10110xx100xxxxxxxxx - decp. */ - return 1479; + 001001x1xx1x100110xxx10xxxxxxxxx + uqincp. */ + return 2109; } } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xx10110xx0x0xxxxxxxxx + decp. */ + return 1478; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 001001x1xx1xxx1110xx100xxxxxxxxx - uqdecp. */ - return 2094; + 001001x1xx1xx10110xx1x0xxxxxxxxx + decp. */ + return 1479; } } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 001001x1xx1xxx0110xxx10xxxxxxxxx - uqincp. */ - return 2109; + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxx1110xx000xxxxxxxxx + uqdecp. */ + return 2093; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xxx1110xx100xxxxxxxxx + uqdecp. */ + return 2094; + } } else { @@ -35399,6 +36367,10 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) case 3399: return NULL; /* bfmax --> NULL. */ case 3012: value = 3566; break; /* bfscale --> fscale. */ case 3566: return NULL; /* fscale --> NULL. */ + case 3015: value = 3748; break; /* bfmul --> fmul. */ + case 3748: return NULL; /* fmul --> NULL. */ + case 3016: value = 3749; break; /* bfmul --> fmul. */ + case 3749: return NULL; /* fmul --> NULL. */ case 2575: value = 3401; break; /* fmax --> bfmax. */ case 3401: return NULL; /* bfmax --> NULL. */ case 3014: value = 3568; break; /* bfscale --> fscale. */ @@ -35415,6 +36387,10 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) case 3411: return NULL; /* bfminnm --> NULL. */ case 2587: value = 3413; break; /* fminnm --> bfminnm. */ case 3413: return NULL; /* bfminnm --> NULL. */ + case 3017: value = 3750; break; /* bfmul --> fmul. */ + case 3750: return NULL; /* fmul --> NULL. */ + case 3018: value = 3751; break; /* bfmul --> fmul. */ + case 3751: return NULL; /* fmul --> NULL. */ case 12: value = 19; break; /* add --> addg. */ case 19: value = 3305; break; /* addg --> smax. */ case 3305: value = 3306; break; /* smax --> umax. */ diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c index 2aab630..75ff871 100644 --- a/opcodes/aarch64-dis.c +++ b/opcodes/aarch64-dis.c @@ -3603,6 +3603,14 @@ aarch64_decode_variant_using_iclass (aarch64_inst *inst) variant = extract_field (FLD_SVE_sz2, inst->value, 0); break; + case sve_size_sd3: + variant = extract_field (FLD_SVE_sz3, inst->value, 0); + break; + + case sve_size_sd4: + variant = extract_field (FLD_SVE_sz4, inst->value, 0); + break; + case sve_size_hsd2: i = extract_field (FLD_SVE_size, inst->value, 0); if (i < 1) @@ -3610,6 +3618,13 @@ aarch64_decode_variant_using_iclass (aarch64_inst *inst) variant = i - 1; break; + case sve_size_hsd3: + i = extract_field (FLD_len, inst->value, 0); + if (i < 1) + return false; + variant = i - 1; + break; + case sve_size_13: /* Ignore low bit of this field since that is set in the opcode for instructions of this iclass. */ diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 60facbf..ba08050 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -329,6 +329,8 @@ const aarch64_field fields[] = { 17, 2 }, /* SVE_size: 2-bit element size, bits [18,17]. */ { 22, 1 }, /* SVE_sz: 1-bit element size select. */ { 30, 1 }, /* SVE_sz2: 1-bit element size select. */ + { 17, 1 }, /* SVE_sz3: 1-bit element size select. */ + { 14, 1 }, /* SVE_sz4: 1-bit element size select. */ { 16, 4 }, /* SVE_tsz: triangular size select. */ { 22, 2 }, /* SVE_tszh: triangular size select high, bits [23,22]. */ { 8, 2 }, /* SVE_tszl_8: triangular size select low, bits [9,8]. */ diff --git a/opcodes/aarch64-opc.h b/opcodes/aarch64-opc.h index dc8787a..d46c56d 100644 --- a/opcodes/aarch64-opc.h +++ b/opcodes/aarch64-opc.h @@ -133,6 +133,8 @@ enum aarch64_field_kind FLD_SVE_size, FLD_SVE_sz, FLD_SVE_sz2, + FLD_SVE_sz3, + FLD_SVE_sz4, FLD_SVE_tsz, FLD_SVE_tszh, FLD_SVE_tszl_8, diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index d573ecc..bf91efe 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -1732,6 +1732,14 @@ { \ QLF3(S_D,P_Z,S_D), \ } +#define OP_SVE_DZH \ +{ \ + QLF3(S_D,P_Z,S_H), \ +} +#define OP_SVE_DZS \ +{ \ + QLF3(S_D,P_Z,S_S), \ +} #define OP_SVE_DZU \ { \ QLF3(S_D,P_Z,NIL), \ @@ -1792,6 +1800,18 @@ { \ QLF3(S_H,NIL,NIL), \ } +#define OP_SVE_HZD \ +{ \ + QLF3(S_H,P_Z,S_D), \ +} +#define OP_SVE_HZH \ +{ \ + QLF3(S_H,P_Z,S_H), \ +} +#define OP_SVE_HZS \ +{ \ + QLF3(S_H,P_Z,S_S), \ +} #define OP_SVE_HZU \ { \ QLF3(S_H,P_Z,NIL), \ @@ -1812,6 +1832,10 @@ { \ QLF3(S_Q,NIL,NIL), \ } +#define OP_SVE_QZQ \ +{ \ + QLF3(S_Q,P_Z,S_Q), \ +} #define OP_SVE_QZU \ { \ QLF3(S_Q,P_Z,NIL), \ @@ -1899,6 +1923,14 @@ { \ QLF3(S_S,NIL,NIL), \ } +#define OP_SVE_SZD \ +{ \ + QLF3(S_S,P_Z,S_D), \ +} +#define OP_SVE_SZH \ +{ \ + QLF3(S_S,P_Z,S_H), \ +} #define OP_SVE_SZS \ { \ QLF3(S_S,P_Z,S_S), \ @@ -2171,6 +2203,11 @@ QLF4(S_S,NIL,S_S,S_S), \ QLF4(S_D,NIL,S_D,S_D), \ } +#define OP_SVE_VUV_BH \ +{ \ + QLF3(S_B,NIL,S_B), \ + QLF3(S_H,NIL,S_H), \ +} #define OP_SVE_VUV_BHSD \ { \ QLF3(S_B,NIL,S_B), \ @@ -2404,6 +2441,13 @@ QLF4(S_S,X,X,NIL), \ QLF4(S_D,X,X,NIL), \ } +#define OP_SVE_VZV_BHSD \ +{ \ + QLF3(S_B,P_Z,S_B), \ + QLF3(S_H,P_Z,S_H), \ + QLF3(S_S,P_Z,S_S), \ + QLF3(S_D,P_Z,S_D), \ +} #define OP_SVE_VZVD_BHS \ { \ QLF4(S_B,P_Z,S_B,S_D), \ @@ -2942,6 +2986,12 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2 = AARCH64_FEATURES (2, SVE2p1_SME2, SVE); static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 = AARCH64_FEATURES (2, SVE2p1_SME2p1, SVE); +static const aarch64_feature_set aarch64_feature_sme2p2 = + AARCH64_FEATURES (2, SME2p2, SME); +static const aarch64_feature_set aarch64_feature_sve_sme2p2 = + AARCH64_FEATURES (2, SVE_SME2p2, SVE); +static const aarch64_feature_set aarch64_feature_sve2p2_sme2p2 = + AARCH64_FEATURES (2, SVE2p2_SME2p2, SVE); #define CORE &aarch64_feature_v8 #define FP &aarch64_feature_fp @@ -3046,6 +3096,9 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 = #define SVE2p1_SME &aarch64_feature_sve2p1_sme #define SVE2p1_SME2 &aarch64_feature_sve2p1_sme2 #define SVE2p1_SME2p1 &aarch64_feature_sve2p1_sme2p1 +#define SME2p2 &aarch64_feature_sme2p2 +#define SVE_SME2p2 &aarch64_feature_sve_sme2p2 +#define SVE2p2_SME2p2 &aarch64_feature_sve2p2_sme2p2 #define CORE_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \ { NAME, OPCODE, MASK, CLASS, OP, CORE, OPS, QUALS, FLAGS, 0, 0, NULL } @@ -3320,6 +3373,15 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 = #define SVE2p1_SME2p1_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \ { NAME, OPCODE, MASK, CLASS, OP, SVE2p1_SME2p1, OPS, QUALS, \ F_STRICT | FLAGS, CONSTRAINTS, TIED, NULL } +#define SVE_SME2p2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \ + { NAME, OPCODE, MASK, CLASS, OP, SVE_SME2p2, OPS, QUALS, \ + FLAGS | F_STRICT, 0, TIED, NULL } +#define SVE2p2_SME2p2_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \ + { NAME, OPCODE, MASK, CLASS, 0, SVE2p2_SME2p2, OPS, QUALS, \ + F_STRICT | FLAGS, CONSTRAINTS, TIED, NULL } +#define SME2p2_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS,TIED) \ + { NAME, OPCODE, MASK, CLASS, 0, SME2p2, OPS, QUALS, \ + F_STRICT | FLAGS, 0, TIED, NULL } #define MOPS_CPY_OP1_OP2_PME_INSN(NAME, OPCODE, MASK, FLAGS, CONSTRAINTS) \ MOPS_INSN (NAME, OPCODE, MASK, 0, \ @@ -4940,7 +5002,7 @@ const struct aarch64_opcode aarch64_opcode_table[] = _SVE_INSN ("cnth", 0x0460e000, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_XU, F_OPD1_OPT | F_DEFAULT(31), 0), _SVE_INSN ("cntp", 0x25208000, 0xff3fc200, sve_size_bhsd, 0, OP3 (Rd, SVE_Pg4_10, SVE_Pn), OP_SVE_XUV_BHSD, 0, 0), _SVE_INSN ("cntw", 0x04a0e000, 0xfff0fc00, sve_misc, 0, OP2 (Rd, SVE_PATTERN_SCALED), OP_SVE_XU, F_OPD1_OPT | F_DEFAULT(31), 0), - _SVE_INSN ("compact", 0x05a18000, 0xffbfe000, sve_size_sd, 0, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VUV_SD, 0, 0), + SVE_SME2p2_INSN ("compact", 0x05a18000, 0xffbfe000, sve_size_sd, 0, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VUV_SD, 0, 0), _SVE_INSNC ("cpy", 0x05208000, 0xff3fe000, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Pg3, SVE_Vn), OP_SVE_VMV_BHSD, F_HAS_ALIAS, C_SCAN_MOVPRFX, 0), _SVE_INSNC ("cpy", 0x0528a000, 0xff3fe000, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Pg3, Rn_SP), OP_SVE_VMR_BHSD, F_HAS_ALIAS, C_SCAN_MOVPRFX, 0), _SVE_INSNC ("cpy", 0x05100000, 0xff308000, sve_cpy, 0, OP3 (SVE_Zd, SVE_Pg4_16, SVE_ASIMM), OP_SVE_VPU_BHSD, F_HAS_ALIAS, C_SCAN_MOVPRFX, 0), @@ -7233,6 +7295,102 @@ const struct aarch64_opcode aarch64_opcode_table[] = SME_F8F32_INSNC ("fvdotb", 0xc1d00800, 0xfff09830, sme_misc, OP3 (SME_ZA_array_off3_0, SME_Znx2, SME_Zm_INDEX2_3), OP_SVE_VVV_S_B, F_OD (4) | F_VG_REQ, 0), SME_F8F32_INSNC ("fvdott", 0xc1d00810, 0xfff09830, sme_misc, OP3 (SME_ZA_array_off3_0, SME_Znx2, SME_Zm_INDEX2_3), OP_SVE_VVV_S_B, F_OD (4) | F_VG_REQ, 0), + /* SVE2p2 / SME2p2 instructions. */ + SVE2p2_SME2p2_INSN ("abs", 0x0406a000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("bfcvt", 0x649ac000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("bfcvtnt", 0x6482a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("cls", 0x0408a000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("clz", 0x0409a000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("cnot", 0x040ba000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("cnt", 0x040aa000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("compact", 0x05218000, 0xffbfe000, sve_size_bh, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VUV_BH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("expand", 0x05318000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VUV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fabs", 0x040ca000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvt", 0x649aa000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvt", 0x64daa000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvt", 0x649a8000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvt", 0x64dae000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvt", 0x64da8000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvt", 0x64dac000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtlt", 0x6481a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtlt", 0x64c3a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtnt", 0x6480a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtnt", 0x64c2a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtx", 0x641ac000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtxnt", 0x6402a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzs", 0x645ec000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzs", 0x645f8000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzs", 0x645fc000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzs", 0x649f8000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzs", 0x64df8000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzs", 0x64de8000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzs", 0x64dfc000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzu", 0x645ee000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzu", 0x645fa000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzu", 0x645fe000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzu", 0x649fa000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzu", 0x64dfa000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzu", 0x64dea000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fcvtzu", 0x64dfe000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("firstp", 0x25218000, 0xff3fc200, sve_size_bhsd, OP3 (Rd, SVE_Pg4_10, SVE_Pn), OP_SVE_XUV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("flogb", 0x641e8000, 0xffff8000, sve_size_hsd3, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fneg", 0x040da000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frecpx", 0x641b8000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frint32x", 0x6511a000, 0xfffde000, sve_size_sd3, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VMV_SD, 0, C_SCAN_MOVPRFX, 0), + SVE2p2_SME2p2_INSN ("frint32x", 0x641ca000, 0xffffa000, sve_size_sd4, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_SD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frint32z", 0x6510a000, 0xfffde000, sve_size_sd3, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VMV_SD, 0, C_SCAN_MOVPRFX, 0), + SVE2p2_SME2p2_INSN ("frint32z", 0x641c8000, 0xffffa000, sve_size_sd4, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_SD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frint64x", 0x6515a000, 0xfffde000, sve_size_sd3, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VMV_SD, 0, C_SCAN_MOVPRFX, 0), + SVE2p2_SME2p2_INSN ("frint64x", 0x641da000, 0xffffa000, sve_size_sd4, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_SD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frint64z", 0x6514a000, 0xfffde000, sve_size_sd3, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VMV_SD, 0, C_SCAN_MOVPRFX, 0), + SVE2p2_SME2p2_INSN ("frint64z", 0x641d8000, 0xffffa000, sve_size_sd4, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_SD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frintx", 0x6419c000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frinti", 0x6419e000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frinta", 0x64198000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frintn", 0x64188000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frintz", 0x6418e000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frintm", 0x6418c000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("frintp", 0x6418a000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("fsqrt", 0x641ba000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("lastp", 0x25228000, 0xff3fc200, sve_size_bhsd, OP3 (Rd, SVE_Pg4_10, SVE_Pn), OP_SVE_XUV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("neg", 0x0407a000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("not", 0x040ea000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("rbit", 0x0527a000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("revb", 0x0524a000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("revh", 0x05a5a000, 0xffbfe000, sve_size_sd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_SD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("revw", 0x05e6a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("revd", 0x052ea000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_QZQ, 0, 0, 0), + SVE2p2_SME2p2_INSN ("scvtf", 0x645cc000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("scvtf", 0x645d8000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("scvtf", 0x649d8000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("scvtf", 0x64dc8000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("scvtf", 0x645dc000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("scvtf", 0x64dd8000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("scvtf", 0x64ddc000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("sqabs", 0x440aa000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("sqneg", 0x440ba000, 0xff3fe000, sve_size_bhsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_BHSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("sxtb", 0x0400a000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("sxth", 0x0482a000, 0xffbfe000, sve_size_sd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_SD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("sxtw", 0x04c4a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("ucvtf", 0x645ce000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZH, 0, 0, 0), + SVE2p2_SME2p2_INSN ("ucvtf", 0x645da000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("ucvtf", 0x649da000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("ucvtf", 0x64dca000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("ucvtf", 0x645de000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_HZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("ucvtf", 0x64dda000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("ucvtf", 0x64dde000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("urecpe", 0x4482a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("ursqrte", 0x4483a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_SZS, 0, 0, 0), + SVE2p2_SME2p2_INSN ("uxtb", 0x0401a000, 0xff3fe000, sve_size_hsd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_HSD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("uxth", 0x0483a000, 0xffbfe000, sve_size_sd, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_VZV_SD, 0, 0, 0), + SVE2p2_SME2p2_INSN ("uxtw", 0x04c5a000, 0xffffe000, sve_misc, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_DZD, 0, 0, 0), + + /* SME2p2 instructions. */ + SME2p2_INSN ("fmul", 0xc120e800, 0xff21fc21, sme_size_22_hsd, OP3 (SME_Zdnx2, SME_Znx2, SME_Zm_17), OP_SVE_VVV_HSD, 0, 0), + SME2p2_INSN ("fmul", 0xc121e800, 0xff21fc63, sme_size_22_hsd, OP3 (SME_Zdnx4, SME_Znx4, SME_Zm_17), OP_SVE_VVV_HSD, 0, 0), + SME2p2_INSN ("fmul", 0xc120e400, 0xff21fc21, sme_size_22_hsd, OP3 (SME_Zdnx2, SME_Znx2, SME_Zmx2), OP_SVE_VVV_HSD, 0, 0), + SME2p2_INSN ("fmul", 0xc121e400, 0xff21fc63, sme_size_22_hsd, OP3 (SME_Zdnx4, SME_Znx4, SME_Zmx4), OP_SVE_VVV_HSD, 0, 0), + {0, 0, 0, 0, 0, 0, {}, {}, 0, 0, 0, NULL}, }; diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c index 9c3158a..f6af9c4 100644 --- a/opcodes/riscv-dis.c +++ b/opcodes/riscv-dis.c @@ -345,7 +345,7 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info case 'j': if (((l & MASK_C_ADDI) == MATCH_C_ADDI) && rd != 0) maybe_print_address (pd, rd, EXTRACT_CITYPE_IMM (l), 0); - if (info->mach == bfd_mach_riscv64 + if (pd->xlen == 64 && ((l & MASK_C_ADDIW) == MATCH_C_ADDIW) && rd != 0) maybe_print_address (pd, rd, EXTRACT_CITYPE_IMM (l), 1); print (info->stream, dis_style_immediate, "%d", @@ -557,7 +557,7 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info if (((l & MASK_ADDI) == MATCH_ADDI && rs1 != 0) || (l & MASK_JALR) == MATCH_JALR) maybe_print_address (pd, rs1, EXTRACT_ITYPE_IMM (l), 0); - if (info->mach == bfd_mach_riscv64 + if (pd->xlen == 64 && ((l & MASK_ADDIW) == MATCH_ADDIW) && rs1 != 0) maybe_print_address (pd, rs1, EXTRACT_ITYPE_IMM (l), 1); print (info->stream, dis_style_immediate, "%d", @@ -983,7 +983,9 @@ riscv_disassemble_insn (bfd_vma memaddr, if (op != NULL) { /* If XLEN is not known, get its value from the ELF class. */ - if (info->mach == bfd_mach_riscv64) + if (pd->xlen != 0) + ; + else if (info->mach == bfd_mach_riscv64) pd->xlen = 64; else if (info->mach == bfd_mach_riscv32) pd->xlen = 32; diff --git a/opcodes/z8k-opc.h b/opcodes/z8k-opc.h index e8c9c88..933615e 100644 --- a/opcodes/z8k-opc.h +++ b/opcodes/z8k-opc.h @@ -289,7 +289,7 @@ typedef struct { #endif const char *name; unsigned char opcode; - void (*func) (void); + const void *p; unsigned int arg_info[4]; unsigned int byte_info[10]; unsigned int noperands; diff --git a/opcodes/z8kgen.c b/opcodes/z8kgen.c index 9dc5bdd..1b2da6b 100644 --- a/opcodes/z8kgen.c +++ b/opcodes/z8kgen.c @@ -1287,7 +1287,7 @@ gas (void) printf ("#endif\n"); printf (" const char *name;\n"); printf (" unsigned char opcode;\n"); - printf (" void (*func) (void);\n"); + printf (" const void *p;\n"); printf (" unsigned int arg_info[4];\n"); printf (" unsigned int byte_info[%d];\n", BYTE_INFO_LEN); printf (" unsigned int noperands;\n"); |