diff options
author | Pip Cet <pipcet@gmail.com> | 2017-03-30 10:57:21 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2017-03-30 10:57:21 +0100 |
commit | f96bd6c2d7a3801fabbf9d834f7a29b752aa7532 (patch) | |
tree | 6c4ee43355083f19052f09a0fb5bbc4e47c4a08a | |
parent | 662659a1a582af14aa45a458005e2a4df514b6d7 (diff) | |
download | gdb-f96bd6c2d7a3801fabbf9d834f7a29b752aa7532.zip gdb-f96bd6c2d7a3801fabbf9d834f7a29b752aa7532.tar.gz gdb-f96bd6c2d7a3801fabbf9d834f7a29b752aa7532.tar.bz2 |
Add support for the WebAssembly file format and the wasm32 ELF conversion to gas and the binutils.
binutils * readelf.c: Add support for wasm32 ELF format WebAssembly files.
(guess_is_rela): Likewise.
(dump_relocations): Likewise.
(is_32bit_abs_reloc): Likewise.
(is_none_reloc_): Likewise.
* NEWS: Mention the new support.
* testsuite/lib/binutils-common.exp (is_elf_format): Mark wasm32
as ELF target.
(supports_gnu_unique): Mark wasm32 as supporting STB_GNU_UNIQUE.
* testsuite/binutils-all/nm.exp: Mark wasm32 as requiring .size annotations.
* testsuite/binutils-all/wasm32: New directory.
* testsuite/binutils-all/wasm32/create-wasm.d: New file.
* testsuite/binutils-all/wasm32/create-wasm.s: Likewise.
* testsuite/binutils-all/wasm32/custom-section.d: Likewise.
* testsuite/binutils-all/wasm32/custom-section.s: Likewise.
* testsuite/binutils-all/wasm32/invalid-wasm-1.d: Likewise.
* testsuite/binutils-all/wasm32/invalid-wasm-1.s: Likewise.
* testsuite/binutils-all/wasm32/long-sections.d: Likewise.
* testsuite/binutils-all/wasm32/long-sections.s: Likewise.
* testsuite/binutils-all/wasm32/parse-wasm.d: Likewise.
* testsuite/binutils-all/wasm32/parse-wasm.s: Likewise.
* testsuite/binutils-all/wasm32/parse-wasm-2.d: Likewise.
* testsuite/binutils-all/wasm32/parse-wasm-2.s: Likewise.
* testsuite/binutils-all/wasm32/prepared-section.d: Likewise.
* testsuite/binutils-all/wasm32/prepared-section.s: Likewise.
* testsuite/binutils-all/wasm32/wasm32.exp: New file, run tests.
gas * config/tc-wasm32.h: New file: Add WebAssembly assembler target.
* config/tc-wasm32.c: New file: Add WebAssembly assembler target.
* Makefile.am: Add WebAssembly assembler target.
* configure.tgt: Add WebAssembly assembler target.
* doc/c-wasm32.texi: New file: Start documenting WebAssembly
assembler.
* doc/all.texi: Define WASM32.
* doc/as.texinfo: Add WebAssembly entries.
* NEWS: Mention the new support.
* Makefile.in: Regenerate.
* po/gas.pot: Regenerate.
* po/POTFILES.in: Regenerate.
* testsuite/gas/wasm32: New directory.
* testsuite/gas/wasm32/allinsn.d: New file.
* testsuite/gas/wasm32/allinsn.s: New file.
* testsuite/gas/wasm32/illegal.l: New file.
* testsuite/gas/wasm32/illegal.s: New file.
* testsuite/gas/wasm32/illegal-2.l: New file.
* testsuite/gas/wasm32/illegal-2.s: New file.
* testsuite/gas/wasm32/illegal-3.l: New file.
* testsuite/gas/wasm32/illegal-3.s: New file.
* testsuite/gas/wasm32/illegal-4.l: New file.
* testsuite/gas/wasm32/illegal-4.s: New file.
* testsuite/gas/wasm32/illegal-5.l: New file.
* testsuite/gas/wasm32/illegal-5.s: New file.
* testsuite/gas/wasm32/illegal-6.l: New file.
* testsuite/gas/wasm32/illegal-6.s: New file.
* testsuite/gas/wasm32/illegal-7.l: New file.
* testsuite/gas/wasm32/illegal-7.s: New file.
* testsuite/gas/wasm32/illegal-8.l: New file.
* testsuite/gas/wasm32/illegal-8.s: New file.
* testsuite/gas/wasm32/illegal-9.l: New file.
* testsuite/gas/wasm32/illegal-9.s: New file.
* testsuite/gas/wasm32/illegal-10.l: New file.
* testsuite/gas/wasm32/illegal-10.s: New file.
* testsuite/gas/wasm32/illegal-11.l: New file.
* testsuite/gas/wasm32/illegal-11.s: New file.
* testsuite/gas/wasm32/illegal-12.l: New file.
* testsuite/gas/wasm32/illegal-12.s: New file.
* testsuite/gas/wasm32/illegal-13.l: New file.
* testsuite/gas/wasm32/illegal-13.s: New file.
* testsuite/gas/wasm32/illegal-14.l: New file.
* testsuite/gas/wasm32/illegal-14.s: New file.
* testsuite/gas/wasm32/illegal-15.l: New file.
* testsuite/gas/wasm32/illegal-15.s: New file.
* testsuite/gas/wasm32/illegal-16.l: New file.
* testsuite/gas/wasm32/illegal-16.s: New file.
* testsuite/gas/wasm32/illegal-17.l: New file.
* testsuite/gas/wasm32/illegal-17.s: New file.
* testsuite/gas/wasm32/illegal-18.l: New file.
* testsuite/gas/wasm32/illegal-18.s: New file.
* testsuite/gas/wasm32/illegal-19.l: New file.
* testsuite/gas/wasm32/illegal-19.s: New file.
* testsuite/gas/wasm32/illegal-20.l: New file.
* testsuite/gas/wasm32/illegal-20.s: New file.
* testsuite/gas/wasm32/illegal-21.l: New file.
* testsuite/gas/wasm32/illegal-21.s: New file.
* testsuite/gas/wasm32/illegal-22.l: New file.
* testsuite/gas/wasm32/illegal-22.s: New file.
* testsuite/gas/wasm32/illegal-24.l: New file.
* testsuite/gas/wasm32/illegal-24.s: New file.
* testsuite/gas/wasm32/illegal-25.l: New file.
* testsuite/gas/wasm32/illegal-25.s: New file.
* testsuite/gas/wasm32/reloc.d: New file.
* testsuite/gas/wasm32/reloc.s: New file.
* testsuite/gas/wasm32/wasm32.exp: New tests for WebAssembly
architecture.
opcodes * configure.ac: Add (empty) bfd_wasm32_arch target.
* configure: Regenerate
* po/opcodes.pot: Regenerate.
include * opcode/wasm.h: New file to support wasm32 architecture.
* elf/wasm32.h: Add R_WASM32_32 relocation.
bfd * elf32-wasm32.c: Add relocation code, two relocs.
* reloc.c: Add wasm32 relocations.
* libbfd.h: Regenerate.
* bfd-in2.h: Regenerate.
* bfd/po/bfd.pot: Regenerate.
99 files changed, 4355 insertions, 1851 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 42ffd4d..bb851c7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2017-03-30 Pip Cet <pipcet@gmail.com> + + * elf32-wasm32.c: Add relocation code, two relocs. + * reloc.c: Add wasm32 relocations. + * libbfd.h: Regenerate. + * bfd-in2.h: Regenerate. + * bfd/po/bfd.pot: Regenerate. + 2017-03-29 Nick Clifton <nickc@redhat.com> PR binutils/18025 diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index adfcefd..fbd379f 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -6464,6 +6464,18 @@ assembler and not (currently) written to any object files. */ BFD_RELOC_VISIUM_HI16_PCREL, BFD_RELOC_VISIUM_LO16_PCREL, BFD_RELOC_VISIUM_IM16_PCREL, + +/* WebAssembly relocations. */ + BFD_RELOC_WASM32_LEB128, + BFD_RELOC_WASM32_LEB128_GOT, + BFD_RELOC_WASM32_LEB128_GOT_CODE, + BFD_RELOC_WASM32_LEB128_PLT, + BFD_RELOC_WASM32_PLT_INDEX, + BFD_RELOC_WASM32_ABS32_CODE, + BFD_RELOC_WASM32_COPY, + BFD_RELOC_WASM32_CODE_POINTER, + BFD_RELOC_WASM32_INDEX, + BFD_RELOC_WASM32_PLT_SIG, BFD_RELOC_UNUSED }; typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; diff --git a/bfd/elf32-wasm32.c b/bfd/elf32-wasm32.c index 9b38272..6d2e04ec 100644 --- a/bfd/elf32-wasm32.c +++ b/bfd/elf32-wasm32.c @@ -23,8 +23,108 @@ #include "libbfd.h" #include "elf-bfd.h" #include "bfd_stdint.h" +#include "libiberty.h" #include "elf/wasm32.h" +static reloc_howto_type elf32_wasm32_howto_table[] = +{ + HOWTO (R_WASM32_NONE, /* type */ + 0, /* rightshift */ + 3, /* size (0 = byte, 1 = short, 2 = long) */ + 0, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_dont,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_WASM32_NONE", /* name */ + FALSE, /* partial_inplace */ + 0, /* src_mask */ + 0, /* dst_mask */ + FALSE), /* pcrel_offset */ + + /* 32 bit absolute */ + HOWTO (R_WASM32_32, /* type */ + 0, /* rightshift */ + 2, /* size (0 = byte, 1 = short, 2 = long) */ + 32, /* bitsize */ + FALSE, /* pc_relative */ + 0, /* bitpos */ + complain_overflow_bitfield,/* complain_on_overflow */ + bfd_elf_generic_reloc, /* special_function */ + "R_WASM32_32", /* name */ + FALSE, /* partial_inplace */ + 0xffffffff, /* src_mask */ + 0xffffffff, /* dst_mask */ + FALSE), /* pcrel_offset */ +}; + +/* Look up the relocation CODE. */ + +static reloc_howto_type * +elf32_wasm32_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED, + bfd_reloc_code_real_type code) +{ + switch (code) + { + case BFD_RELOC_NONE: + return &elf32_wasm32_howto_table[R_WASM32_NONE]; + case BFD_RELOC_32: + return &elf32_wasm32_howto_table[R_WASM32_32]; + default: + break; + } + + return NULL; +} + +/* Look up the relocation R_NAME. */ + +static reloc_howto_type * +elf32_wasm32_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, + const char *r_name) +{ + unsigned int i; + + for (i = 0; i < ARRAY_SIZE (elf32_wasm32_howto_table); i++) + if (elf32_wasm32_howto_table[i].name != NULL + && strcasecmp (elf32_wasm32_howto_table[i].name, r_name) == 0) + return &elf32_wasm32_howto_table[i]; + + return NULL; +} + +/* Look up the relocation R_TYPE. */ + +static reloc_howto_type * +elf32_wasm32_rtype_to_howto (bfd *abfd, unsigned r_type) +{ + unsigned int i = r_type; + + if (i >= ARRAY_SIZE (elf32_wasm32_howto_table)) + { + /* xgettext:c-format */ + _bfd_error_handler (_("%B: invalid relocation type %d"), + abfd, (int) r_type); + i = R_WASM32_NONE; + } + + if (elf32_wasm32_howto_table[i].type != r_type) + return NULL; + + return &elf32_wasm32_howto_table[i]; +} + +/* Translate the ELF-internal relocation RELA into CACHE_PTR. */ + +static void +elf32_wasm32_info_to_howto_rela (bfd *abfd ATTRIBUTE_UNUSED, + arelent *cache_ptr, + Elf_Internal_Rela *dst) +{ + unsigned int r_type = ELF32_R_TYPE (dst->r_info); + cache_ptr->howto = elf32_wasm32_rtype_to_howto (abfd, r_type); +} + #define ELF_ARCH bfd_arch_wasm32 #define ELF_TARGET_ID EM_WEBASSEMBLY #define ELF_MACHINE_CODE EM_WEBASSEMBLY @@ -40,8 +140,11 @@ /* For testing. */ #define elf_backend_want_dynrelro 1 -#define bfd_elf32_bfd_reloc_type_lookup _bfd_norelocs_bfd_reloc_type_lookup -#define bfd_elf32_bfd_reloc_name_lookup _bfd_norelocs_bfd_reloc_name_lookup +#define elf_info_to_howto elf32_wasm32_info_to_howto_rela +#define elf_info_to_howto_rel NULL + +#define bfd_elf32_bfd_reloc_type_lookup elf32_wasm32_reloc_type_lookup +#define bfd_elf32_bfd_reloc_name_lookup elf32_wasm32_reloc_name_lookup #define ELF_DYNAMIC_INTERPRETER "/sbin/elf-dynamic-interpreter.so" diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 1b6ca52..8bac650 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -3166,6 +3166,16 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_VISIUM_HI16_PCREL", "BFD_RELOC_VISIUM_LO16_PCREL", "BFD_RELOC_VISIUM_IM16_PCREL", + "BFD_RELOC_WASM32_LEB128", + "BFD_RELOC_WASM32_LEB128_GOT", + "BFD_RELOC_WASM32_LEB128_GOT_CODE", + "BFD_RELOC_WASM32_LEB128_PLT", + "BFD_RELOC_WASM32_PLT_INDEX", + "BFD_RELOC_WASM32_ABS32_CODE", + "BFD_RELOC_WASM32_COPY", + "BFD_RELOC_WASM32_CODE_POINTER", + "BFD_RELOC_WASM32_INDEX", + "BFD_RELOC_WASM32_PLT_SIG", "@@overflow: BFD_RELOC_UNUSED@@", }; #endif diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot index 70249f8..2b2bec5 100644 --- a/bfd/po/bfd.pot +++ b/bfd/po/bfd.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2017-03-27 11:46+0100\n" +"POT-Creation-Date: 2017-03-29 17:07+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -206,7 +206,7 @@ msgid "Warning: Writing section `%s' at huge (ie negative) file offset 0x%lx." msgstr "" #: bout.c:1142 elf-m10300.c:2651 elf32-avr.c:2452 elf32-frv.c:5633 -#: elf64-ia64-vms.c:353 elfxx-sparc.c:2876 reloc.c:7981 reloc16.c:156 +#: elf64-ia64-vms.c:353 elfxx-sparc.c:2876 reloc.c:8004 reloc16.c:156 #: elf32-ia64.c:351 elf64-ia64.c:351 msgid "%P%F: --relax and -r may not be used together\n" msgstr "" @@ -617,16 +617,16 @@ msgstr "" msgid "<corrupt info> %s" msgstr "" -#: coffgen.c:2638 elflink.c:13940 linker.c:2931 +#: coffgen.c:2666 elflink.c:13940 linker.c:2931 msgid "%F%P: already_linked_table: %E\n" msgstr "" -#: coffgen.c:2965 elflink.c:12981 +#: coffgen.c:2993 elflink.c:12981 #, c-format msgid "Removing unused section '%s' in file '%B'" msgstr "" -#: coffgen.c:3041 elflink.c:13219 +#: coffgen.c:3069 elflink.c:13219 msgid "Warning: gc-sections option ignored" msgstr "" @@ -736,26 +736,26 @@ msgstr "" msgid "Dwarf Error: Unable to read alt ref %u." msgstr "" -#: dwarf2.c:2600 dwarf2.c:2745 dwarf2.c:3063 +#: dwarf2.c:2600 dwarf2.c:2750 dwarf2.c:3071 #, c-format msgid "Dwarf Error: Could not find abbrev number %u." msgstr "" -#: dwarf2.c:3015 +#: dwarf2.c:3023 #, c-format msgid "" "Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 " "and 4 information." msgstr "" -#: dwarf2.c:3026 +#: dwarf2.c:3034 #, c-format msgid "" "Dwarf Error: found address size '%u', this reader can not handle sizes " "greater than '%u'." msgstr "" -#: dwarf2.c:3129 +#: dwarf2.c:3137 msgid "" "Dwarf Error: DW_AT_comp_dir attribute encountered with a non-string form." msgstr "" @@ -1680,7 +1680,7 @@ msgstr "" #. Ignore init flag - it may not be set, despite the flags field containing valid data. #. Ignore init flag - it may not be set, despite the flags field #. containing valid data. -#: elf32-arm.c:14101 elf32-bfin.c:4919 elf32-cris.c:4084 elf32-m68hc1x.c:1413 +#: elf32-arm.c:14101 elf32-bfin.c:4919 elf32-cris.c:4089 elf32-m68hc1x.c:1413 #: elf32-m68k.c:1200 elf32-score.c:4009 elf32-score7.c:3818 elf32-vax.c:536 #: elf32-xgate.c:669 elfxx-mips.c:15782 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6695 @@ -2072,14 +2072,14 @@ msgid "" "-mno-small-tls)" msgstr "" -#: elf32-cris.c:3231 +#: elf32-cris.c:3233 #, c-format msgid "" "%B, section %A:\n" " v10/v32 compatible object %s must not contain a PIC relocation" msgstr "" -#: elf32-cris.c:3285 +#: elf32-cris.c:3287 #, c-format msgid "" "%B, section %A:\n" @@ -2087,52 +2087,52 @@ msgid "" "recompile with -fPIC" msgstr "" -#: elf32-cris.c:3500 +#: elf32-cris.c:3505 #, c-format msgid "" "%B, section %A:\n" " relocation %s should not be used in a shared object; recompile with -fPIC" msgstr "" -#: elf32-cris.c:3924 +#: elf32-cris.c:3929 #, c-format msgid "" "%B, section `%A', to symbol `%s':\n" " relocation %s should not be used in a shared object; recompile with -fPIC" msgstr "" -#: elf32-cris.c:4036 +#: elf32-cris.c:4041 msgid "Unexpected machine number" msgstr "" -#: elf32-cris.c:4087 +#: elf32-cris.c:4092 #, c-format msgid " [symbols have a _ prefix]" msgstr "" -#: elf32-cris.c:4090 +#: elf32-cris.c:4095 #, c-format msgid " [v10 and v32]" msgstr "" -#: elf32-cris.c:4093 +#: elf32-cris.c:4098 #, c-format msgid " [v32]" msgstr "" -#: elf32-cris.c:4137 +#: elf32-cris.c:4142 msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols" msgstr "" -#: elf32-cris.c:4138 +#: elf32-cris.c:4143 msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols" msgstr "" -#: elf32-cris.c:4157 +#: elf32-cris.c:4162 msgid "%B contains CRIS v32 code, incompatible with previous objects" msgstr "" -#: elf32-cris.c:4159 +#: elf32-cris.c:4164 msgid "%B contains non-CRIS-v32 code, incompatible with previous objects" msgstr "" @@ -2356,7 +2356,8 @@ msgstr "" #. Unknown relocation. #: elf32-i386.c:387 elf32-m68k.c:352 elf32-ppc.c:2074 elf32-s390.c:346 -#: elf32-tic6x.c:2674 elf64-ppc.c:2515 elf64-s390.c:372 elf64-x86-64.c:289 +#: elf32-tic6x.c:2674 elf32-wasm32.c:106 elf64-ppc.c:2515 elf64-s390.c:372 +#: elf64-x86-64.c:289 #, c-format msgid "%B: invalid relocation type %d" msgstr "" @@ -2947,7 +2948,7 @@ msgstr "" msgid "%B: Unmatched OMIT_FP in %A." msgstr "" -#: elf32-nds32.c:13026 reloc.c:8192 +#: elf32-nds32.c:13026 reloc.c:8215 #, c-format msgid "%X%P: %B(%A): relocation \"%R\" goes out of range\n" msgstr "" @@ -5841,21 +5842,21 @@ msgstr "" msgid "Partition[%d] length = 0x%.8lx (%ld)\n" msgstr "" -#: reloc.c:8028 +#: reloc.c:8051 msgid "INPUT_SECTION_FLAGS are not supported.\n" msgstr "" -#: reloc.c:8126 +#: reloc.c:8149 #, c-format msgid "%X%P: %B(%A): error: relocation for offset %V has no value\n" msgstr "" -#: reloc.c:8202 +#: reloc.c:8225 #, c-format msgid "%X%P: %B(%A): relocation \"%R\" is not supported\n" msgstr "" -#: reloc.c:8211 +#: reloc.c:8234 #, c-format msgid "%X%P: %B(%A): relocation \"%R\" returns an unrecognized value %x\n" msgstr "" diff --git a/bfd/reloc.c b/bfd/reloc.c index d4229a4..2791458 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -7853,6 +7853,29 @@ ENUMX ENUMDOC Visium Relocations. +ENUM + BFD_RELOC_WASM32_LEB128 +ENUMX + BFD_RELOC_WASM32_LEB128_GOT +ENUMX + BFD_RELOC_WASM32_LEB128_GOT_CODE +ENUMX + BFD_RELOC_WASM32_LEB128_PLT +ENUMX + BFD_RELOC_WASM32_PLT_INDEX +ENUMX + BFD_RELOC_WASM32_ABS32_CODE +ENUMX + BFD_RELOC_WASM32_COPY +ENUMX + BFD_RELOC_WASM32_CODE_POINTER +ENUMX + BFD_RELOC_WASM32_INDEX +ENUMX + BFD_RELOC_WASM32_PLT_SIG +ENUMDOC + WebAssembly relocations. + ENDSENUM BFD_RELOC_UNUSED CODE_FRAGMENT diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 9559587..767e315 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,32 @@ +2017-03-30 Pip Cet <pipcet@gmail.com> + + * readelf.c: Add support for wasm32 ELF format WebAssembly files. + (guess_is_rela): Likewise. + (dump_relocations): Likewise. + (is_32bit_abs_reloc): Likewise. + (is_none_reloc_): Likewise. + * NEWS: Mention the new support. + * testsuite/lib/binutils-common.exp (is_elf_format): Mark wasm32 + as ELF target. + (supports_gnu_unique): Mark wasm32 as supporting STB_GNU_UNIQUE. + * testsuite/binutils-all/nm.exp: Mark wasm32 as requiring .size annotations. + * testsuite/binutils-all/wasm32: New directory. + * testsuite/binutils-all/wasm32/create-wasm.d: New file. + * testsuite/binutils-all/wasm32/create-wasm.s: Likewise. + * testsuite/binutils-all/wasm32/custom-section.d: Likewise. + * testsuite/binutils-all/wasm32/custom-section.s: Likewise. + * testsuite/binutils-all/wasm32/invalid-wasm-1.d: Likewise. + * testsuite/binutils-all/wasm32/invalid-wasm-1.s: Likewise. + * testsuite/binutils-all/wasm32/long-sections.d: Likewise. + * testsuite/binutils-all/wasm32/long-sections.s: Likewise. + * testsuite/binutils-all/wasm32/parse-wasm.d: Likewise. + * testsuite/binutils-all/wasm32/parse-wasm.s: Likewise. + * testsuite/binutils-all/wasm32/parse-wasm-2.d: Likewise. + * testsuite/binutils-all/wasm32/parse-wasm-2.s: Likewise. + * testsuite/binutils-all/wasm32/prepared-section.d: Likewise. + * testsuite/binutils-all/wasm32/prepared-section.s: Likewise. + * testsuite/binutils-all/wasm32/wasm32.exp: New file, run tests. + 2017-03-29 Alan Modra <amodra@gmail.com> * doc/binutils.texi (objdump): Document PowerPC -M options. diff --git a/binutils/NEWS b/binutils/NEWS index c98908a..1b824fa 100644 --- a/binutils/NEWS +++ b/binutils/NEWS @@ -1,5 +1,7 @@ -*- text -*- +* Add support for the wasm32 ELF conversion of the Web Assembly file format. + * Add --inlines option to objdump, which extends the --line-numbers option so that inlined functions will display their nesting information. diff --git a/binutils/readelf.c b/binutils/readelf.c index 6ede239..31a519b 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -151,6 +151,7 @@ #include "elf/v850.h" #include "elf/vax.h" #include "elf/visium.h" +#include "elf/wasm32.h" #include "elf/x86-64.h" #include "elf/xc16x.h" #include "elf/xgate.h" @@ -809,6 +810,7 @@ guess_is_rela (unsigned int e_machine) case EM_XTENSA_OLD: case EM_MICROBLAZE: case EM_MICROBLAZE_OLD: + case EM_WEBASSEMBLY: return TRUE; case EM_68HC05: @@ -1498,6 +1500,10 @@ dump_relocations (FILE * file, rtype = elf_tilepro_reloc_type (type); break; + case EM_WEBASSEMBLY: + rtype = elf_wasm32_reloc_type (type); + break; + case EM_XGATE: rtype = elf_xgate_reloc_type (type); break; @@ -12091,6 +12097,8 @@ is_32bit_abs_reloc (unsigned int reloc_type) return reloc_type == 1; /* R_VAX_32. */ case EM_VISIUM: return reloc_type == 3; /* R_VISIUM_32. */ + case EM_WEBASSEMBLY: + return reloc_type == 1; /* R_WASM32_32. */ case EM_X86_64: case EM_L1OM: case EM_K1OM: @@ -12396,6 +12404,7 @@ is_none_reloc (unsigned int reloc_type) case EM_TI_C6000:/* R_C6000_NONE. */ case EM_X86_64: /* R_X86_64_NONE. */ case EM_XC16X: + case EM_WEBASSEMBLY: /* R_WASM32_NONE. */ return reloc_type == 0; case EM_AARCH64: diff --git a/binutils/testsuite/binutils-all/nm.exp b/binutils/testsuite/binutils-all/nm.exp index 13eafa6..fdcf194 100644 --- a/binutils/testsuite/binutils-all/nm.exp +++ b/binutils/testsuite/binutils-all/nm.exp @@ -175,7 +175,8 @@ if { [is_elf_format] || [istarget *-*-tpf*] || [istarget *-*-uclinux*] || [istarget ia64-*-*vms*] - || [istarget *-*-vxworks*] } { + || [istarget *-*-vxworks*] + || [istarget wasm32-*-*] } { set nm_1_src "nm-elf-1.s" } else { set nm_1_src "nm-1.s" diff --git a/binutils/testsuite/binutils-all/wasm32/create-wasm.d b/binutils/testsuite/binutils-all/wasm32/create-wasm.d new file mode 100644 index 0000000..3a1c18a --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/create-wasm.d @@ -0,0 +1,10 @@ +#PROG: objcopy +#source: create-wasm.s +#as: +#objcopy: -Ielf32-wasm32 -Owasm +#objdump: -bbinary -s + +.*:.*file format binary + +Contents of section .data: + 0000 0061736d 01000000 01030100 00030100 .asm............ diff --git a/binutils/testsuite/binutils-all/wasm32/create-wasm.s b/binutils/testsuite/binutils-all/wasm32/create-wasm.s new file mode 100644 index 0000000..5c360cc --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/create-wasm.s @@ -0,0 +1,6 @@ + .section .wasm.function + .byte 0 + .section .wasm.type + .byte 1 + .byte 0 + .byte 0 diff --git a/binutils/testsuite/binutils-all/wasm32/custom-section.d b/binutils/testsuite/binutils-all/wasm32/custom-section.d new file mode 100644 index 0000000..3a39e77 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/custom-section.d @@ -0,0 +1,11 @@ +#PROG: objcopy +#source: custom-section.s +#as: +#objcopy: -Ielf32-wasm32 -Owasm +#objdump: -bbinary -s + +.*:.*file format binary + +Contents of section .data: + 0000 0061736d 01000000 0008046e 616d6502 .asm.......name. + 0010 0100 .. *$ diff --git a/binutils/testsuite/binutils-all/wasm32/custom-section.s b/binutils/testsuite/binutils-all/wasm32/custom-section.s new file mode 100644 index 0000000..81fa671 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/custom-section.s @@ -0,0 +1,4 @@ + .section .wasm.name + .byte 2 + .byte 1 + .byte 0 diff --git a/binutils/testsuite/binutils-all/wasm32/invalid-wasm-1.d b/binutils/testsuite/binutils-all/wasm32/invalid-wasm-1.d new file mode 100644 index 0000000..e916fad --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/invalid-wasm-1.d @@ -0,0 +1,6 @@ +#PROG: objcopy +#source: invalid-wasm-1.s +#as: +#objcopy: -Ielf32-wasm32 -Obinary +#objdump: -bwasm -sD +#error: : File format not recognized
\ No newline at end of file diff --git a/binutils/testsuite/binutils-all/wasm32/invalid-wasm-1.s b/binutils/testsuite/binutils-all/wasm32/invalid-wasm-1.s new file mode 100644 index 0000000..50d6690 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/invalid-wasm-1.s @@ -0,0 +1,7 @@ + .data + .byte 0 + .ascii "ASM" + .byte 1 + .byte 0 + .byte 0 + .byte 0 diff --git a/binutils/testsuite/binutils-all/wasm32/invalid-wasm-2.d b/binutils/testsuite/binutils-all/wasm32/invalid-wasm-2.d new file mode 100644 index 0000000..da28775 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/invalid-wasm-2.d @@ -0,0 +1,6 @@ +#PROG: objcopy +#source: invalid-wasm-2.s +#as: +#objcopy: -Ielf32-wasm32 -Obinary +#objdump: -bwasm -sD +#exit: 1
\ No newline at end of file diff --git a/binutils/testsuite/binutils-all/wasm32/invalid-wasm-2.s b/binutils/testsuite/binutils-all/wasm32/invalid-wasm-2.s new file mode 100644 index 0000000..4270e9d --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/invalid-wasm-2.s @@ -0,0 +1,7 @@ + .data + .byte 0 + .ascii "asm" + .byte 2 + .byte 0 + .byte 0 + .byte 0 diff --git a/binutils/testsuite/binutils-all/wasm32/long-sections.d b/binutils/testsuite/binutils-all/wasm32/long-sections.d new file mode 100644 index 0000000..edf9058 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/long-sections.d @@ -0,0 +1,13 @@ +#PROG: objcopy +#source: long-sections.s +#as: +#objcopy: -Ielf32-wasm32 -Owasm +#objdump: -bbinary -s + +.*:.*file format binary + +Contents of section .data: + 00000 0061736d 01000000 01800200 00000000 .asm............ +#... + 00100 00000000 00000000 0000000a 80800400 ................ +#pass diff --git a/binutils/testsuite/binutils-all/wasm32/long-sections.s b/binutils/testsuite/binutils-all/wasm32/long-sections.s new file mode 100644 index 0000000..a8642d2 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/long-sections.s @@ -0,0 +1,9 @@ + .section .wasm.type + .rept 256 + .byte 0 + .endr + + .section .wasm.code + .rept 65536 + .byte 0 + .endr diff --git a/binutils/testsuite/binutils-all/wasm32/parse-wasm-2.d b/binutils/testsuite/binutils-all/wasm32/parse-wasm-2.d new file mode 100644 index 0000000..8b59c74 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/parse-wasm-2.d @@ -0,0 +1,15 @@ +#PROG: objcopy +#source: parse-wasm-2.s +#as: +#objcopy: -Ielf32-wasm32 -Obinary +#objdump: -bwasm -s + +.*:.*file format wasm + +Contents of section .wasm.type: + 80000000 01600001 7f .`... +Contents of section .wasm.function: + 80000005 0100 .. +Contents of section .wasm.code: + 80000007 01858080 80000041 2a0f0b .......A\*.. +#pass diff --git a/binutils/testsuite/binutils-all/wasm32/parse-wasm-2.s b/binutils/testsuite/binutils-all/wasm32/parse-wasm-2.s new file mode 100644 index 0000000..bc918b7 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/parse-wasm-2.s @@ -0,0 +1,43 @@ + .data + .byte 0 + .ascii "asm" + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0x85 + .byte 0x80 + .byte 0x80 + .byte 0x80 + .byte 0 + .byte 1 + .byte 0x60 + .byte 0 + .byte 1 + .byte 0x7f + .byte 3 + .byte 0x82 + .byte 0x80 + .byte 0x80 + .byte 0x80 + .byte 0 + .byte 1 + .byte 0 + .byte 0x0a + .byte 0x8b + .byte 0x80 + .byte 0x80 + .byte 0x80 + .byte 0 + .byte 1 + .byte 0x85 + .byte 0x80 + .byte 0x80 + .byte 0x80 + .byte 0 + .byte 0 + .byte 0x41 + .byte 0x2a + .byte 0x0f + .byte 0x0b diff --git a/binutils/testsuite/binutils-all/wasm32/parse-wasm.d b/binutils/testsuite/binutils-all/wasm32/parse-wasm.d new file mode 100644 index 0000000..fd8bc70 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/parse-wasm.d @@ -0,0 +1,8 @@ +#PROG: objcopy +#source: parse-wasm.s +#as: +#objcopy: -Ielf32-wasm32 -Obinary +#objdump: -bwasm -s + +.*:.*file format wasm + diff --git a/binutils/testsuite/binutils-all/wasm32/parse-wasm.s b/binutils/testsuite/binutils-all/wasm32/parse-wasm.s new file mode 100644 index 0000000..d495ea1 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/parse-wasm.s @@ -0,0 +1,7 @@ + .data + .byte 0 + .ascii "asm" + .byte 1 + .byte 0 + .byte 0 + .byte 0 diff --git a/binutils/testsuite/binutils-all/wasm32/prepared-section.d b/binutils/testsuite/binutils-all/wasm32/prepared-section.d new file mode 100644 index 0000000..c5bfafa --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/prepared-section.d @@ -0,0 +1,10 @@ +#PROG: objcopy +#source: prepared-section.s +#as: +#objcopy: -Ielf32-wasm32 -Owasm +#objdump: -bbinary -s + +.*:.*file format binary + +Contents of section .data: + 0000 0061736d 01000000 0006046e 616d6500 .asm.......name. diff --git a/binutils/testsuite/binutils-all/wasm32/prepared-section.s b/binutils/testsuite/binutils-all/wasm32/prepared-section.s new file mode 100644 index 0000000..574f6e0 --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/prepared-section.s @@ -0,0 +1,6 @@ + .section .prepared + .byte 0 + .byte 0x6 + .byte 4 + .ascii "name" + .byte 0 diff --git a/binutils/testsuite/binutils-all/wasm32/wasm32.exp b/binutils/testsuite/binutils-all/wasm32/wasm32.exp new file mode 100644 index 0000000..b95569a --- /dev/null +++ b/binutils/testsuite/binutils-all/wasm32/wasm32.exp @@ -0,0 +1,30 @@ +# Copyright (C) 2010-2017 Free Software Foundation, Inc. +# Copyright (C) 2017 Pip Cet <pipcet@gmail.com> + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. + +if { ![istarget "wasm32-*-*"] } then { + return +} + +run_dump_test "create-wasm" +run_dump_test "custom-section" +run_dump_test "long-sections" +run_dump_test "parse-wasm" +run_dump_test "parse-wasm-2" +run_dump_test "prepared-section" + +#run_dump_test "invalid-wasm-1" +#run_dump_test "invalid-wasm-2" diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp index 327db46..70b6773 100644 --- a/binutils/testsuite/lib/binutils-common.exp +++ b/binutils/testsuite/lib/binutils-common.exp @@ -41,6 +41,7 @@ proc is_elf_format {} { && ![istarget *-*-solaris2*] && ![istarget *-*-sysv4*] && ![istarget *-*-unixware*] + && ![istarget *-*-wasm32*] && ![istarget avr-*-*] && ![istarget bfin-*-uclinux] && ![istarget frv-*-uclinux*] @@ -183,6 +184,9 @@ proc supports_gnu_unique {} { if { [istarget "arm*-*-*eabi*"] } { return 1 } + if { [istarget "wasm32*-*-*"] } { + return 1 + } if { ![istarget "*-*-elf*"] } { return 0 } diff --git a/gas/ChangeLog b/gas/ChangeLog index f24e821..a5c1d08 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,73 @@ +2017-03-30 Pip Cet <pipcet@gmail.com> + + * config/tc-wasm32.h: New file: Add WebAssembly assembler target. + * config/tc-wasm32.c: New file: Add WebAssembly assembler target. + * Makefile.am: Add WebAssembly assembler target. + * configure.tgt: Add WebAssembly assembler target. + * doc/c-wasm32.texi: New file: Start documenting WebAssembly + assembler. + * doc/all.texi: Define WASM32. + * doc/as.texinfo: Add WebAssembly entries. + * NEWS: Mention the new support. + * Makefile.in: Regenerate. + * po/gas.pot: Regenerate. + * po/POTFILES.in: Regenerate. + * testsuite/gas/wasm32: New directory. + * testsuite/gas/wasm32/allinsn.d: New file. + * testsuite/gas/wasm32/allinsn.s: New file. + * testsuite/gas/wasm32/illegal.l: New file. + * testsuite/gas/wasm32/illegal.s: New file. + * testsuite/gas/wasm32/illegal-2.l: New file. + * testsuite/gas/wasm32/illegal-2.s: New file. + * testsuite/gas/wasm32/illegal-3.l: New file. + * testsuite/gas/wasm32/illegal-3.s: New file. + * testsuite/gas/wasm32/illegal-4.l: New file. + * testsuite/gas/wasm32/illegal-4.s: New file. + * testsuite/gas/wasm32/illegal-5.l: New file. + * testsuite/gas/wasm32/illegal-5.s: New file. + * testsuite/gas/wasm32/illegal-6.l: New file. + * testsuite/gas/wasm32/illegal-6.s: New file. + * testsuite/gas/wasm32/illegal-7.l: New file. + * testsuite/gas/wasm32/illegal-7.s: New file. + * testsuite/gas/wasm32/illegal-8.l: New file. + * testsuite/gas/wasm32/illegal-8.s: New file. + * testsuite/gas/wasm32/illegal-9.l: New file. + * testsuite/gas/wasm32/illegal-9.s: New file. + * testsuite/gas/wasm32/illegal-10.l: New file. + * testsuite/gas/wasm32/illegal-10.s: New file. + * testsuite/gas/wasm32/illegal-11.l: New file. + * testsuite/gas/wasm32/illegal-11.s: New file. + * testsuite/gas/wasm32/illegal-12.l: New file. + * testsuite/gas/wasm32/illegal-12.s: New file. + * testsuite/gas/wasm32/illegal-13.l: New file. + * testsuite/gas/wasm32/illegal-13.s: New file. + * testsuite/gas/wasm32/illegal-14.l: New file. + * testsuite/gas/wasm32/illegal-14.s: New file. + * testsuite/gas/wasm32/illegal-15.l: New file. + * testsuite/gas/wasm32/illegal-15.s: New file. + * testsuite/gas/wasm32/illegal-16.l: New file. + * testsuite/gas/wasm32/illegal-16.s: New file. + * testsuite/gas/wasm32/illegal-17.l: New file. + * testsuite/gas/wasm32/illegal-17.s: New file. + * testsuite/gas/wasm32/illegal-18.l: New file. + * testsuite/gas/wasm32/illegal-18.s: New file. + * testsuite/gas/wasm32/illegal-19.l: New file. + * testsuite/gas/wasm32/illegal-19.s: New file. + * testsuite/gas/wasm32/illegal-20.l: New file. + * testsuite/gas/wasm32/illegal-20.s: New file. + * testsuite/gas/wasm32/illegal-21.l: New file. + * testsuite/gas/wasm32/illegal-21.s: New file. + * testsuite/gas/wasm32/illegal-22.l: New file. + * testsuite/gas/wasm32/illegal-22.s: New file. + * testsuite/gas/wasm32/illegal-24.l: New file. + * testsuite/gas/wasm32/illegal-24.s: New file. + * testsuite/gas/wasm32/illegal-25.l: New file. + * testsuite/gas/wasm32/illegal-25.s: New file. + * testsuite/gas/wasm32/reloc.d: New file. + * testsuite/gas/wasm32/reloc.s: New file. + * testsuite/gas/wasm32/wasm32.exp: New tests for WebAssembly + architecture. + 2017-03-29 Alan Modra <amodra@gmail.com> * config/tc-ppc.c (md_parse_option): Reject -mraw. diff --git a/gas/Makefile.am b/gas/Makefile.am index 851532c..c9f9de0 100644 --- a/gas/Makefile.am +++ b/gas/Makefile.am @@ -196,6 +196,7 @@ TARGET_CPU_CFILES = \ config/tc-v850.c \ config/tc-vax.c \ config/tc-visium.c \ + config/tc-wasm32.c \ config/tc-xstormy16.c \ config/tc-xc16x.c \ config/tc-xgate.c \ @@ -271,6 +272,7 @@ TARGET_CPU_HFILES = \ config/tc-v850.h \ config/tc-vax.h \ config/tc-visium.h \ + config/tc-wasm32.h \ config/tc-xstormy16.h \ config/tc-xc16x.h \ config/tc-xgate.h \ diff --git a/gas/Makefile.in b/gas/Makefile.in index f995c02..1927de5 100644 --- a/gas/Makefile.in +++ b/gas/Makefile.in @@ -492,6 +492,7 @@ TARGET_CPU_CFILES = \ config/tc-v850.c \ config/tc-vax.c \ config/tc-visium.c \ + config/tc-wasm32.c \ config/tc-xstormy16.c \ config/tc-xc16x.c \ config/tc-xgate.c \ @@ -567,6 +568,7 @@ TARGET_CPU_HFILES = \ config/tc-v850.h \ config/tc-vax.h \ config/tc-visium.h \ + config/tc-wasm32.h \ config/tc-xstormy16.h \ config/tc-xc16x.h \ config/tc-xgate.h \ @@ -927,6 +929,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-v850.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-vax.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-visium.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-wasm32.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-xc16x.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-xgate.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-xstormy16.Po@am__quote@ @@ -1896,6 +1899,20 @@ tc-visium.obj: config/tc-visium.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-visium.obj `if test -f 'config/tc-visium.c'; then $(CYGPATH_W) 'config/tc-visium.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-visium.c'; fi` +tc-wasm32.o: config/tc-wasm32.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-wasm32.o -MD -MP -MF $(DEPDIR)/tc-wasm32.Tpo -c -o tc-wasm32.o `test -f 'config/tc-wasm32.c' || echo '$(srcdir)/'`config/tc-wasm32.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-wasm32.Tpo $(DEPDIR)/tc-wasm32.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-wasm32.c' object='tc-wasm32.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-wasm32.o `test -f 'config/tc-wasm32.c' || echo '$(srcdir)/'`config/tc-wasm32.c + +tc-wasm32.obj: config/tc-wasm32.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-wasm32.obj -MD -MP -MF $(DEPDIR)/tc-wasm32.Tpo -c -o tc-wasm32.obj `if test -f 'config/tc-wasm32.c'; then $(CYGPATH_W) 'config/tc-wasm32.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-wasm32.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-wasm32.Tpo $(DEPDIR)/tc-wasm32.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-wasm32.c' object='tc-wasm32.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o tc-wasm32.obj `if test -f 'config/tc-wasm32.c'; then $(CYGPATH_W) 'config/tc-wasm32.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-wasm32.c'; fi` + tc-xstormy16.o: config/tc-xstormy16.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-xstormy16.o -MD -MP -MF $(DEPDIR)/tc-xstormy16.Tpo -c -o tc-xstormy16.o `test -f 'config/tc-xstormy16.c' || echo '$(srcdir)/'`config/tc-xstormy16.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-xstormy16.Tpo $(DEPDIR)/tc-xstormy16.Po @@ -1,5 +1,7 @@ -*- text -*- +* Add support for the WebAssembly file format and wasm32 ELF conversion. + * PowerPC gas now checks that the correct register class is used in instructions. For instance, "addi %f4,%cr3,%r31" warns three times that the registers are invalid. diff --git a/gas/config/tc-wasm32.c b/gas/config/tc-wasm32.c new file mode 100644 index 0000000..0b05ef1 --- /dev/null +++ b/gas/config/tc-wasm32.c @@ -0,0 +1,821 @@ +/* tc-wasm32.c -- Assembler code for the wasm32 target. + + Copyright (C) 2017 Free Software Foundation, Inc. + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GAS 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 GAS; see the file COPYING. If not, write to the Free + Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#include "as.h" +#include "safe-ctype.h" +#include "subsegs.h" +#include "dwarf2dbg.h" +#include "dw2gencfi.h" +#include "elf/wasm32.h" +#include <float.h> + +enum wasm_class +{ + wasm_typed, /* a typed opcode: block, loop, or if */ + wasm_special, /* a special opcode: unreachable, nop, else, + or end */ + wasm_break, /* "br" */ + wasm_break_if, /* "br_if" opcode */ + wasm_break_table, /* "br_table" opcode */ + wasm_return, /* "return" opcode */ + wasm_call, /* "call" opcode */ + wasm_call_indirect, /* "call_indirect" opcode */ + wasm_get_local, /* "get_local" and "get_global" */ + wasm_set_local, /* "set_local" and "set_global" */ + wasm_tee_local, /* "tee_local" */ + wasm_drop, /* "drop" */ + wasm_constant_i32, /* "i32.const" */ + wasm_constant_i64, /* "i64.const" */ + wasm_constant_f32, /* "f32.const" */ + wasm_constant_f64, /* "f64.const" */ + wasm_unary, /* unary operators */ + wasm_binary, /* binary operators */ + wasm_conv, /* conversion operators */ + wasm_load, /* load operators */ + wasm_store, /* store operators */ + wasm_select, /* "select" */ + wasm_relational, /* comparison operators, except for "eqz" */ + wasm_eqz, /* "eqz" */ + wasm_current_memory, /* "current_memory" */ + wasm_grow_memory, /* "grow_memory" */ + wasm_signature /* "signature", which isn't an opcode */ +}; + +#define WASM_OPCODE(opcode, name, intype, outtype, class, signedness) \ + { name, wasm_ ## class, opcode }, + +struct wasm32_opcode_s +{ + const char *name; + enum wasm_class clas; + unsigned char opcode; +} wasm32_opcodes[] = +{ +#include "opcode/wasm.h" + { + NULL, 0, 0} +}; + +const char comment_chars[] = ";#"; +const char line_comment_chars[] = ";#"; +const char line_separator_chars[] = ""; + +const char *md_shortopts = "m:"; + +const char EXP_CHARS[] = "eE"; +const char FLT_CHARS[] = "dD"; + +/* The target specific pseudo-ops which we support. */ + +const pseudo_typeS md_pseudo_table[] = +{ + {NULL, NULL, 0} +}; + +/* Opcode hash table. */ + +static struct hash_control *wasm32_hash; + +struct option md_longopts[] = +{ + {NULL, no_argument, NULL, 0} +}; + +size_t md_longopts_size = sizeof (md_longopts); + +/* No relaxation/no machine-dependent frags. */ + +int +md_estimate_size_before_relax (fragS * fragp ATTRIBUTE_UNUSED, + asection * seg ATTRIBUTE_UNUSED) +{ + abort (); + return 0; +} + +void +md_show_usage (FILE * stream) +{ + fprintf (stream, _("wasm32 assembler options:\n")); +} + +/* No machine-dependent options. */ + +int +md_parse_option (int c ATTRIBUTE_UNUSED, const char *arg ATTRIBUTE_UNUSED) +{ + return 0; +} + +/* No machine-dependent symbols. */ + +symbolS * +md_undefined_symbol (char *name ATTRIBUTE_UNUSED) +{ + return NULL; +} + +/* IEEE little-endian floats. */ + +const char * +md_atof (int type, char *litP, int *sizeP) +{ + return ieee_md_atof (type, litP, sizeP, FALSE); +} + +/* No machine-dependent frags. */ + +void +md_convert_frag (bfd * abfd ATTRIBUTE_UNUSED, + asection * sec ATTRIBUTE_UNUSED, + fragS * fragP ATTRIBUTE_UNUSED) +{ + abort (); +} + +/* Build opcode hash table, set some flags. */ + +void +md_begin (void) +{ + struct wasm32_opcode_s *opcode; + + wasm32_hash = hash_new (); + + /* Insert unique names into hash table. This hash table then + provides a quick index to the first opcode with a particular name + in the opcode table. */ + for (opcode = wasm32_opcodes; opcode->name; opcode++) + hash_insert (wasm32_hash, opcode->name, (char *) opcode); + + linkrelax = 0; + flag_sectname_subst = 1; + flag_no_comments = 0; + flag_keep_locals = 1; +} + +/* Do the normal thing for md_section_align. */ + +valueT +md_section_align (asection * seg, valueT addr) +{ + int align = bfd_get_section_alignment (stdoutput, seg); + return ((addr + (1 << align) - 1) & -(1 << align)); +} + +/* Apply a fixup, return TRUE if done (and no relocation is + needed). */ + +static bfd_boolean +apply_full_field_fix (fixS * fixP, char *buf, bfd_vma val, int size) +{ + if (fixP->fx_addsy != NULL || fixP->fx_pcrel) + { + fixP->fx_addnumber = val; + return FALSE; + } + + number_to_chars_littleendian (buf, val, size); + return TRUE; +} + +/* Apply a fixup (potentially PC-relative), set the fx_done flag if + done. */ + +void +md_apply_fix (fixS * fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED) +{ + char *buf = fixP->fx_where + fixP->fx_frag->fr_literal; + long val = (long) *valP; + + if (fixP->fx_pcrel) + { + switch (fixP->fx_r_type) + { + default: + bfd_set_error (bfd_error_bad_value); + return; + + case BFD_RELOC_32: + fixP->fx_r_type = BFD_RELOC_32_PCREL; + return; + } + } + + if (apply_full_field_fix (fixP, buf, val, fixP->fx_size)) + fixP->fx_done = 1; +} + +/* Skip whitespace. */ + +static inline char * +skip_space (char *s) +{ + while (*s == ' ' || *s == '\t') + ++s; + return s; +} + +/* Allow '/' in opcodes. */ + +static inline bfd_boolean +is_part_of_opcode (char c) +{ + return is_part_of_name (c) || (c == '/'); +} + +/* Extract an opcode. */ + +static char * +extract_opcode (char *from, char *to, int limit) +{ + char *op_end; + int size = 0; + + /* Drop leading whitespace. */ + from = skip_space (from); + *to = 0; + + /* Find the op code end. */ + for (op_end = from; *op_end != 0 && is_part_of_opcode (*op_end);) + { + to[size++] = *op_end++; + if (size + 1 >= limit) + break; + } + + to[size] = 0; + return op_end; +} + +/* Produce an unsigned LEB128 integer padded to the right number of + bytes to store BITS bits, of value VALUE. Uses FRAG_APPEND_1_CHAR + to write. */ + +static void +wasm32_put_long_uleb128 (int bits, unsigned long value) +{ + unsigned char c; + int i = 0; + + do + { + c = value & 0x7f; + value >>= 7; + if (i < (bits - 1) / 7) + c |= 0x80; + FRAG_APPEND_1_CHAR (c); + } + while (++i < (bits + 6) / 7); +} + +/* Produce a signed LEB128 integer, using FRAG_APPEND_1_CHAR to + write. */ + +static void +wasm32_put_sleb128 (long value) +{ + unsigned char c; + int more; + + do + { + c = (value & 0x7f); + value >>= 7; + more = !((((value == 0) && ((c & 0x40) == 0)) + || ((value == -1) && ((c & 0x40) != 0)))); + if (more) + c |= 0x80; + FRAG_APPEND_1_CHAR (c); + } + while (more); +} + +/* Produce an unsigned LEB128 integer, using FRAG_APPEND_1_CHAR to + write. */ + +static void +wasm32_put_uleb128 (unsigned long value) +{ + unsigned char c; + + do + { + c = value & 0x7f; + value >>= 7; + if (value) + c |= 0x80; + FRAG_APPEND_1_CHAR (c); + } + while (value); +} + +/* Read an integer expression. Produce an LEB128-encoded integer if + it's a constant, a padded LEB128 plus a relocation if it's a + symbol, or a special relocation for <expr>@got, <expr>@gotcode, and + <expr>@plt{__sigchar_<signature>}. */ + +static bfd_boolean +wasm32_leb128 (char **line, int bits, int sign) +{ + char *t = input_line_pointer; + char *str = *line; + char *str0 = str; + struct reloc_list *reloc; + expressionS ex; + int gotrel = 0; + int pltrel = 0; + int code = 0; + const char *relname; + + input_line_pointer = str; + expression (&ex); + + if (ex.X_op == O_constant && *input_line_pointer != '@') + { + long value = ex.X_add_number; + + str = input_line_pointer; + str = skip_space (str); + *line = str; + if (sign) + wasm32_put_sleb128 (value); + else + { + if (value < 0) + as_bad (_("unexpected negative constant")); + wasm32_put_uleb128 (value); + } + input_line_pointer = t; + return str != str0; + } + + reloc = XNEW (struct reloc_list); + reloc->u.a.offset_sym = expr_build_dot (); + if (ex.X_op == O_symbol) + { + reloc->u.a.sym = ex.X_add_symbol; + reloc->u.a.addend = ex.X_add_number; + } + else + { + reloc->u.a.sym = make_expr_symbol (&ex); + reloc->u.a.addend = 0; + } + /* i32.const fpointer@gotcode */ + if (strncmp (input_line_pointer, "@gotcode", 8) == 0) + { + gotrel = 1; + code = 1; + input_line_pointer += 8; + } + /* i32.const data@got */ + else if (strncmp (input_line_pointer, "@got", 4) == 0) + { + gotrel = 1; + input_line_pointer += 4; + } + /* call f@plt{__sigchar_FiiiiE} */ + else if (strncmp (input_line_pointer, "@plt", 4) == 0) + { + char *end_of_sig; + + pltrel = 1; + code = 1; + input_line_pointer += 4; + + if (strncmp (input_line_pointer, "{", 1) == 0 + && (end_of_sig = strchr (input_line_pointer, '}'))) + { + char *signature; + struct reloc_list *reloc2; + size_t siglength = end_of_sig - (input_line_pointer + 1); + + signature = strndup (input_line_pointer + 1, siglength); + + reloc2 = XNEW (struct reloc_list); + reloc2->u.a.offset_sym = expr_build_dot (); + reloc2->u.a.sym = symbol_find_or_make (signature); + reloc2->u.a.addend = 0; + reloc2->u.a.howto = bfd_reloc_name_lookup + (stdoutput, "R_WASM32_PLT_SIG"); + reloc2->next = reloc_list; + reloc_list = reloc2; + input_line_pointer = end_of_sig + 1; + } + else + { + as_bad (_("no function type on PLT reloc")); + } + } + + if (gotrel && code) + relname = "R_WASM32_LEB128_GOT_CODE"; + else if (gotrel) + relname = "R_WASM32_LEB128_GOT"; + else if (pltrel) + relname = "R_WASM32_LEB128_PLT"; + else + relname = "R_WASM32_LEB128"; + + reloc->u.a.howto = bfd_reloc_name_lookup (stdoutput, relname); + if (!reloc->u.a.howto) + as_bad (_("couldn't find relocation to use")); + reloc->file = as_where (&reloc->line); + reloc->next = reloc_list; + reloc_list = reloc; + + str = input_line_pointer; + str = skip_space (str); + *line = str; + wasm32_put_long_uleb128 (bits, 0); + input_line_pointer = t; + + return str != str0; +} + +/* Read an integer expression and produce an unsigned LEB128 integer, + or a relocation for it. */ + +static bfd_boolean +wasm32_uleb128 (char **line, int bits) +{ + return wasm32_leb128 (line, bits, 0); +} + +/* Read an integer expression and produce a signed LEB128 integer, or + a relocation for it. */ + +static bfd_boolean +wasm32_sleb128 (char **line, int bits) +{ + return wasm32_leb128 (line, bits, 1); +} + +/* Read an f32. (Like float_cons ('f')). */ + +static void +wasm32_f32 (char **line) +{ + char *t = input_line_pointer; + + input_line_pointer = *line; + float_cons ('f'); + *line = input_line_pointer; + input_line_pointer = t; +} + +/* Read an f64. (Like float_cons ('d')). */ + +static void +wasm32_f64 (char **line) +{ + char *t = input_line_pointer; + + input_line_pointer = *line; + float_cons ('d'); + *line = input_line_pointer; + input_line_pointer = t; +} + +/* Assemble a signature from LINE, replacing it with the new input + pointer. Signatures are simple expressions matching the regexp + F[ilfd]*v?E, and interpreted as though they were C++-mangled + function types on a 64-bit machine. */ + +static void +wasm32_signature (char **line) +{ + unsigned long count = 0; + char *str = *line; + char *ostr; + char *result; + + if (*str++ != 'F') + as_bad (_("Not a function type")); + result = str; + ostr = str + 1; + str++; + + while (*str != 'E') + { + switch (*str++) + { + case 'i': + case 'l': + case 'f': + case 'd': + count++; + break; + default: + as_bad (_("Unknown type %c\n"), str[-1]); + } + } + wasm32_put_uleb128 (count); + str = ostr; + while (*str != 'E') + { + switch (*str++) + { + case 'i': + FRAG_APPEND_1_CHAR (BLOCK_TYPE_I32); + break; + case 'l': + FRAG_APPEND_1_CHAR (BLOCK_TYPE_I64); + break; + case 'f': + FRAG_APPEND_1_CHAR (BLOCK_TYPE_F32); + break; + case 'd': + FRAG_APPEND_1_CHAR (BLOCK_TYPE_F64); + break; + default: + as_bad (_("Unknown type")); + } + } + str++; + switch (*result) + { + case 'v': + FRAG_APPEND_1_CHAR (0x00); /* no return value */ + break; + case 'i': + FRAG_APPEND_1_CHAR (0x01); /* one return value */ + FRAG_APPEND_1_CHAR (BLOCK_TYPE_I32); + break; + case 'l': + FRAG_APPEND_1_CHAR (0x01); /* one return value */ + FRAG_APPEND_1_CHAR (BLOCK_TYPE_I64); + break; + case 'f': + FRAG_APPEND_1_CHAR (0x01); /* one return value */ + FRAG_APPEND_1_CHAR (BLOCK_TYPE_F32); + break; + case 'd': + FRAG_APPEND_1_CHAR (0x01); /* one return value */ + FRAG_APPEND_1_CHAR (BLOCK_TYPE_F64); + break; + default: + as_bad (_("Unknown type")); + } + *line = str; +} + +/* Main operands function. Read the operands for OPCODE from LINE, + replacing it with the new input pointer. */ + +static void +wasm32_operands (struct wasm32_opcode_s *opcode, char **line) +{ + char *str = *line; + unsigned long block_type = 0; + + FRAG_APPEND_1_CHAR (opcode->opcode); + str = skip_space (str); + if (str[0] == '[') + { + if (opcode->clas == wasm_typed) + { + str++; + block_type = BLOCK_TYPE_NONE; + if (str[0] != ']') + { + str = skip_space (str); + switch (str[0]) + { + case 'i': + block_type = BLOCK_TYPE_I32; + str++; + break; + case 'l': + block_type = BLOCK_TYPE_I64; + str++; + break; + case 'f': + block_type = BLOCK_TYPE_F32; + str++; + break; + case 'd': + block_type = BLOCK_TYPE_F64; + str++; + break; + } + str = skip_space (str); + if (str[0] == ']') + str++; + else + as_bad (_("only single block types allowed")); + str = skip_space (str); + } + else + { + str++; + str = skip_space (str); + } + } + else + as_bad (_("instruction does not take a block type")); + } + + switch (opcode->clas) + { + case wasm_drop: + case wasm_special: + case wasm_binary: + case wasm_unary: + case wasm_relational: + case wasm_select: + case wasm_eqz: + case wasm_conv: + case wasm_return: + break; + case wasm_typed: + if (block_type == 0) + as_bad (_("missing block type")); + FRAG_APPEND_1_CHAR (block_type); + break; + case wasm_store: + case wasm_load: + if (str[0] == 'a' && str[1] == '=') + { + str += 2; + if (!wasm32_uleb128 (&str, 32)) + as_bad (_("missing alignment hint")); + } + else + { + as_bad (_("missing alignment hint")); + } + str = skip_space (str); + if (!wasm32_uleb128 (&str, 32)) + as_bad (_("missing offset")); + break; + case wasm_set_local: + case wasm_get_local: + case wasm_tee_local: + if (!wasm32_uleb128 (&str, 32)) + as_bad (_("missing local index")); + break; + case wasm_break: + case wasm_break_if: + if (!wasm32_uleb128 (&str, 32)) + as_bad (_("missing break count")); + break; + case wasm_current_memory: + case wasm_grow_memory: + if (!wasm32_uleb128 (&str, 32)) + as_bad (_("missing reserved current_memory/grow_memory argument")); + break; + case wasm_call: + if (!wasm32_uleb128 (&str, 32)) + as_bad (_("missing call argument")); + break; + case wasm_call_indirect: + if (!wasm32_uleb128 (&str, 32)) + as_bad (_("missing call signature")); + if (!wasm32_uleb128 (&str, 32)) + as_bad (_("missing table index")); + break; + case wasm_constant_i32: + wasm32_sleb128 (&str, 32); + break; + case wasm_constant_i64: + wasm32_sleb128 (&str, 64); + break; + case wasm_constant_f32: + wasm32_f32 (&str); + return; + case wasm_constant_f64: + wasm32_f64 (&str); + return; + case wasm_break_table: + { + do + { + wasm32_uleb128 (&str, 32); + str = skip_space (str); + } + while (str[0]); + + break; + } + case wasm_signature: + wasm32_signature (&str); + } + str = skip_space (str); + + if (*str) + as_bad (_("junk at end of line, first unrecognized character is `%c'"), + *str); + + *line = str; + + return; +} + +/* Main assembly function. Find the opcode and call + wasm32_operands(). */ + +void +md_assemble (char *str) +{ + char op[32]; + char *t; + struct wasm32_opcode_s *opcode; + + str = skip_space (extract_opcode (str, op, sizeof (op))); + + if (!op[0]) + as_bad (_("can't find opcode ")); + + opcode = (struct wasm32_opcode_s *) hash_find (wasm32_hash, op); + + if (opcode == NULL) + { + as_bad (_("unknown opcode `%s'"), op); + return; + } + + dwarf2_emit_insn (0); + + t = input_line_pointer; + wasm32_operands (opcode, &str); + input_line_pointer = t; +} + +/* Don't replace PLT/GOT relocations with section symbols, so they + don't get an addend. */ + +int +wasm32_force_relocation (fixS * f) +{ + if (f->fx_r_type == BFD_RELOC_WASM32_LEB128_PLT + || f->fx_r_type == BFD_RELOC_WASM32_LEB128_GOT) + return 1; + + return 0; +} + +/* Don't replace PLT/GOT relocations with section symbols, so they + don't get an addend. */ + +bfd_boolean +wasm32_fix_adjustable (fixS * fixP) +{ + if (fixP->fx_addsy == NULL) + return TRUE; + + if (fixP->fx_r_type == BFD_RELOC_WASM32_LEB128_PLT + || fixP->fx_r_type == BFD_RELOC_WASM32_LEB128_GOT) + return FALSE; + + return TRUE; +} + +/* Generate a reloc for FIXP. */ + +arelent * +tc_gen_reloc (asection * sec ATTRIBUTE_UNUSED, fixS * fixp) +{ + arelent *reloc; + + reloc = (arelent *) xmalloc (sizeof (*reloc)); + reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *)); + *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy); + reloc->address = fixp->fx_frag->fr_address + fixp->fx_where; + + /* Make sure none of our internal relocations make it this far. + They'd better have been fully resolved by this point. */ + gas_assert ((int) fixp->fx_r_type > 0); + + reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type); + if (reloc->howto == NULL) + { + as_bad_where (fixp->fx_file, fixp->fx_line, + _("cannot represent `%s' relocation in object file"), + bfd_get_reloc_code_name (fixp->fx_r_type)); + return NULL; + } + + reloc->addend = fixp->fx_offset; + + return reloc; +} diff --git a/gas/config/tc-wasm32.h b/gas/config/tc-wasm32.h new file mode 100644 index 0000000..220ad56 --- /dev/null +++ b/gas/config/tc-wasm32.h @@ -0,0 +1,89 @@ +/* This file is tc-wasm32.h. + Copyright (C) 2017 Free Software Foundation, Inc. + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GAS 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 GAS; see the file COPYING. If not, write to the Free + Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ + +#define TC_WASM32 +#define TARGET_FORMAT "elf32-wasm32" +#define TARGET_ARCH bfd_arch_wasm32 +#define TARGET_MACH 1 + +/* WebAssembly is strictly little-endian. */ +#define TARGET_BYTES_BIG_ENDIAN 0 +#define md_number_to_chars number_to_chars_littleendian + +#define DIFF_EXPR_OK + +/* No machine-dependent operand expressions. */ +#define md_operand(x) + +/* No broken word processing. */ +#define WORKING_DOT_WORD + +/* Force some relocations. */ +#define EXTERN_FORCE_RELOC 1 +extern int wasm32_force_relocation (struct fix *); +#define TC_FORCE_RELOCATION(fix) wasm32_force_relocation (fix) +#define TC_FORCE_RELOCATION_LOCAL(fix) 1 +#define TC_FORCE_RELOCATION_SUB_SAME(fix,seg) wasm32_force_relocation (fix) +#define TC_FORCE_RELOCATION_SUB_ABS(fix,seg) wasm32_force_relocation (fix) +#define TC_FORCE_RELOCATION_SUB_LOCAL(fix,seg) wasm32_force_relocation (fix) +#define TC_VALIDATE_FIX_SUB(fix,seg) wasm32_force_relocation (fix) + +/* This is ELF, values passed to md_apply_fix don't include the symbol + value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +/* PC-relative relocations are relative to the relocation offset. */ +#define MD_PCREL_FROM_SECTION(FIX, SEC) 0 + +#define DWARF2_LINE_MIN_INSN_LENGTH 1 + +/* WebAssembly uses 32-bit addresses. */ +#define TC_ADDRESS_BYTES() 4 +#define DWARF2_ADDR_SIZE(bfd) 4 + +/* Enable cfi directives. */ +#define TARGET_USE_CFIPOP 1 + +/* The stack grows down, and there is no harm in claiming it is only + byte aligned. */ +#define DWARF2_CIE_DATA_ALIGNMENT -1 + +/* Define the column that represents the PC. FIXME: this depends on + the ABI. */ +#define DWARF2_DEFAULT_RETURN_COLUMN 36 + +/* Define a hook to setup initial CFI state. */ +#define tc_cfi_frame_initial_instructions() do { } while (0) + +#define elf_tc_final_processing() +#define md_post_relax_hook +#define md_start_line_hook() +#define HANDLE_ALIGN(fragP) + + +extern bfd_boolean wasm32_fix_adjustable (struct fix *); +#define tc_fix_adjustable(FIX) wasm32_fix_adjustable (FIX) + +/* Type names for blocks and signatures. */ +#define BLOCK_TYPE_NONE 0x40 +#define BLOCK_TYPE_I32 0x7f +#define BLOCK_TYPE_I64 0x7e +#define BLOCK_TYPE_F32 0x7d +#define BLOCK_TYPE_F64 0x7c diff --git a/gas/configure.tgt b/gas/configure.tgt index acc3cf0..6000c7c 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -111,6 +111,7 @@ case ${cpu} in tilegx*) cpu_type=tilegx endian=little ;; v850*) cpu_type=v850 ;; visium) cpu_type=visium endian=big ;; + wasm32) cpu_type=wasm32 endian=little ;; x86_64*) cpu_type=i386 arch=x86_64;; xgate) cpu_type=xgate ;; xtensa*) cpu_type=xtensa arch=xtensa ;; @@ -462,6 +463,8 @@ case ${generic_target} in visium-*-elf) fmt=elf ;; + wasm32-*-*) fmt=elf ;; + xstormy16-*-*) fmt=elf ;; xgate-*-*) fmt=elf ;; diff --git a/gas/doc/all.texi b/gas/doc/all.texi index 5a2dd4a..d0a1a9a 100644 --- a/gas/doc/all.texi +++ b/gas/doc/all.texi @@ -77,6 +77,7 @@ @set V850 @set VAX @set VISIUM +@set WASM32 @set XGATE @set XSTORMY16 @set XTENSA diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo index 56a38bf..d03d0b6 100644 --- a/gas/doc/as.texinfo +++ b/gas/doc/as.texinfo @@ -7728,8 +7728,11 @@ subject, see the hardware manufacturer's manual. @ifset VISIUM * Visium-Dependent:: Visium Dependent Features @end ifset +@ifset WASM32 +* WebAssembly-Dependent:: WebAssembly Dependent Features +@end ifset @ifset XGATE -* XGATE-Dependent:: XGATE Features +* XGATE-Dependent:: XGATE Dependent Features @end ifset @ifset XSTORMY16 * XSTORMY16-Dependent:: XStormy16 Dependent Features @@ -7975,6 +7978,10 @@ family. @include c-visium.texi @end ifset +@ifset WASM32 +@include c-wasm32.texi +@end ifset + @ifset XGATE @include c-xgate.texi @end ifset diff --git a/gas/doc/c-wasm32.texi b/gas/doc/c-wasm32.texi new file mode 100644 index 0000000..8eac7a4 --- /dev/null +++ b/gas/doc/c-wasm32.texi @@ -0,0 +1,119 @@ +@c Copyright (C) 2017 Free Software Foundation, Inc. +@c This is part of the GAS manual. +@c For copying conditions, see the file as.texinfo. +@c man end + +@ifset GENERIC +@page +@node WebAssembly-Dependent +@chapter WebAssembly Dependent Features +@end ifset + +@ifclear GENERIC +@node Machine Dependencies +@chapter WebAssembly Dependent Features +@end ifclear + +@cindex WebAssembly support +@menu +* WebAssembly-Notes:: Notes +* WebAssembly-Syntax:: Syntax +* WebAssembly-Floating-Point:: Floating Point +* WebAssembly-Opcodes:: Opcodes +* WebAssembly-module-layout:: Module Layout +@end menu + +@node WebAssembly-Notes +@section Notes +@cindex WebAssembly notes +@cindex notes for WebAssembly + +While WebAssembly provides its own module format for executables, this +documentation describes how to use @code{@value{AS}} to produce +intermediate ELF object format files. + +@node WebAssembly-Syntax +@section Syntax +@cindex WebAssembly Syntax +The assembler syntax directly encodes sequences of opcodes as defined +in the WebAssembly binary encoding specification at +https://github.com/webassembly/spec/BinaryEncoding.md. Structured +sexp-style expressions are not supported as input. + +@menu +* WebAssembly-Chars:: Special Characters +* WebAssembly-Relocs:: Relocations +* WebAssembly-Signatures:: Signatures +@end menu + +@node WebAssembly-Chars +@subsection Special Characters + +@cindex line comment character, WebAssembly +@cindex WebAssembly line comment character +@samp{#} and @samp{;} are the line comment characters. Note that if +@samp{#} is the first character on a line then it can also be a +logical line number directive (@pxref{Comments}) or a preprocessor +control command (@pxref{Preprocessing}). + +@node WebAssembly-Relocs +@subsection Relocations +@cindex WebAssembly relocations +@cindex relocations, WebAssembly + +Special relocations are available by using the @samp{@@@var{plt}}, +@samp{@@@var{got}}, or @samp{@@@var{got}} suffixes after a constant +expression, which correspond to the R_ASMJS_LEB128_PLT, +R_ASMJS_LEB128_GOT, and R_ASMJS_LEB128_GOT_CODE relocations, +respectively. + +The @samp{@@@var{plt}} suffix is followed by a symbol name in braces; +the symbol value is used to determine the function signature for which +a PLT stub is generated. Currently, the symbol @emph{name} is parsed +from its last @samp{F} character to determine the argument count of +the function, which is also necessary for generating a PLT stub. + +@node WebAssembly-Signatures +@subsection Signatures +@cindex WebAssembly signatures +@cindex signatures, WebAssembly + +Function signatures are specified with the @code{signature} +pseudo-opcode, followed by a simple function signature imitating a +C++-mangled function type: @code{F} followed by an optional @code{v}, +then a sequence of @code{i}, @code{l}, @code{f}, and @code{d} +characters to mark i32, i64, f32, and f64 parameters, respectively; +followed by a final @code{E} to mark the end of the function +signature. + +@node WebAssembly-Floating-Point +@section Floating Point +@cindex floating point, WebAssembly (@sc{ieee}) +@cindex WebAssembly floating point (@sc{ieee}) +WebAssembly uses little-endian @sc{ieee} floating-point numbers. + +@node WebAssembly-Opcodes +@section Regular Opcodes +@cindex opcodes, WebAssembly +@cindex WebAssembly opcodes +Ordinary instructions are encoded with the WebAssembly mnemonics as +listed at: +@url{https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md}. + +Opcodes are written directly in the order in which they are encoded, +without going through an intermediate sexp-style expression as in the +@code{was} format. + +For ``typed'' opcodes (block, if, etc.), the type of the block is +specified in square brackets following the opcode: @code{if[i]}, +@code{if[]}. + +@node WebAssembly-module-layout +@section WebAssembly Module Layout +@cindex module layout, WebAssembly +@cindex WebAssembly module layout +@code{@value{AS}} will only produce ELF output, not a valid +WebAssembly module. It is possible to make @code{@value{AS}} produce +output in a single ELF section which becomes a valid WebAssembly +module, but a linker script to do so may be preferrable, as it doesn't +require running the entire module through the assembler at once. diff --git a/gas/po/POTFILES.in b/gas/po/POTFILES.in index 98861f7..51bbb5b 100644 --- a/gas/po/POTFILES.in +++ b/gas/po/POTFILES.in @@ -169,6 +169,8 @@ config/tc-vax.c config/tc-vax.h config/tc-visium.c config/tc-visium.h +config/tc-wasm32.c +config/tc-wasm32.h config/tc-xc16x.c config/tc-xc16x.h config/tc-xgate.c diff --git a/gas/po/gas.pot b/gas/po/gas.pot index 36a2f81..e971173 100644 --- a/gas/po/gas.pot +++ b/gas/po/gas.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2016-12-23 09:23+0100\n" +"POT-Creation-Date: 2017-03-29 17:08+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -406,7 +406,7 @@ msgstr "" #: as.c:663 #, c-format -msgid "Copyright (C) 2016 Free Software Foundation, Inc.\n" +msgid "Copyright (C) 2017 Free Software Foundation, Inc.\n" msgstr "" #: as.c:664 @@ -514,37 +514,37 @@ msgstr "" msgid "%s: data size %ld\n" msgstr "" -#: as.c:1338 +#: as.c:1339 #, c-format msgid "%d warning" msgstr "" -#: as.c:1340 +#: as.c:1341 #, c-format msgid "%d warnings" msgstr "" -#: as.c:1342 +#: as.c:1343 #, c-format msgid "%d error" msgstr "" -#: as.c:1344 +#: as.c:1345 #, c-format msgid "%d errors" msgstr "" -#: as.c:1349 +#: as.c:1350 #, c-format msgid "%s, treating warnings as errors" msgstr "" -#: as.c:1360 +#: as.c:1361 #, c-format msgid "%s, %s, generating bad object file\n" msgstr "" -#: as.h:174 +#: as.h:173 #, c-format msgid "Case value %ld unexpected at line %d of file \"%s\"\n" msgstr "" @@ -558,10 +558,10 @@ msgid "failed sanity check" msgstr "" #: cgen.c:107 config/tc-alpha.c:2099 config/tc-alpha.c:2123 -#: config/tc-arc.c:3968 config/tc-arc.c:4026 config/tc-d10v.c:550 +#: config/tc-arc.c:3982 config/tc-arc.c:4056 config/tc-d10v.c:550 #: config/tc-d30v.c:537 config/tc-mn10200.c:1098 config/tc-mn10300.c:1752 -#: config/tc-ppc.c:2872 config/tc-ppc.c:3049 config/tc-ppc.c:3314 -#: config/tc-s390.c:1331 config/tc-s390.c:1454 config/tc-s390.c:1587 +#: config/tc-ppc.c:2925 config/tc-ppc.c:3111 config/tc-ppc.c:3376 +#: config/tc-s390.c:1333 config/tc-s390.c:1456 config/tc-s390.c:1589 #: config/tc-v850.c:2538 config/tc-v850.c:2609 config/tc-v850.c:2656 #: config/tc-v850.c:2693 config/tc-v850.c:2730 config/tc-v850.c:2993 msgid "too many fixups" @@ -569,7 +569,7 @@ msgstr "" #: cgen.c:372 cgen.c:392 config/tc-d10v.c:461 config/tc-d30v.c:453 #: config/tc-i370.c:2125 config/tc-mn10200.c:1040 config/tc-mn10300.c:1677 -#: config/tc-ppc.c:2914 config/tc-s390.c:1302 config/tc-v850.c:2647 +#: config/tc-ppc.c:2967 config/tc-s390.c:1304 config/tc-v850.c:2647 #: config/tc-v850.c:2681 config/tc-v850.c:2721 config/tc-v850.c:2966 #: config/tc-z80.c:446 msgid "illegal operand" @@ -578,8 +578,8 @@ msgstr "" #: cgen.c:396 config/tc-avr.c:716 config/tc-d10v.c:463 config/tc-d30v.c:455 #: config/tc-h8300.c:502 config/tc-i370.c:2127 config/tc-mcore.c:661 #: config/tc-microblaze.c:603 config/tc-mmix.c:495 config/tc-mn10200.c:1043 -#: config/tc-mn10300.c:1680 config/tc-msp430.c:417 config/tc-ppc.c:2916 -#: config/tc-s390.c:1320 config/tc-sh.c:1385 config/tc-sh64.c:2214 +#: config/tc-mn10300.c:1680 config/tc-msp430.c:417 config/tc-ppc.c:2969 +#: config/tc-s390.c:1322 config/tc-sh.c:1385 config/tc-sh64.c:2214 #: config/tc-v850.c:2651 config/tc-v850.c:2685 config/tc-v850.c:2725 #: config/tc-v850.c:2969 config/tc-xgate.c:895 config/tc-z80.c:557 #: config/tc-z8k.c:349 @@ -595,22 +595,22 @@ msgid "operand mask overflow" msgstr "" #. We can't actually support subtracting a symbol. -#: cgen.c:851 config/tc-arm.c:1753 config/tc-arm.c:10261 config/tc-arm.c:10313 -#: config/tc-arm.c:10570 config/tc-arm.c:11395 config/tc-arm.c:12531 -#: config/tc-arm.c:12571 config/tc-arm.c:12914 config/tc-arm.c:12955 -#: config/tc-arm.c:17288 config/tc-arm.c:17329 config/tc-avr.c:1339 +#: cgen.c:851 config/tc-arm.c:1753 config/tc-arm.c:10265 config/tc-arm.c:10317 +#: config/tc-arm.c:10574 config/tc-arm.c:11399 config/tc-arm.c:12535 +#: config/tc-arm.c:12575 config/tc-arm.c:12918 config/tc-arm.c:12959 +#: config/tc-arm.c:17292 config/tc-arm.c:17333 config/tc-avr.c:1339 #: config/tc-avr.c:1351 config/tc-avr.c:1615 config/tc-cris.c:4067 -#: config/tc-d10v.c:1507 config/tc-d30v.c:1912 config/tc-mips.c:9256 -#: config/tc-mips.c:10561 config/tc-mips.c:11817 config/tc-mips.c:12476 -#: config/tc-nds32.c:6587 config/tc-ppc.c:6511 config/tc-spu.c:957 -#: config/tc-spu.c:981 config/tc-tilegx.c:1485 config/tc-tilepro.c:1346 -#: config/tc-v850.c:3452 config/tc-vax.c:282 config/tc-xstormy16.c:482 -#: config/tc-xtensa.c:5932 config/tc-xtensa.c:12955 +#: config/tc-d10v.c:1507 config/tc-d30v.c:1912 config/tc-mips.c:9265 +#: config/tc-mips.c:10570 config/tc-mips.c:11826 config/tc-mips.c:12485 +#: config/tc-nds32.c:6587 config/tc-pru.c:746 config/tc-pru.c:756 +#: config/tc-spu.c:957 config/tc-spu.c:981 config/tc-tilegx.c:1485 +#: config/tc-tilepro.c:1346 config/tc-v850.c:3452 config/tc-vax.c:282 +#: config/tc-xstormy16.c:482 config/tc-xtensa.c:5932 config/tc-xtensa.c:12967 msgid "expression too complex" msgstr "" -#: cgen.c:950 config/tc-ppc.c:6852 config/tc-ppc.c:7080 config/tc-s390.c:2364 -#: config/tc-v850.c:3504 config/tc-xstormy16.c:539 +#: cgen.c:950 config/tc-ppc.c:6955 config/tc-s390.c:2366 config/tc-v850.c:3504 +#: config/tc-xstormy16.c:539 msgid "unresolved expression that must be resolved" msgstr "" @@ -619,7 +619,7 @@ msgstr "" msgid "internal error: can't install fix for reloc type %d (`%s')" msgstr "" -#: cgen.c:1026 config/tc-nios2.c:1360 +#: cgen.c:1026 config/tc-nios2.c:1360 config/tc-pru.c:787 msgid "relocation is not supported" msgstr "" @@ -719,12 +719,12 @@ msgstr "" msgid "Symbol `%s' can not be both weak and common" msgstr "" -#: config/obj-coff.c:135 dw2gencfi.c:333 +#: config/obj-coff.c:135 dw2gencfi.c:334 #, c-format msgid "Inserting \"%s\" into structure table failed: %s" msgstr "" -#: config/obj-coff.c:214 config/obj-coff.c:1681 config/tc-ppc.c:5513 +#: config/obj-coff.c:214 config/obj-coff.c:1681 config/tc-ppc.c:5575 #: config/tc-tic54x.c:3980 read.c:2959 #, c-format msgid "error setting flags for \"%s\": %s" @@ -739,7 +739,7 @@ msgstr "" msgid ".ln pseudo-op inside .def/.endef: ignored." msgstr "" -#: config/obj-coff.c:509 ecoff.c:3237 +#: config/obj-coff.c:509 ecoff.c:3245 msgid ".loc outside of .text" msgstr "" @@ -774,15 +774,15 @@ msgid "badly formed .dim directive ignored" msgstr "" #: config/obj-coff.c:932 -msgid ".size pseudo-op used outside of .def/.endef ignored." +msgid ".size pseudo-op used outside of .def/.endef: ignored." msgstr "" #: config/obj-coff.c:947 -msgid ".scl pseudo-op used outside of .def/.endef ignored." +msgid ".scl pseudo-op used outside of .def/.endef: ignored." msgstr "" #: config/obj-coff.c:964 -msgid ".tag pseudo-op used outside of .def/.endef ignored." +msgid ".tag pseudo-op used outside of .def/.endef: ignored." msgstr "" #: config/obj-coff.c:981 @@ -791,11 +791,11 @@ msgid "tag not found for .tag %s" msgstr "" #: config/obj-coff.c:994 -msgid ".type pseudo-op used outside of .def/.endef ignored." +msgid ".type pseudo-op used outside of .def/.endef: ignored." msgstr "" #: config/obj-coff.c:1013 -msgid ".val pseudo-op used outside of .def/.endef ignored." +msgid ".val pseudo-op used outside of .def/.endef: ignored." msgstr "" #: config/obj-coff.c:1160 @@ -824,7 +824,7 @@ msgstr "" msgid "unsupported section attribute '%c'" msgstr "" -#: config/obj-coff.c:1650 config/tc-ppc.c:5495 +#: config/obj-coff.c:1650 config/tc-ppc.c:5557 #, c-format msgid "unknown section attribute '%c'" msgstr "" @@ -847,211 +847,211 @@ msgstr "" msgid "Can't set register masks" msgstr "" -#: config/obj-elf.c:343 config/tc-sparc.c:4422 config/tc-v850.c:511 +#: config/obj-elf.c:348 config/tc-sparc.c:4461 config/tc-v850.c:511 #, c-format msgid "bad .common segment %s" msgstr "" -#: config/obj-elf.c:419 +#: config/obj-elf.c:424 msgid "Missing symbol name in directive" msgstr "" -#: config/obj-elf.c:627 +#: config/obj-elf.c:632 #, c-format msgid "setting incorrect section type for %s" msgstr "" -#: config/obj-elf.c:632 +#: config/obj-elf.c:637 #, c-format msgid "ignoring incorrect section type for %s" msgstr "" -#: config/obj-elf.c:683 +#: config/obj-elf.c:688 #, c-format msgid "setting incorrect section attributes for %s" msgstr "" -#: config/obj-elf.c:739 +#: config/obj-elf.c:744 #, c-format msgid "ignoring changed section type for %s" msgstr "" -#: config/obj-elf.c:751 +#: config/obj-elf.c:756 #, c-format msgid "ignoring changed section attributes for %s" msgstr "" -#: config/obj-elf.c:758 +#: config/obj-elf.c:763 #, c-format msgid "ignoring changed section entity size for %s" msgstr "" -#: config/obj-elf.c:819 +#: config/obj-elf.c:824 msgid "unrecognized .section attribute: want a,e,w,x,M,S,G,T or number" msgstr "" -#: config/obj-elf.c:879 +#: config/obj-elf.c:884 msgid "extraneous characters at end of numeric section type" msgstr "" -#: config/obj-elf.c:885 read.c:2943 +#: config/obj-elf.c:890 read.c:2943 msgid "unrecognized section type" msgstr "" -#: config/obj-elf.c:917 +#: config/obj-elf.c:922 msgid "unrecognized section attribute" msgstr "" -#: config/obj-elf.c:948 config/tc-alpha.c:4208 +#: config/obj-elf.c:953 config/tc-alpha.c:4208 msgid "missing name" msgstr "" -#: config/obj-elf.c:1107 +#: config/obj-elf.c:1112 msgid "invalid merge entity size" msgstr "" -#: config/obj-elf.c:1114 +#: config/obj-elf.c:1119 msgid "entity size for SHF_MERGE not specified" msgstr "" -#: config/obj-elf.c:1120 +#: config/obj-elf.c:1125 msgid "? section flag ignored with G present" msgstr "" -#: config/obj-elf.c:1144 +#: config/obj-elf.c:1149 msgid "group name for SHF_GROUP not specified" msgstr "" -#: config/obj-elf.c:1167 +#: config/obj-elf.c:1172 msgid "character following name is not '#'" msgstr "" -#: config/obj-elf.c:1286 +#: config/obj-elf.c:1291 msgid ".previous without corresponding .section; ignored" msgstr "" -#: config/obj-elf.c:1312 +#: config/obj-elf.c:1317 msgid ".popsection without corresponding .pushsection; ignored" msgstr "" -#: config/obj-elf.c:1358 +#: config/obj-elf.c:1363 msgid "expected comma after name in .symver" msgstr "" -#: config/obj-elf.c:1381 +#: config/obj-elf.c:1386 #, c-format msgid "missing version name in `%s' for symbol `%s'" msgstr "" -#: config/obj-elf.c:1392 +#: config/obj-elf.c:1397 #, c-format msgid "multiple versions [`%s'|`%s'] for symbol `%s'" msgstr "" -#: config/obj-elf.c:1428 +#: config/obj-elf.c:1433 #, c-format msgid "expected `%s' to have already been set for .vtable_inherit" msgstr "" -#: config/obj-elf.c:1438 +#: config/obj-elf.c:1443 msgid "expected comma after name in .vtable_inherit" msgstr "" -#: config/obj-elf.c:1490 +#: config/obj-elf.c:1495 msgid "expected comma after name in .vtable_entry" msgstr "" -#: config/obj-elf.c:1620 +#: config/obj-elf.c:1625 #, c-format msgid "Attribute name not recognised: %s" msgstr "" -#: config/obj-elf.c:1637 +#: config/obj-elf.c:1642 msgid "expected numeric constant" msgstr "" -#: config/obj-elf.c:1646 config/tc-arm.c:6441 +#: config/obj-elf.c:1651 config/tc-arm.c:6445 msgid "expected comma" msgstr "" -#: config/obj-elf.c:1679 +#: config/obj-elf.c:1684 msgid "bad string constant" msgstr "" -#: config/obj-elf.c:1683 +#: config/obj-elf.c:1688 msgid "expected <tag> , <value>" msgstr "" -#: config/obj-elf.c:1802 +#: config/obj-elf.c:1807 msgid "expected quoted string" msgstr "" -#: config/obj-elf.c:1822 +#: config/obj-elf.c:1827 #, c-format msgid "expected comma after name `%s' in .size directive" msgstr "" -#: config/obj-elf.c:1831 +#: config/obj-elf.c:1836 msgid "missing expression in .size directive" msgstr "" -#: config/obj-elf.c:1954 +#: config/obj-elf.c:1959 #, c-format msgid "symbol '%s' is already defined" msgstr "" -#: config/obj-elf.c:1975 +#: config/obj-elf.c:1980 #, c-format msgid "symbol type \"%s\" is supported only by GNU and FreeBSD targets" msgstr "" -#: config/obj-elf.c:1987 +#: config/obj-elf.c:1992 #, c-format msgid "symbol type \"%s\" is supported only by GNU targets" msgstr "" -#: config/obj-elf.c:1998 +#: config/obj-elf.c:2003 #, c-format msgid "unrecognized symbol type \"%s\"" msgstr "" -#: config/obj-elf.c:2165 config/obj-elf.c:2168 +#: config/obj-elf.c:2170 config/obj-elf.c:2173 #, c-format msgid ".size expression for %s does not evaluate to a constant" msgstr "" -#: config/obj-elf.c:2202 +#: config/obj-elf.c:2207 #, c-format msgid "" "invalid attempt to declare external version name as default in symbol `%s'" msgstr "" -#: config/obj-elf.c:2264 ecoff.c:3592 +#: config/obj-elf.c:2269 ecoff.c:3600 #, c-format msgid "symbol `%s' can not be both weak and common" msgstr "" -#: config/obj-elf.c:2379 +#: config/obj-elf.c:2384 #, c-format msgid "assuming all members of group `%s' are COMDAT" msgstr "" -#: config/obj-elf.c:2391 +#: config/obj-elf.c:2396 #, c-format msgid "can't create group: %s" msgstr "" -#: config/obj-elf.c:2529 +#: config/obj-elf.c:2534 #, c-format msgid "failed to set up debugging information: %s" msgstr "" -#: config/obj-elf.c:2549 +#: config/obj-elf.c:2554 #, c-format msgid "can't start writing .mdebug section: %s" msgstr "" -#: config/obj-elf.c:2557 +#: config/obj-elf.c:2562 #, c-format msgid "could not write .mdebug section: %s" msgstr "" @@ -1074,7 +1074,7 @@ msgstr "" #: config/obj-macho.c:195 #, c-format -msgid "cannot overide zerofill section type for `%s,%s'" +msgid "cannot override zerofill section type for `%s,%s'" msgstr "" #: config/obj-macho.c:249 @@ -1101,7 +1101,7 @@ msgid "missing sizeof_stub expression" msgstr "" #: config/obj-macho.c:476 config/tc-ia64.c:1083 config/tc-ia64.c:11770 -#: config/tc-score.c:6103 read.c:1714 +#: config/tc-score.c:6103 expr.c:1172 expr.c:1325 read.c:1714 msgid "expected symbol name" msgstr "" @@ -1118,7 +1118,7 @@ msgstr "" msgid "size (%ld) out of range, ignored" msgstr "" -#: config/obj-macho.c:514 config/tc-score.c:6264 ecoff.c:3351 read.c:1770 +#: config/obj-macho.c:514 config/tc-score.c:6264 ecoff.c:3359 read.c:1770 #: read.c:1875 read.c:2626 read.c:3257 read.c:3636 symbols.c:339 symbols.c:435 #, c-format msgid "symbol `%s' is already defined" @@ -1359,12 +1359,12 @@ msgid "invalid register type %d" msgstr "" #: config/tc-aarch64.c:586 config/tc-aarch64.c:588 config/tc-arm.c:1048 -#: config/tc-score.c:6514 expr.c:1363 read.c:2608 +#: config/tc-score.c:6514 expr.c:1385 read.c:2608 msgid "bad expression" msgstr "" #: config/tc-aarch64.c:598 config/tc-arm.c:1059 config/tc-i860.c:1003 -#: config/tc-sparc.c:3327 +#: config/tc-sparc.c:3366 msgid "bad segment" msgstr "" @@ -1496,8 +1496,8 @@ msgstr "" msgid "literal pool overflow" msgstr "" -#: config/tc-aarch64.c:1902 config/tc-aarch64.c:5887 config/tc-arm.c:3531 -#: config/tc-arm.c:6949 +#: config/tc-aarch64.c:1902 config/tc-aarch64.c:5892 config/tc-arm.c:3531 +#: config/tc-arm.c:6953 msgid "unrecognized relocation suffix" msgstr "" @@ -1513,11 +1513,11 @@ msgstr "" msgid "missing immediate expression" msgstr "" -#: config/tc-aarch64.c:2343 config/tc-aarch64.c:5711 config/tc-aarch64.c:5731 +#: config/tc-aarch64.c:2343 config/tc-aarch64.c:5716 config/tc-aarch64.c:5736 msgid "invalid floating-point constant" msgstr "" -#: config/tc-aarch64.c:2973 config/tc-arm.c:5107 config/tc-arm.c:5116 +#: config/tc-aarch64.c:2973 config/tc-arm.c:5111 config/tc-arm.c:5120 msgid "shift expression expected" msgstr "" @@ -1620,7 +1620,7 @@ msgstr "" msgid "invalid expression in the address" msgstr "" -#: config/tc-aarch64.c:3566 config/tc-arm.c:5642 config/tc-arm.c:6219 +#: config/tc-aarch64.c:3566 config/tc-arm.c:5646 config/tc-arm.c:6223 msgid "']' expected" msgstr "" @@ -1628,7 +1628,7 @@ msgstr "" msgid "register offset not allowed in pre-indexed addressing mode" msgstr "" -#: config/tc-aarch64.c:3589 config/tc-arm.c:5678 +#: config/tc-aarch64.c:3589 config/tc-arm.c:5682 msgid "cannot combine pre- and post-indexing" msgstr "" @@ -1715,7 +1715,7 @@ msgstr "" msgid "%s out of range %d to %d at operand %d -- `%s'" msgstr "" -#: config/tc-aarch64.c:4652 config/tc-aarch64.c:4656 config/tc-aarch64.c:6416 +#: config/tc-aarch64.c:4652 config/tc-aarch64.c:4656 config/tc-aarch64.c:6422 msgid "immediate value" msgstr "" @@ -1763,328 +1763,328 @@ msgstr "" msgid "the top half of a 128-bit FP/SIMD register is expected" msgstr "" -#: config/tc-aarch64.c:5490 config/tc-arm.c:1883 config/tc-arm.c:1928 +#: config/tc-aarch64.c:5493 config/tc-arm.c:1883 config/tc-arm.c:1928 #: config/tc-h8300.c:1048 msgid "invalid register list" msgstr "" -#: config/tc-aarch64.c:5510 +#: config/tc-aarch64.c:5513 msgid "missing type suffix" msgstr "" -#: config/tc-aarch64.c:5529 +#: config/tc-aarch64.c:5532 msgid "C0 - C15 expected" msgstr "" -#: config/tc-aarch64.c:5626 config/tc-aarch64.c:5650 +#: config/tc-aarch64.c:5631 config/tc-aarch64.c:5655 msgid "immediate zero expected" msgstr "" -#: config/tc-aarch64.c:5746 +#: config/tc-aarch64.c:5751 msgid "shift not allowed for bitmask immediate" msgstr "" -#: config/tc-aarch64.c:5800 +#: config/tc-aarch64.c:5805 msgid "can't mix relocation modifier with explicit shift" msgstr "" -#: config/tc-aarch64.c:5848 +#: config/tc-aarch64.c:5853 msgid "invalid condition" msgstr "" -#: config/tc-aarch64.c:5874 +#: config/tc-aarch64.c:5879 msgid "invalid pc-relative address" msgstr "" #. Only permit "=value" in the literal load instructions. #. The literal will be generated by programmer_friendly_fixup. -#: config/tc-aarch64.c:5882 +#: config/tc-aarch64.c:5887 msgid "invalid use of \"=immediate\"" msgstr "" -#: config/tc-aarch64.c:5947 config/tc-aarch64.c:5979 config/tc-aarch64.c:5997 -#: config/tc-aarch64.c:6019 config/tc-aarch64.c:6038 config/tc-aarch64.c:6057 -#: config/tc-aarch64.c:6076 config/tc-aarch64.c:6110 config/tc-aarch64.c:6117 -#: config/tc-aarch64.c:6146 config/tc-aarch64.c:6171 config/tc-aarch64.c:6187 -#: config/tc-aarch64.c:6211 +#: config/tc-aarch64.c:5952 config/tc-aarch64.c:5984 config/tc-aarch64.c:6002 +#: config/tc-aarch64.c:6024 config/tc-aarch64.c:6043 config/tc-aarch64.c:6062 +#: config/tc-aarch64.c:6081 config/tc-aarch64.c:6116 config/tc-aarch64.c:6123 +#: config/tc-aarch64.c:6152 config/tc-aarch64.c:6177 config/tc-aarch64.c:6193 +#: config/tc-aarch64.c:6217 msgid "invalid addressing mode" msgstr "" -#: config/tc-aarch64.c:5963 +#: config/tc-aarch64.c:5968 msgid "the optional immediate offset can only be 0" msgstr "" -#: config/tc-aarch64.c:6002 config/tc-aarch64.c:6024 config/tc-aarch64.c:6043 +#: config/tc-aarch64.c:6007 config/tc-aarch64.c:6029 config/tc-aarch64.c:6048 msgid "relocation not allowed" msgstr "" -#: config/tc-aarch64.c:6086 +#: config/tc-aarch64.c:6091 msgid "writeback value must be an immediate constant" msgstr "" #. Make sure this has priority over #. "invalid addressing mode". -#: config/tc-aarch64.c:6125 +#: config/tc-aarch64.c:6131 msgid "constant offset required" msgstr "" -#: config/tc-aarch64.c:6221 +#: config/tc-aarch64.c:6227 msgid "unknown or missing system register name" msgstr "" -#: config/tc-aarch64.c:6231 +#: config/tc-aarch64.c:6237 msgid "unknown or missing PSTATE field name" msgstr "" -#: config/tc-aarch64.c:6255 +#: config/tc-aarch64.c:6261 msgid "unknown or missing operation name" msgstr "" -#: config/tc-aarch64.c:6268 +#: config/tc-aarch64.c:6274 msgid "the specified option is not accepted in ISB" msgstr "" -#: config/tc-aarch64.c:6294 config/tc-aarch64.c:7416 config/tc-arm.c:7164 +#: config/tc-aarch64.c:6300 config/tc-aarch64.c:7422 config/tc-arm.c:7168 #, c-format msgid "unhandled operand code %d" msgstr "" -#: config/tc-aarch64.c:6336 +#: config/tc-aarch64.c:6342 msgid "unexpected comma before the omitted optional operand" msgstr "" -#: config/tc-aarch64.c:6364 +#: config/tc-aarch64.c:6370 msgid "unexpected characters following instruction" msgstr "" -#: config/tc-aarch64.c:6442 config/tc-arm.c:5218 config/tc-arm.c:5777 -#: config/tc-arm.c:7911 +#: config/tc-aarch64.c:6448 config/tc-arm.c:5222 config/tc-arm.c:5781 +#: config/tc-arm.c:7915 msgid "constant expression expected" msgstr "" -#: config/tc-aarch64.c:6449 +#: config/tc-aarch64.c:6455 msgid "literal pool insertion failed" msgstr "" -#: config/tc-aarch64.c:6518 config/tc-aarch64.c:6530 +#: config/tc-aarch64.c:6524 config/tc-aarch64.c:6536 #, c-format msgid "unpredictable transfer with writeback -- `%s'" msgstr "" -#: config/tc-aarch64.c:6534 +#: config/tc-aarch64.c:6540 #, c-format msgid "unpredictable load of register pair -- `%s'" msgstr "" -#: config/tc-aarch64.c:6611 +#: config/tc-aarch64.c:6617 #, c-format msgid "unknown mnemonic `%s' -- `%s'" msgstr "" -#: config/tc-aarch64.c:6619 +#: config/tc-aarch64.c:6625 #, c-format msgid "unexpected comma after the mnemonic name `%s' -- `%s'" msgstr "" -#: config/tc-aarch64.c:6677 +#: config/tc-aarch64.c:6683 #, c-format msgid "selected processor does not support `%s'" msgstr "" -#: config/tc-aarch64.c:7079 config/tc-arm.c:22521 +#: config/tc-aarch64.c:7085 config/tc-arm.c:22525 msgid "GOT already in the symbol table" msgstr "" -#: config/tc-aarch64.c:7241 +#: config/tc-aarch64.c:7247 msgid "immediate cannot be moved by a single instruction" msgstr "" -#: config/tc-aarch64.c:7284 config/tc-aarch64.c:7329 config/tc-aarch64.c:7355 -#: config/tc-arm.c:15313 config/tc-arm.c:15340 config/tc-arm.c:15982 -#: config/tc-arm.c:16469 config/tc-arm.c:17291 config/tc-arm.c:17331 +#: config/tc-aarch64.c:7290 config/tc-aarch64.c:7335 config/tc-aarch64.c:7361 +#: config/tc-arm.c:15317 config/tc-arm.c:15344 config/tc-arm.c:15986 +#: config/tc-arm.c:16473 config/tc-arm.c:17295 config/tc-arm.c:17335 #: config/tc-metag.c:2444 config/tc-metag.c:2453 config/tc-metag.c:2492 #: config/tc-metag.c:2501 config/tc-metag.c:3021 config/tc-metag.c:3030 msgid "immediate out of range" msgstr "" -#: config/tc-aarch64.c:7348 config/tc-metag.c:4656 config/tc-xtensa.c:4184 +#: config/tc-aarch64.c:7354 config/tc-metag.c:4656 config/tc-xtensa.c:4184 msgid "invalid immediate" msgstr "" -#: config/tc-aarch64.c:7411 config/tc-tic6x.c:3861 config/tc-tic6x.c:3926 +#: config/tc-aarch64.c:7417 config/tc-tic6x.c:3861 config/tc-tic6x.c:3926 #: config/tc-tic6x.c:3953 config/tc-tic6x.c:3981 msgid "immediate offset out of range" msgstr "" -#: config/tc-aarch64.c:7485 config/tc-arm.c:22859 config/tc-arm.c:22927 -#: config/tc-arm.c:23209 +#: config/tc-aarch64.c:7491 config/tc-arm.c:22863 config/tc-arm.c:22931 +#: config/tc-arm.c:23213 #, c-format msgid "undefined symbol %s used as an immediate value" msgstr "" -#: config/tc-aarch64.c:7497 +#: config/tc-aarch64.c:7503 msgid "pc-relative load offset not word aligned" msgstr "" -#: config/tc-aarch64.c:7500 +#: config/tc-aarch64.c:7506 msgid "pc-relative load offset out of range" msgstr "" -#: config/tc-aarch64.c:7512 +#: config/tc-aarch64.c:7518 msgid "pc-relative address offset out of range" msgstr "" -#: config/tc-aarch64.c:7524 config/tc-aarch64.c:7539 +#: config/tc-aarch64.c:7530 config/tc-aarch64.c:7545 msgid "conditional branch target not word aligned" msgstr "" -#: config/tc-aarch64.c:7527 config/tc-aarch64.c:7542 config/tc-arm.c:23500 +#: config/tc-aarch64.c:7533 config/tc-aarch64.c:7548 config/tc-arm.c:23504 msgid "conditional branch out of range" msgstr "" -#: config/tc-aarch64.c:7555 +#: config/tc-aarch64.c:7561 msgid "branch target not word aligned" msgstr "" -#: config/tc-aarch64.c:7558 config/tc-arm.c:810 config/tc-mips.c:15482 -#: config/tc-mips.c:15498 config/tc-mips.c:15588 +#: config/tc-aarch64.c:7564 config/tc-arm.c:810 config/tc-mips.c:15507 +#: config/tc-mips.c:15523 config/tc-mips.c:15613 msgid "branch out of range" msgstr "" -#: config/tc-aarch64.c:7610 config/tc-arm.c:23100 config/tc-arm.c:23115 -#: config/tc-arm.c:23130 config/tc-arm.c:23141 config/tc-arm.c:23164 -#: config/tc-arm.c:23962 config/tc-moxie.c:716 config/tc-pj.c:452 +#: config/tc-aarch64.c:7616 config/tc-arm.c:23104 config/tc-arm.c:23119 +#: config/tc-arm.c:23134 config/tc-arm.c:23145 config/tc-arm.c:23168 +#: config/tc-arm.c:23966 config/tc-moxie.c:716 config/tc-pj.c:452 #: config/tc-sh.c:4293 msgid "offset out of range" msgstr "" -#: config/tc-aarch64.c:7625 +#: config/tc-aarch64.c:7631 msgid "unsigned value out of range" msgstr "" -#: config/tc-aarch64.c:7633 +#: config/tc-aarch64.c:7639 msgid "signed value out of range" msgstr "" -#: config/tc-aarch64.c:7775 +#: config/tc-aarch64.c:7781 #, c-format msgid "unexpected %s fixup" msgstr "" -#: config/tc-aarch64.c:7841 config/tc-arm.c:24471 config/tc-arm.c:24492 -#: config/tc-mips.c:17772 config/tc-or1k.c:348 config/tc-score.c:7480 +#: config/tc-aarch64.c:7847 config/tc-arm.c:24475 config/tc-arm.c:24496 +#: config/tc-mips.c:17796 config/tc-or1k.c:348 config/tc-score.c:7480 #, c-format msgid "cannot represent %s relocation in this object file format" msgstr "" -#: config/tc-aarch64.c:7874 +#: config/tc-aarch64.c:7880 #, c-format msgid "cannot do %u-byte relocation" msgstr "" -#: config/tc-aarch64.c:8169 config/tc-arm.c:24952 config/tc-score.c:6297 +#: config/tc-aarch64.c:8175 config/tc-arm.c:24956 config/tc-score.c:6297 #: config/tc-score.c:6527 config/tc-score.c:6532 msgid "virtual memory exhausted" msgstr "" -#: config/tc-aarch64.c:8327 config/tc-arm.c:25281 +#: config/tc-aarch64.c:8333 config/tc-arm.c:25285 msgid "assemble for big-endian" msgstr "" -#: config/tc-aarch64.c:8328 config/tc-arm.c:25282 +#: config/tc-aarch64.c:8334 config/tc-arm.c:25286 msgid "assemble for little-endian" msgstr "" -#: config/tc-aarch64.c:8331 +#: config/tc-aarch64.c:8337 msgid "temporary switch for dumping" msgstr "" -#: config/tc-aarch64.c:8333 +#: config/tc-aarch64.c:8339 msgid "output verbose error messages" msgstr "" -#: config/tc-aarch64.c:8335 +#: config/tc-aarch64.c:8341 msgid "do not output verbose error messages" msgstr "" -#: config/tc-aarch64.c:8509 config/tc-arm.c:25873 +#: config/tc-aarch64.c:8521 config/tc-arm.c:25878 msgid "invalid architectural extension" msgstr "" -#: config/tc-aarch64.c:8534 config/tc-arm.c:25905 +#: config/tc-aarch64.c:8546 config/tc-arm.c:25910 msgid "must specify extensions to add before specifying those to remove" msgstr "" -#: config/tc-aarch64.c:8542 config/tc-arm.c:25913 +#: config/tc-aarch64.c:8554 config/tc-arm.c:25918 msgid "missing architectural extension" msgstr "" -#: config/tc-aarch64.c:8569 config/tc-arm.c:25960 +#: config/tc-aarch64.c:8581 config/tc-arm.c:25965 #, c-format msgid "unknown architectural extension `%s'" msgstr "" -#: config/tc-aarch64.c:8593 config/tc-arm.c:25994 config/tc-metag.c:5834 +#: config/tc-aarch64.c:8605 config/tc-arm.c:25999 config/tc-metag.c:5834 #, c-format msgid "missing cpu name `%s'" msgstr "" -#: config/tc-aarch64.c:8607 config/tc-aarch64.c:8824 config/tc-arm.c:26026 -#: config/tc-arm.c:26637 config/tc-metag.c:5845 +#: config/tc-aarch64.c:8619 config/tc-aarch64.c:8836 config/tc-arm.c:26031 +#: config/tc-arm.c:26642 config/tc-metag.c:5845 #, c-format msgid "unknown cpu `%s'" msgstr "" -#: config/tc-aarch64.c:8625 config/tc-arm.c:26044 +#: config/tc-aarch64.c:8637 config/tc-arm.c:26049 #, c-format msgid "missing architecture name `%s'" msgstr "" -#: config/tc-aarch64.c:8639 config/tc-aarch64.c:8871 config/tc-arm.c:26061 -#: config/tc-arm.c:26671 config/tc-arm.c:26702 config/tc-score.c:7715 +#: config/tc-aarch64.c:8651 config/tc-aarch64.c:8883 config/tc-arm.c:26066 +#: config/tc-arm.c:26676 config/tc-arm.c:26707 config/tc-score.c:7715 #, c-format msgid "unknown architecture `%s'\n" msgstr "" -#: config/tc-aarch64.c:8662 +#: config/tc-aarch64.c:8674 #, c-format msgid "missing abi name `%s'" msgstr "" -#: config/tc-aarch64.c:8673 +#: config/tc-aarch64.c:8685 #, c-format msgid "unknown abi `%s'\n" msgstr "" -#: config/tc-aarch64.c:8679 +#: config/tc-aarch64.c:8691 msgid "<abi name>\t specify for ABI <abi name>" msgstr "" -#: config/tc-aarch64.c:8682 config/tc-arm.c:26148 config/tc-metag.c:5911 +#: config/tc-aarch64.c:8694 config/tc-arm.c:26153 config/tc-metag.c:5911 msgid "<cpu name>\t assemble for CPU <cpu name>" msgstr "" -#: config/tc-aarch64.c:8684 config/tc-arm.c:26150 +#: config/tc-aarch64.c:8696 config/tc-arm.c:26155 msgid "<arch name>\t assemble for architecture <arch name>" msgstr "" -#: config/tc-aarch64.c:8723 config/tc-aarch64.c:8743 config/tc-arm.c:26206 -#: config/tc-arm.c:26224 config/tc-arm.c:26244 config/tc-metag.c:5936 +#: config/tc-aarch64.c:8735 config/tc-aarch64.c:8755 config/tc-arm.c:26211 +#: config/tc-arm.c:26229 config/tc-arm.c:26249 config/tc-metag.c:5936 #, c-format msgid "option `-%c%s' is deprecated: %s" msgstr "" -#: config/tc-aarch64.c:8763 +#: config/tc-aarch64.c:8775 #, c-format msgid " AArch64-specific assembler options:\n" msgstr "" -#: config/tc-aarch64.c:8774 config/tc-arc.c:3499 config/tc-arm.c:26275 +#: config/tc-aarch64.c:8786 config/tc-arc.c:3503 config/tc-arm.c:26280 #, c-format msgid " -EB assemble code for a big-endian cpu\n" msgstr "" -#: config/tc-aarch64.c:8779 config/tc-arc.c:3501 config/tc-arm.c:26280 +#: config/tc-aarch64.c:8791 config/tc-arc.c:3505 config/tc-arm.c:26285 #, c-format msgid " -EL assemble code for a little-endian cpu\n" msgstr "" @@ -2159,7 +2159,7 @@ msgid "opcode `%s' not supported for target %s" msgstr "" #: config/tc-alpha.c:1192 config/tc-alpha.c:3366 config/tc-avr.c:1693 -#: config/tc-msp430.c:3914 +#: config/tc-msp430.c:3913 config/tc-wasm32.c:753 #, c-format msgid "unknown opcode `%s'" msgstr "" @@ -2239,8 +2239,8 @@ msgstr "" msgid "sequence number in use for !tlsgd!%ld" msgstr "" -#: config/tc-alpha.c:1996 config/tc-arc.c:2768 config/tc-mn10200.c:854 -#: config/tc-mn10300.c:1150 config/tc-ppc.c:1838 config/tc-s390.c:673 +#: config/tc-alpha.c:1996 config/tc-arc.c:2772 config/tc-mn10200.c:854 +#: config/tc-mn10300.c:1150 config/tc-ppc.c:1891 config/tc-s390.c:675 #: config/tc-tilegx.c:427 config/tc-tilegx.c:477 config/tc-tilepro.c:383 msgid "operand" msgstr "" @@ -2258,22 +2258,22 @@ msgid "can not resolve expression" msgstr "" #: config/tc-alpha.c:3514 config/tc-i370.c:1054 config/tc-microblaze.c:198 -#: config/tc-ppc.c:2160 config/tc-ppc.c:5260 +#: config/tc-ppc.c:2213 config/tc-ppc.c:5322 #, c-format msgid ".COMMon length (%ld.) <0! Ignored." msgstr "" -#: config/tc-alpha.c:3525 config/tc-ia64.c:1094 config/tc-sparc.c:4293 +#: config/tc-alpha.c:3525 config/tc-ia64.c:1094 config/tc-sparc.c:4332 #: config/tc-v850.c:306 msgid "Ignoring attempt to re-define symbol" msgstr "" -#: config/tc-alpha.c:3617 config/tc-sparc.c:4301 +#: config/tc-alpha.c:3617 config/tc-sparc.c:4340 #, c-format msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld." msgstr "" -#: config/tc-alpha.c:3724 ecoff.c:3052 +#: config/tc-alpha.c:3724 msgid ".ent directive has no name" msgstr "" @@ -2281,7 +2281,7 @@ msgstr "" msgid "nested .ent directives" msgstr "" -#: config/tc-alpha.c:3776 ecoff.c:3004 +#: config/tc-alpha.c:3776 ecoff.c:3008 msgid ".end directive has no name" msgstr "" @@ -2293,28 +2293,28 @@ msgstr "" msgid ".end directive names different symbol than .ent" msgstr "" -#: config/tc-alpha.c:3829 ecoff.c:3137 +#: config/tc-alpha.c:3829 ecoff.c:3145 msgid ".fmask outside of .ent" msgstr "" -#: config/tc-alpha.c:3831 config/tc-score.c:5598 ecoff.c:3201 +#: config/tc-alpha.c:3831 config/tc-score.c:5598 ecoff.c:3209 msgid ".mask outside of .ent" msgstr "" -#: config/tc-alpha.c:3839 ecoff.c:3144 +#: config/tc-alpha.c:3839 ecoff.c:3152 msgid "bad .fmask directive" msgstr "" -#: config/tc-alpha.c:3841 ecoff.c:3208 +#: config/tc-alpha.c:3841 ecoff.c:3216 msgid "bad .mask directive" msgstr "" -#: config/tc-alpha.c:3874 config/tc-mips.c:19157 config/tc-score.c:5739 -#: ecoff.c:3165 +#: config/tc-alpha.c:3874 config/tc-mips.c:19181 config/tc-score.c:5739 +#: ecoff.c:3173 msgid ".frame outside of .ent" msgstr "" -#: config/tc-alpha.c:3885 config/tc-mips.c:19168 ecoff.c:3176 +#: config/tc-alpha.c:3885 config/tc-mips.c:19192 ecoff.c:3184 msgid "bad .frame directive" msgstr "" @@ -2451,7 +2451,7 @@ msgid "Alignment too large: %d. assumed" msgstr "" #: config/tc-alpha.c:5042 config/tc-d30v.c:2057 config/tc-nios2.c:355 -#: config/tc-nios2.c:480 +#: config/tc-nios2.c:480 config/tc-pru.c:220 config/tc-pru.c:335 msgid "Alignment negative: 0 assumed" msgstr "" @@ -2479,8 +2479,8 @@ msgstr "" msgid "internal error: can't hash macro `%s': %s" msgstr "" -#: config/tc-alpha.c:5551 config/tc-arc.c:2421 config/tc-arc.c:2435 -#: config/tc-arm.c:7235 config/tc-arm.c:7247 config/tc-i960.c:706 +#: config/tc-alpha.c:5551 config/tc-arc.c:2425 config/tc-arc.c:2439 +#: config/tc-arm.c:7239 config/tc-arm.c:7251 config/tc-i960.c:706 #: config/tc-xtensa.c:5415 config/tc-xtensa.c:5491 config/tc-xtensa.c:5608 #: config/tc-z80.c:1935 msgid "syntax error" @@ -2506,12 +2506,12 @@ msgid "" "-replace/-noreplace\tenable or disable the optimization of procedure calls\n" msgstr "" -#: config/tc-alpha.c:5942 config/tc-arc.c:3046 +#: config/tc-alpha.c:5942 config/tc-arc.c:3050 #, c-format msgid "unhandled relocation type %s" msgstr "" -#: config/tc-alpha.c:5955 config/tc-arc.c:3054 +#: config/tc-alpha.c:5955 config/tc-arc.c:3058 msgid "non-absolute expression in constant field" msgstr "" @@ -2529,13 +2529,13 @@ msgstr "" msgid "!samegp reloc against symbol without .prologue: %s" msgstr "" -#: config/tc-alpha.c:6236 config/tc-arc.c:3177 config/tc-tilegx.c:1751 -#: config/tc-tilepro.c:1531 config/tc-xtensa.c:6101 +#: config/tc-alpha.c:6236 config/tc-arc.c:3181 config/tc-tilegx.c:1751 +#: config/tc-tilepro.c:1531 config/tc-wasm32.c:813 config/tc-xtensa.c:6101 #, c-format msgid "cannot represent `%s' relocation in object file" msgstr "" -#: config/tc-alpha.c:6242 config/tc-arc.c:3183 +#: config/tc-alpha.c:6242 config/tc-arc.c:3187 #, c-format msgid "internal error? cannot generate `%s' relocation" msgstr "" @@ -2550,8 +2550,8 @@ msgstr "" msgid "internal error: can't hash opcode '%s': %s" msgstr "" -#: config/tc-arc.c:789 config/tc-arc.c:2518 config/tc-arc.c:2536 -#: config/tc-arc.c:2589 config/tc-arc.c:2613 config/tc-arc.c:4778 +#: config/tc-arc.c:789 config/tc-arc.c:2522 config/tc-arc.c:2540 +#: config/tc-arc.c:2593 config/tc-arc.c:2617 config/tc-arc.c:4813 #: config/tc-cr16.c:800 config/tc-cr16.c:823 config/tc-cris.c:1195 #: config/tc-crx.c:535 config/tc-crx.c:562 config/tc-crx.c:580 #: config/tc-pdp11.c:193 @@ -2576,12 +2576,12 @@ msgstr "" msgid "unknown architecture: %s\n" msgstr "" -#: config/tc-arc.c:1030 config/tc-arc.c:2510 config/tc-h8300.c:81 +#: config/tc-arc.c:1030 config/tc-arc.c:2514 config/tc-h8300.c:81 #: config/tc-h8300.c:90 config/tc-h8300.c:100 config/tc-h8300.c:110 #: config/tc-h8300.c:120 config/tc-h8300.c:131 config/tc-h8300.c:248 #: config/tc-hppa.c:6823 config/tc-hppa.c:6829 config/tc-hppa.c:6835 #: config/tc-hppa.c:6841 config/tc-hppa.c:8230 config/tc-lm32.c:197 -#: config/tc-mips.c:3500 config/tc-mips.c:4009 config/tc-mn10300.c:935 +#: config/tc-mips.c:3511 config/tc-mips.c:4020 config/tc-mn10300.c:935 #: config/tc-mn10300.c:940 config/tc-mn10300.c:2440 config/tc-xc16x.c:79 #: config/tc-xc16x.c:86 config/tc-xc16x.c:93 msgid "could not set architecture and machine" @@ -2619,7 +2619,8 @@ msgstr "" msgid "extra comma" msgstr "" -#: config/tc-arc.c:1333 config/tc-xtensa.c:2047 +#: config/tc-arc.c:1333 config/tc-pru.c:1442 config/tc-pru.c:1707 +#: config/tc-xtensa.c:2047 msgid "missing argument" msgstr "" @@ -2643,61 +2644,61 @@ msgstr "" msgid "Unhandled reloc type" msgstr "" -#: config/tc-arc.c:2389 +#: config/tc-arc.c:2393 #, c-format msgid "%s for instruction '%s'" msgstr "" -#: config/tc-arc.c:2391 +#: config/tc-arc.c:2395 #, c-format msgid "inappropriate arguments for opcode '%s'" msgstr "" -#: config/tc-arc.c:2393 +#: config/tc-arc.c:2397 #, c-format msgid "opcode '%s' not supported for target %s" msgstr "" -#: config/tc-arc.c:2397 config/tc-tic6x.c:3195 +#: config/tc-arc.c:2401 config/tc-tic6x.c:3195 #, c-format msgid "unknown opcode '%s'" msgstr "" -#: config/tc-arc.c:2455 +#: config/tc-arc.c:2459 #, c-format msgid "Inserting \"%s\" into register table failed: %s" msgstr "" -#: config/tc-arc.c:2491 +#: config/tc-arc.c:2495 #, c-format msgid "Inserting \"%s\" into address type table failed: %s" msgstr "" -#: config/tc-arc.c:2606 config/tc-arc.c:4765 +#: config/tc-arc.c:2610 config/tc-arc.c:4800 #, c-format msgid "internal error: can't hash aux register '%s': %s" msgstr "" -#: config/tc-arc.c:2713 +#: config/tc-arc.c:2717 #, c-format msgid "unhandled reloc %s in md_pcrel_from_section" msgstr "" -#: config/tc-arc.c:2778 +#: config/tc-arc.c:2782 msgid "Unaligned operand. Needs to be 32bit aligned" msgstr "" -#: config/tc-arc.c:2783 +#: config/tc-arc.c:2787 msgid "Unaligned operand. Needs to be 16bit aligned" msgstr "" -#: config/tc-arc.c:2860 config/tc-cr16.c:568 config/tc-crx.c:345 +#: config/tc-arc.c:2864 config/tc-cr16.c:568 config/tc-crx.c:345 #: config/tc-mn10200.c:766 write.c:1015 #, c-format msgid "can't resolve `%s' {%s section} - `%s' {%s section}" msgstr "" -#: config/tc-arc.c:2918 +#: config/tc-arc.c:2922 #, c-format msgid "PC relative relocation not allowed for (internal) type %d" msgstr "" @@ -2706,35 +2707,35 @@ msgstr "" #. the insn. #. FIXME! Check for the conditionality of #. the insn. -#: config/tc-arc.c:2962 config/tc-arc.c:3935 +#: config/tc-arc.c:2966 config/tc-arc.c:3949 msgid "TLS_*_S9 relocs are not supported yet" msgstr "" #. 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:2998 +#: config/tc-arc.c:3002 msgid "Unsupported operation on reloc" msgstr "" -#: config/tc-arc.c:3074 config/tc-arc.c:3090 +#: config/tc-arc.c:3078 config/tc-arc.c:3094 msgid "unknown fixup size" msgstr "" -#: config/tc-arc.c:3224 +#: config/tc-arc.c:3228 msgid "no relaxation found for this instruction." msgstr "" -#: config/tc-arc.c:3477 +#: config/tc-arc.c:3481 #, c-format msgid "ARC-specific assembler options:\n" msgstr "" -#: config/tc-arc.c:3503 +#: config/tc-arc.c:3507 #, c-format msgid " -mrelax enable relaxation\n" msgstr "" -#: config/tc-arc.c:3506 +#: config/tc-arc.c:3510 #, c-format msgid "" "The following ARC-specific assembler options are deprecated and are " @@ -2742,7 +2743,7 @@ msgid "" "for compatibility only:\n" msgstr "" -#: config/tc-arc.c:3509 +#: config/tc-arc.c:3513 #, c-format msgid "" " -mEA\n" @@ -2772,128 +2773,128 @@ msgid "" " -mxy\n" msgstr "" -#: config/tc-arc.c:3599 +#: config/tc-arc.c:3603 #, c-format msgid "Unable to find %s relocation for instruction %s" msgstr "" -#: config/tc-arc.c:3895 +#: config/tc-arc.c:3899 #, c-format -msgid "Unable to use @plt relocatio for insn %s" +msgid "Unable to use @plt relocation for insn %s" msgstr "" -#: config/tc-arc.c:3913 +#: config/tc-arc.c:3919 #, c-format msgid "Unable to use @pcl relocation for insn %s" msgstr "" -#: config/tc-arc.c:3961 +#: config/tc-arc.c:3975 #, c-format msgid "invalid relocation %s for field" msgstr "" -#: config/tc-arc.c:4057 +#: config/tc-arc.c:4087 msgid "A jump/branch instruction in delay slot." msgstr "" -#: config/tc-arc.c:4165 config/tc-microblaze.c:2525 config/tc-mn10300.c:1069 +#: config/tc-arc.c:4195 config/tc-microblaze.c:2525 config/tc-mn10300.c:1069 #: config/tc-sh.c:801 config/tc-z80.c:700 read.c:4582 #, c-format msgid "unsupported BFD relocation size %u" msgstr "" -#: config/tc-arc.c:4185 +#: config/tc-arc.c:4215 #, c-format msgid "Jump/Branch instruction detected at the end of the ZOL label @%s" msgstr "" -#: config/tc-arc.c:4192 +#: config/tc-arc.c:4222 #, c-format msgid "Kernel instruction detected at the end of the ZOL label @%s" msgstr "" -#: config/tc-arc.c:4197 +#: config/tc-arc.c:4227 #, c-format msgid "" "A jump instruction with long immediate detected at the end of the ZOL label @" "%s" msgstr "" -#: config/tc-arc.c:4203 +#: config/tc-arc.c:4233 #, c-format msgid "An illegal use of delay slot detected at the end of the ZOL label @%s" msgstr "" -#: config/tc-arc.c:4303 +#: config/tc-arc.c:4338 msgid "expected comma after instruction name" msgstr "" -#: config/tc-arc.c:4315 +#: config/tc-arc.c:4350 msgid "expected comma after major opcode" msgstr "" -#: config/tc-arc.c:4501 +#: config/tc-arc.c:4536 #, c-format msgid "Pseudocode already used %s" msgstr "" -#: config/tc-arc.c:4509 +#: config/tc-arc.c:4544 #, c-format msgid "major opcode not in range [0x%02x - 0x%02x]" msgstr "" -#: config/tc-arc.c:4513 +#: config/tc-arc.c:4548 msgid "minor opcode not in range [0x00 - 0x3f]" msgstr "" -#: config/tc-arc.c:4519 +#: config/tc-arc.c:4554 msgid "Improper use of OP1_IMM_IMPLIED" msgstr "" -#: config/tc-arc.c:4525 +#: config/tc-arc.c:4560 msgid "Improper use of OP1_MUST_BE_IMM" msgstr "" -#: config/tc-arc.c:4537 +#: config/tc-arc.c:4572 msgid "Couldn't generate extension instruction opcodes" msgstr "" -#: config/tc-arc.c:4573 +#: config/tc-arc.c:4608 msgid "expected comma after name" msgstr "" -#: config/tc-arc.c:4584 +#: config/tc-arc.c:4619 #, c-format msgid "%s second argument cannot be a negative number %d" msgstr "" -#: config/tc-arc.c:4599 +#: config/tc-arc.c:4634 msgid "expected comma after register number" msgstr "" -#: config/tc-arc.c:4620 +#: config/tc-arc.c:4655 msgid "invalid mode" msgstr "" -#: config/tc-arc.c:4638 +#: config/tc-arc.c:4673 msgid "expected comma after register mode" msgstr "" -#: config/tc-arc.c:4653 +#: config/tc-arc.c:4688 msgid "shortcut designator invalid" msgstr "" -#: config/tc-arc.c:4752 +#: config/tc-arc.c:4787 #, c-format msgid "core register %s value (%d) too large" msgstr "" -#: config/tc-arc.c:4771 +#: config/tc-arc.c:4806 #, c-format msgid "condition code %s value (%d) too large" msgstr "" -#: config/tc-arc.c:4790 +#: config/tc-arc.c:4825 msgid "Unknown extension" msgstr "" @@ -2969,7 +2970,7 @@ msgstr "" msgid "iWMMXt data register expected" msgstr "" -#: config/tc-arm.c:628 config/tc-arm.c:7014 +#: config/tc-arm.c:628 config/tc-arm.c:7018 msgid "iWMMXt control register expected" msgstr "" @@ -3070,7 +3071,7 @@ msgstr "" msgid "missing expression" msgstr "" -#: config/tc-arm.c:1078 config/tc-arm.c:5230 config/tc-i960.c:1298 +#: config/tc-arm.c:1078 config/tc-arm.c:5234 config/tc-i960.c:1298 #: config/tc-score.c:1210 msgid "invalid constant" msgstr "" @@ -3117,8 +3118,8 @@ msgstr "" msgid "scalar must have an index" msgstr "" -#: config/tc-arm.c:1635 config/tc-arm.c:16358 config/tc-arm.c:16418 -#: config/tc-arm.c:16872 +#: config/tc-arm.c:1635 config/tc-arm.c:16362 config/tc-arm.c:16422 +#: config/tc-arm.c:16876 msgid "scalar index out of range" msgstr "" @@ -3307,7 +3308,7 @@ msgstr "" msgid "(plt) is only valid on branch targets" msgstr "" -#: config/tc-arm.c:3552 config/tc-s390.c:1207 config/tc-s390.c:1868 +#: config/tc-arm.c:3552 config/tc-s390.c:1209 config/tc-s390.c:1870 #: config/tc-xtensa.c:1671 #, c-format msgid "%s relocations do not fit in %d bytes" @@ -3417,9 +3418,9 @@ msgstr "" msgid "invalid unwind opcode" msgstr "" -#: config/tc-arm.c:4778 config/tc-arm.c:5783 config/tc-arm.c:10573 -#: config/tc-arm.c:11100 config/tc-arm.c:13130 config/tc-arm.c:14710 -#: config/tc-arm.c:23839 config/tc-arm.c:23903 config/tc-arm.c:23911 +#: config/tc-arm.c:4778 config/tc-arm.c:5787 config/tc-arm.c:10577 +#: config/tc-arm.c:11104 config/tc-arm.c:13134 config/tc-arm.c:14714 +#: config/tc-arm.c:23843 config/tc-arm.c:23907 config/tc-arm.c:23915 #: config/tc-metag.c:5176 config/tc-z8k.c:1151 config/tc-z8k.c:1161 msgid "immediate value out of range" msgstr "" @@ -3428,259 +3429,259 @@ msgstr "" msgid "invalid FPA immediate expression" msgstr "" -#: config/tc-arm.c:5130 +#: config/tc-arm.c:5134 msgid "'LSL' or 'ASR' required" msgstr "" -#: config/tc-arm.c:5138 +#: config/tc-arm.c:5142 msgid "'LSL' required" msgstr "" -#: config/tc-arm.c:5146 +#: config/tc-arm.c:5150 msgid "'ASR' required" msgstr "" -#: config/tc-arm.c:5225 +#: config/tc-arm.c:5229 msgid "invalid rotation" msgstr "" -#: config/tc-arm.c:5405 config/tc-arm.c:5574 +#: config/tc-arm.c:5409 config/tc-arm.c:5578 msgid "unknown group relocation" msgstr "" -#: config/tc-arm.c:5441 +#: config/tc-arm.c:5445 msgid "alignment must be constant" msgstr "" -#: config/tc-arm.c:5605 +#: config/tc-arm.c:5609 msgid "this group relocation is not allowed on this instruction" msgstr "" -#: config/tc-arm.c:5660 +#: config/tc-arm.c:5664 msgid "'}' expected at end of 'option' field" msgstr "" -#: config/tc-arm.c:5665 +#: config/tc-arm.c:5669 msgid "cannot combine index with option" msgstr "" -#: config/tc-arm.c:5921 +#: config/tc-arm.c:5925 msgid "unexpected bit specified after APSR" msgstr "" -#: config/tc-arm.c:5933 +#: config/tc-arm.c:5937 msgid "selected processor does not support DSP extension" msgstr "" -#: config/tc-arm.c:5945 +#: config/tc-arm.c:5949 msgid "bad bitmask specified after APSR" msgstr "" -#: config/tc-arm.c:5969 +#: config/tc-arm.c:5973 msgid "writing to APSR without specifying a bitmask is deprecated" msgstr "" -#: config/tc-arm.c:5981 config/tc-arm.c:12254 config/tc-arm.c:12299 -#: config/tc-arm.c:12303 +#: config/tc-arm.c:5985 config/tc-arm.c:12258 config/tc-arm.c:12303 +#: config/tc-arm.c:12307 msgid "selected processor does not support requested special purpose register" msgstr "" -#: config/tc-arm.c:5986 +#: config/tc-arm.c:5990 msgid "flag for {c}psr instruction expected" msgstr "" -#: config/tc-arm.c:6011 +#: config/tc-arm.c:6015 msgid "unrecognized CPS flag" msgstr "" -#: config/tc-arm.c:6018 +#: config/tc-arm.c:6022 msgid "missing CPS flags" msgstr "" -#: config/tc-arm.c:6041 config/tc-arm.c:6047 +#: config/tc-arm.c:6045 config/tc-arm.c:6051 msgid "valid endian specifiers are be or le" msgstr "" -#: config/tc-arm.c:6069 +#: config/tc-arm.c:6073 msgid "missing rotation field after comma" msgstr "" -#: config/tc-arm.c:6084 +#: config/tc-arm.c:6088 msgid "rotation can only be 0, 8, 16, or 24" msgstr "" -#: config/tc-arm.c:6113 +#: config/tc-arm.c:6117 msgid "condition required" msgstr "" -#: config/tc-arm.c:6181 config/tc-arm.c:8868 +#: config/tc-arm.c:6185 config/tc-arm.c:8872 msgid "'[' expected" msgstr "" -#: config/tc-arm.c:6194 +#: config/tc-arm.c:6198 msgid "',' expected" msgstr "" -#: config/tc-arm.c:6211 +#: config/tc-arm.c:6215 msgid "invalid shift" msgstr "" -#: config/tc-arm.c:6284 +#: config/tc-arm.c:6288 msgid "can't use Neon quad register here" msgstr "" -#: config/tc-arm.c:6351 +#: config/tc-arm.c:6355 msgid "expected <Rm> or <Dm> or <Qm> operand" msgstr "" -#: config/tc-arm.c:6431 +#: config/tc-arm.c:6435 msgid "parse error" msgstr "" #. ISB can only take SY as an option. -#: config/tc-arm.c:6698 +#: config/tc-arm.c:6702 msgid "invalid barrier type" msgstr "" -#: config/tc-arm.c:6794 +#: config/tc-arm.c:6798 msgid "only floating point zero is allowed as immediate value" msgstr "" -#: config/tc-arm.c:6852 +#: config/tc-arm.c:6856 msgid "immediate value is out of range" msgstr "" -#: config/tc-arm.c:6999 +#: config/tc-arm.c:7003 msgid "iWMMXt data or control register expected" msgstr "" -#: config/tc-arm.c:7039 +#: config/tc-arm.c:7043 msgid "Banked registers are not available with this architecture." msgstr "" -#: config/tc-arm.c:7261 config/tc-score.c:264 +#: config/tc-arm.c:7265 config/tc-score.c:264 msgid "garbage following instruction" msgstr "" #. If REG is R13 (the stack pointer), warn that its use is #. deprecated. -#: config/tc-arm.c:7302 +#: config/tc-arm.c:7306 msgid "use of r13 is deprecated" msgstr "" -#: config/tc-arm.c:7320 +#: config/tc-arm.c:7324 msgid "" "ARMv8.2 scalar fp16 instruction cannot be conditional, the behaviour is " "UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:7395 +#: config/tc-arm.c:7399 msgid "D register out of range for selected VFP version" msgstr "" -#: config/tc-arm.c:7492 config/tc-arm.c:10293 +#: config/tc-arm.c:7496 config/tc-arm.c:10297 msgid "Instruction does not support =N addresses" msgstr "" -#: config/tc-arm.c:7500 +#: config/tc-arm.c:7504 msgid "instruction does not accept preindexed addressing" msgstr "" #. unindexed - only for coprocessor -#: config/tc-arm.c:7516 config/tc-arm.c:10356 +#: config/tc-arm.c:7520 config/tc-arm.c:10360 msgid "instruction does not accept unindexed addressing" msgstr "" -#: config/tc-arm.c:7524 +#: config/tc-arm.c:7528 msgid "destination register same as write-back base" msgstr "" -#: config/tc-arm.c:7525 +#: config/tc-arm.c:7529 msgid "source register same as write-back base" msgstr "" -#: config/tc-arm.c:7575 +#: config/tc-arm.c:7579 msgid "use of PC in this instruction is deprecated" msgstr "" -#: config/tc-arm.c:7598 +#: config/tc-arm.c:7602 msgid "instruction does not accept scaled register index" msgstr "" -#: config/tc-arm.c:7903 +#: config/tc-arm.c:7907 msgid "invalid pseudo operation" msgstr "" -#: config/tc-arm.c:8145 +#: config/tc-arm.c:8149 msgid "invalid co-processor operand" msgstr "" -#: config/tc-arm.c:8161 +#: config/tc-arm.c:8165 msgid "instruction does not support unindexed addressing" msgstr "" -#: config/tc-arm.c:8176 +#: config/tc-arm.c:8180 msgid "pc may not be used with write-back" msgstr "" -#: config/tc-arm.c:8181 +#: config/tc-arm.c:8185 msgid "instruction does not support writeback" msgstr "" -#: config/tc-arm.c:8287 +#: config/tc-arm.c:8291 msgid "Rn must not overlap other operands" msgstr "" -#: config/tc-arm.c:8292 +#: config/tc-arm.c:8296 msgid "swp{b} use is obsoleted for ARMv8 and later" msgstr "" -#: config/tc-arm.c:8295 +#: config/tc-arm.c:8299 msgid "swp{b} use is deprecated for ARMv6 and ARMv7" msgstr "" -#: config/tc-arm.c:8400 config/tc-arm.c:8419 config/tc-arm.c:8432 -#: config/tc-arm.c:10937 config/tc-arm.c:10968 config/tc-arm.c:10990 +#: config/tc-arm.c:8404 config/tc-arm.c:8423 config/tc-arm.c:8436 +#: config/tc-arm.c:10941 config/tc-arm.c:10972 config/tc-arm.c:10994 msgid "bit-field extends past end of register" msgstr "" -#: config/tc-arm.c:8462 +#: config/tc-arm.c:8466 msgid "the only valid suffixes here are '(plt)' and '(tlscall)'" msgstr "" -#: config/tc-arm.c:8515 +#: config/tc-arm.c:8519 msgid "use of r15 in blx in ARM mode is not really useful" msgstr "" -#: config/tc-arm.c:8537 +#: config/tc-arm.c:8541 msgid "use of r15 in bx in ARM mode is not really useful" msgstr "" -#: config/tc-arm.c:8562 +#: config/tc-arm.c:8566 msgid "use of r15 in bxj is not really useful" msgstr "" -#: config/tc-arm.c:8610 +#: config/tc-arm.c:8614 msgid "This coprocessor register access is deprecated in ARMv8" msgstr "" -#: config/tc-arm.c:8818 config/tc-arm.c:8827 +#: config/tc-arm.c:8822 config/tc-arm.c:8831 msgid "writeback of base register is UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:8821 +#: config/tc-arm.c:8825 msgid "writeback of base register when in register list is UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:8831 +#: config/tc-arm.c:8835 msgid "if writeback register is in list, it must be the lowest reg in the list" msgstr "" -#: config/tc-arm.c:8863 +#: config/tc-arm.c:8867 msgid "first transfer register must be even" msgstr "" -#: config/tc-arm.c:8866 +#: config/tc-arm.c:8870 msgid "can only transfer two consecutive registers" msgstr "" @@ -3688,1218 +3689,1214 @@ msgstr "" #. have been called in the first place. #. If op 2 were present and equal to PC, this function wouldn't #. have been called in the first place. -#: config/tc-arm.c:8867 config/tc-arm.c:8937 config/tc-arm.c:9591 -#: config/tc-arm.c:11746 +#: config/tc-arm.c:8871 config/tc-arm.c:8941 config/tc-arm.c:9595 +#: config/tc-arm.c:11750 msgid "r14 not allowed here" msgstr "" -#: config/tc-arm.c:8879 +#: config/tc-arm.c:8883 msgid "base register written back, and overlaps second transfer register" msgstr "" -#: config/tc-arm.c:8889 +#: config/tc-arm.c:8893 msgid "index register overlaps transfer register" msgstr "" -#: config/tc-arm.c:8918 config/tc-arm.c:9558 +#: config/tc-arm.c:8922 config/tc-arm.c:9562 msgid "offset must be zero in ARM encoding" msgstr "" -#: config/tc-arm.c:8931 config/tc-arm.c:9585 +#: config/tc-arm.c:8935 config/tc-arm.c:9589 msgid "even register required" msgstr "" -#: config/tc-arm.c:8934 +#: config/tc-arm.c:8938 msgid "can only load two consecutive registers" msgstr "" -#: config/tc-arm.c:8952 +#: config/tc-arm.c:8956 msgid "ldr to register 15 must be 4-byte alligned" msgstr "" -#: config/tc-arm.c:8975 config/tc-arm.c:9007 +#: config/tc-arm.c:8979 config/tc-arm.c:9011 msgid "this instruction requires a post-indexed address" msgstr "" -#: config/tc-arm.c:9034 +#: config/tc-arm.c:9038 msgid "Rd and Rm should be different in mla" msgstr "" -#: config/tc-arm.c:9061 config/tc-arm.c:12118 -msgid ":lower16: not allowed this instruction" +#: config/tc-arm.c:9065 config/tc-arm.c:12122 +msgid ":lower16: not allowed in this instruction" msgstr "" -#: config/tc-arm.c:9063 -msgid ":upper16: not allowed instruction" +#: config/tc-arm.c:9067 config/tc-arm.c:12127 +msgid ":upper16: not allowed in this instruction" msgstr "" -#: config/tc-arm.c:9080 +#: config/tc-arm.c:9084 msgid "operand 1 must be FPSCR" msgstr "" -#: config/tc-arm.c:9162 config/tc-arm.c:12237 +#: config/tc-arm.c:9166 config/tc-arm.c:12241 msgid "bad register for mrs" msgstr "" -#: config/tc-arm.c:9169 config/tc-arm.c:12261 +#: config/tc-arm.c:9173 config/tc-arm.c:12265 msgid "'APSR', 'CPSR' or 'SPSR' expected" msgstr "" -#: config/tc-arm.c:9210 +#: config/tc-arm.c:9214 msgid "Rd and Rm should be different in mul" msgstr "" -#: config/tc-arm.c:9229 config/tc-arm.c:9503 config/tc-arm.c:12400 +#: config/tc-arm.c:9233 config/tc-arm.c:9507 config/tc-arm.c:12404 msgid "rdhi and rdlo must be different" msgstr "" -#: config/tc-arm.c:9235 +#: config/tc-arm.c:9239 msgid "rdhi, rdlo and rm must all be different" msgstr "" -#: config/tc-arm.c:9301 +#: config/tc-arm.c:9305 msgid "'[' expected after PLD mnemonic" msgstr "" -#: config/tc-arm.c:9303 config/tc-arm.c:9318 +#: config/tc-arm.c:9307 config/tc-arm.c:9322 msgid "post-indexed expression used in preload instruction" msgstr "" -#: config/tc-arm.c:9305 config/tc-arm.c:9320 +#: config/tc-arm.c:9309 config/tc-arm.c:9324 msgid "writeback used in preload instruction" msgstr "" -#: config/tc-arm.c:9307 config/tc-arm.c:9322 +#: config/tc-arm.c:9311 config/tc-arm.c:9326 msgid "unindexed addressing used in preload instruction" msgstr "" -#: config/tc-arm.c:9316 +#: config/tc-arm.c:9320 msgid "'[' expected after PLI mnemonic" msgstr "" -#: config/tc-arm.c:9331 config/tc-arm.c:12569 +#: config/tc-arm.c:9335 config/tc-arm.c:12573 msgid "push/pop do not support {reglist}^" msgstr "" -#: config/tc-arm.c:9409 config/tc-arm.c:12716 +#: config/tc-arm.c:9413 config/tc-arm.c:12720 msgid "setend use is deprecated for ARMv8" msgstr "" -#: config/tc-arm.c:9430 config/tc-arm.c:12777 config/tc-arm.c:12809 -#: config/tc-arm.c:12852 +#: config/tc-arm.c:9434 config/tc-arm.c:12781 config/tc-arm.c:12813 +#: config/tc-arm.c:12856 msgid "extraneous shift as part of operand to shift insn" msgstr "" -#: config/tc-arm.c:9461 config/tc-arm.c:9470 +#: config/tc-arm.c:9465 config/tc-arm.c:9474 msgid "selected processor does not support SETPAN instruction" msgstr "" -#: config/tc-arm.c:9529 +#: config/tc-arm.c:9533 msgid "SRS base register must be r13" msgstr "" -#: config/tc-arm.c:9588 +#: config/tc-arm.c:9592 msgid "can only store two consecutive registers" msgstr "" -#: config/tc-arm.c:9702 config/tc-arm.c:9719 +#: config/tc-arm.c:9706 config/tc-arm.c:9723 msgid "only two consecutive VFP SP registers allowed here" msgstr "" -#: config/tc-arm.c:9747 config/tc-arm.c:9762 +#: config/tc-arm.c:9751 config/tc-arm.c:9766 msgid "this addressing mode requires base-register writeback" msgstr "" #. If srcsize is 16, inst.operands[1].imm must be in the range 0-16. #. i.e. immbits must be in range 0 - 16. -#: config/tc-arm.c:9879 +#: config/tc-arm.c:9883 msgid "immediate value out of range, expected range [0, 16]" msgstr "" #. If srcsize is 32, inst.operands[1].imm must be in the range 1-32. #. i.e. immbits must be in range 0 - 31. -#: config/tc-arm.c:9886 +#: config/tc-arm.c:9890 msgid "immediate value out of range, expected range [1, 32]" msgstr "" -#: config/tc-arm.c:9952 +#: config/tc-arm.c:9956 msgid "this instruction does not support indexing" msgstr "" -#: config/tc-arm.c:9975 +#: config/tc-arm.c:9979 msgid "only r15 allowed here" msgstr "" -#: config/tc-arm.c:10110 +#: config/tc-arm.c:10114 msgid "immediate operand requires iWMMXt2" msgstr "" -#: config/tc-arm.c:10254 +#: config/tc-arm.c:10258 msgid "shift by register not allowed in thumb mode" msgstr "" -#: config/tc-arm.c:10266 config/tc-arm.c:12960 config/tc-arm.c:23182 +#: config/tc-arm.c:10270 config/tc-arm.c:12964 config/tc-arm.c:23186 msgid "shift expression is too large" msgstr "" -#: config/tc-arm.c:10299 +#: config/tc-arm.c:10303 msgid "cannot use register index with this instruction" msgstr "" -#: config/tc-arm.c:10301 +#: config/tc-arm.c:10305 msgid "Thumb does not support negative register indexing" msgstr "" -#: config/tc-arm.c:10303 +#: config/tc-arm.c:10307 msgid "Thumb does not support register post-indexing" msgstr "" -#: config/tc-arm.c:10305 +#: config/tc-arm.c:10309 msgid "Thumb does not support register indexing with writeback" msgstr "" -#: config/tc-arm.c:10307 +#: config/tc-arm.c:10311 msgid "Thumb supports only LSL in shifted register indexing" msgstr "" -#: config/tc-arm.c:10316 config/tc-arm.c:16149 +#: config/tc-arm.c:10320 config/tc-arm.c:16153 msgid "shift out of range" msgstr "" -#: config/tc-arm.c:10325 +#: config/tc-arm.c:10329 msgid "cannot use writeback with this instruction" msgstr "" -#: config/tc-arm.c:10346 +#: config/tc-arm.c:10350 msgid "cannot use post-indexing with PC-relative addressing" msgstr "" -#: config/tc-arm.c:10347 +#: config/tc-arm.c:10351 msgid "cannot use post-indexing with this instruction" msgstr "" -#: config/tc-arm.c:10568 +#: config/tc-arm.c:10572 msgid "only SUBS PC, LR, #const allowed" msgstr "" -#: config/tc-arm.c:10650 config/tc-arm.c:10805 config/tc-arm.c:10902 -#: config/tc-arm.c:12198 config/tc-arm.c:12506 +#: config/tc-arm.c:10654 config/tc-arm.c:10809 config/tc-arm.c:10906 +#: config/tc-arm.c:12202 config/tc-arm.c:12510 msgid "shift must be constant" msgstr "" -#: config/tc-arm.c:10655 +#: config/tc-arm.c:10659 msgid "shift value over 3 not allowed in thumb mode" msgstr "" -#: config/tc-arm.c:10657 +#: config/tc-arm.c:10661 msgid "only LSL shift allowed in thumb mode" msgstr "" -#: config/tc-arm.c:10681 config/tc-arm.c:10820 config/tc-arm.c:10917 -#: config/tc-arm.c:12211 +#: config/tc-arm.c:10685 config/tc-arm.c:10824 config/tc-arm.c:10921 +#: config/tc-arm.c:12215 msgid "unshifted register required" msgstr "" -#: config/tc-arm.c:10696 config/tc-arm.c:10928 config/tc-arm.c:12361 +#: config/tc-arm.c:10700 config/tc-arm.c:10932 config/tc-arm.c:12365 msgid "dest must overlap one source register" msgstr "" -#: config/tc-arm.c:10823 +#: config/tc-arm.c:10827 msgid "dest and source1 must be the same register" msgstr "" -#: config/tc-arm.c:11063 +#: config/tc-arm.c:11067 msgid "" "selected architecture does not support wide conditional branch instruction" msgstr "" -#: config/tc-arm.c:11096 +#: config/tc-arm.c:11100 msgid "instruction is always unconditional" msgstr "" -#: config/tc-arm.c:11211 +#: config/tc-arm.c:11215 msgid "selected processor does not support 'A' form of this instruction" msgstr "" -#: config/tc-arm.c:11214 +#: config/tc-arm.c:11218 msgid "Thumb does not support the 2-argument form of this instruction" msgstr "" -#: config/tc-arm.c:11335 +#: config/tc-arm.c:11339 msgid "SP not allowed in register list" msgstr "" -#: config/tc-arm.c:11339 config/tc-arm.c:11445 +#: config/tc-arm.c:11343 config/tc-arm.c:11449 msgid "" "having the base register in the register list when using write back is " "UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:11347 +#: config/tc-arm.c:11351 msgid "LR and PC should not both be in register list" msgstr "" -#: config/tc-arm.c:11355 +#: config/tc-arm.c:11359 msgid "PC not allowed in register list" msgstr "" -#: config/tc-arm.c:11397 +#: config/tc-arm.c:11401 msgid "Thumb load/store multiple does not support {reglist}^" msgstr "" -#: config/tc-arm.c:11422 config/tc-arm.c:11499 +#: config/tc-arm.c:11426 config/tc-arm.c:11503 #, c-format msgid "value stored for r%d is UNKNOWN" msgstr "" -#: config/tc-arm.c:11492 +#: config/tc-arm.c:11496 msgid "Thumb-2 instruction only valid in unified syntax" msgstr "" -#: config/tc-arm.c:11496 config/tc-arm.c:11506 +#: config/tc-arm.c:11500 config/tc-arm.c:11510 msgid "this instruction will write back the base register" msgstr "" -#: config/tc-arm.c:11509 +#: config/tc-arm.c:11513 msgid "this instruction will not write back the base register" msgstr "" -#: config/tc-arm.c:11540 +#: config/tc-arm.c:11544 msgid "r14 not allowed as first register when second register is omitted" msgstr "" -#: config/tc-arm.c:11640 +#: config/tc-arm.c:11644 msgid "" "This instruction may be unpredictable if executed on M-profile cores with " "interrupts enabled." msgstr "" -#: config/tc-arm.c:11669 config/tc-arm.c:11682 config/tc-arm.c:11718 +#: config/tc-arm.c:11673 config/tc-arm.c:11686 config/tc-arm.c:11722 msgid "Thumb does not support this addressing mode" msgstr "" -#: config/tc-arm.c:11686 +#: config/tc-arm.c:11690 msgid "byte or halfword not valid for base register" msgstr "" -#: config/tc-arm.c:11689 +#: config/tc-arm.c:11693 msgid "r15 based store not allowed" msgstr "" -#: config/tc-arm.c:11691 +#: config/tc-arm.c:11695 msgid "invalid base register for register offset" msgstr "" -#: config/tc-arm.c:11748 +#: config/tc-arm.c:11752 msgid "r12 not allowed here" msgstr "" -#: config/tc-arm.c:11754 +#: config/tc-arm.c:11758 msgid "base register written back, and overlaps one of transfer registers" msgstr "" -#: config/tc-arm.c:11882 +#: config/tc-arm.c:11886 #, c-format msgid "" "Use of r%u as a source register is deprecated when r%u is the destination " "register." msgstr "" -#: config/tc-arm.c:12074 +#: config/tc-arm.c:12078 msgid "shifts in CMP/MOV instructions are only supported in unified syntax" msgstr "" -#: config/tc-arm.c:12102 +#: config/tc-arm.c:12106 msgid "only lo regs allowed with immediate" msgstr "" -#: config/tc-arm.c:12123 -msgid ":upper16: not allowed this instruction" -msgstr "" - -#: config/tc-arm.c:12279 +#: config/tc-arm.c:12283 msgid "Thumb encoding does not support an immediate here" msgstr "" -#: config/tc-arm.c:12366 +#: config/tc-arm.c:12370 msgid "Thumb-2 MUL must not set flags" msgstr "" -#: config/tc-arm.c:12431 +#: config/tc-arm.c:12435 msgid "Thumb does not support NOP with hints" msgstr "" -#: config/tc-arm.c:12591 +#: config/tc-arm.c:12595 msgid "invalid register list to push/pop instruction" msgstr "" -#: config/tc-arm.c:12836 +#: config/tc-arm.c:12840 msgid "source1 and dest must be same register" msgstr "" -#: config/tc-arm.c:12861 +#: config/tc-arm.c:12865 msgid "ror #imm not supported" msgstr "" -#: config/tc-arm.c:12912 +#: config/tc-arm.c:12916 msgid "SMC is not permitted on this architecture" msgstr "" -#: config/tc-arm.c:13077 +#: config/tc-arm.c:13081 msgid "Thumb encoding does not support rotation" msgstr "" -#: config/tc-arm.c:13092 +#: config/tc-arm.c:13096 msgid "SVC is not permitted on this architecture" msgstr "" -#: config/tc-arm.c:13108 +#: config/tc-arm.c:13112 msgid "instruction requires register index" msgstr "" -#: config/tc-arm.c:13117 +#: config/tc-arm.c:13121 msgid "instruction does not allow shifted index" msgstr "" -#: config/tc-arm.c:13303 +#: config/tc-arm.c:13307 msgid "invalid neon suffix for non neon instruction" msgstr "" -#: config/tc-arm.c:13663 config/tc-arm.c:14009 config/tc-arm.c:15619 -#: config/tc-arm.c:17117 +#: config/tc-arm.c:13667 config/tc-arm.c:14013 config/tc-arm.c:15623 +#: config/tc-arm.c:17121 msgid "invalid instruction shape" msgstr "" -#: config/tc-arm.c:13908 +#: config/tc-arm.c:13912 msgid "types specified in both the mnemonic and operands" msgstr "" -#: config/tc-arm.c:13945 +#: config/tc-arm.c:13949 msgid "operand types can't be inferred" msgstr "" -#: config/tc-arm.c:13951 +#: config/tc-arm.c:13955 msgid "type specifier has the wrong number of parts" msgstr "" -#: config/tc-arm.c:14037 config/tc-arm.c:15807 config/tc-arm.c:15814 +#: config/tc-arm.c:14041 config/tc-arm.c:15811 config/tc-arm.c:15818 msgid "operand size must match register width" msgstr "" -#: config/tc-arm.c:14048 +#: config/tc-arm.c:14052 msgid "bad type in Neon instruction" msgstr "" -#: config/tc-arm.c:14059 +#: config/tc-arm.c:14063 msgid "inconsistent types in Neon instruction" msgstr "" -#: config/tc-arm.c:14430 config/tc-arm.c:14445 config/tc-arm.c:16696 +#: config/tc-arm.c:14434 config/tc-arm.c:14449 config/tc-arm.c:16700 msgid "register list must contain at least 1 and at most 16 registers" msgstr "" -#: config/tc-arm.c:14588 config/tc-arm.c:14624 config/tc-arm.c:15256 -#: config/tc-arm.c:16536 +#: config/tc-arm.c:14592 config/tc-arm.c:14628 config/tc-arm.c:15260 +#: config/tc-arm.c:16540 msgid "immediate out of range for shift" msgstr "" -#: config/tc-arm.c:14744 +#: config/tc-arm.c:14748 msgid "first and second operands shall be the same register" msgstr "" -#: config/tc-arm.c:15022 +#: config/tc-arm.c:15026 msgid "scalar out of range for multiply instruction" msgstr "" -#: config/tc-arm.c:15146 +#: config/tc-arm.c:15150 msgid "instruction form not available on this architecture." msgstr "" -#: config/tc-arm.c:15149 +#: config/tc-arm.c:15153 msgid "this instruction implies use of ARMv8.1 AdvSIMD." msgstr "" -#: config/tc-arm.c:15232 config/tc-arm.c:15244 +#: config/tc-arm.c:15236 config/tc-arm.c:15248 msgid "immediate out of range for insert" msgstr "" -#: config/tc-arm.c:15377 +#: config/tc-arm.c:15381 msgid "immediate out of range for narrowing operation" msgstr "" -#: config/tc-arm.c:15523 +#: config/tc-arm.c:15527 msgid "operands 0 and 1 must be the same register" msgstr "" -#: config/tc-arm.c:15629 config/tc-arm.c:17215 +#: config/tc-arm.c:15633 config/tc-arm.c:17219 msgid "invalid rounding mode" msgstr "" -#: config/tc-arm.c:15956 +#: config/tc-arm.c:15960 msgid "operand size must be specified for immediate VMOV" msgstr "" -#: config/tc-arm.c:15966 +#: config/tc-arm.c:15970 msgid "immediate has bits set outside the operand size" msgstr "" -#: config/tc-arm.c:16131 +#: config/tc-arm.c:16135 msgid "Instruction form not available on this architecture." msgstr "" -#: config/tc-arm.c:16175 +#: config/tc-arm.c:16179 msgid "elements must be smaller than reversal region" msgstr "" -#: config/tc-arm.c:16357 config/tc-arm.c:16417 +#: config/tc-arm.c:16361 config/tc-arm.c:16421 msgid "bad type for scalar" msgstr "" -#: config/tc-arm.c:16494 config/tc-arm.c:16502 +#: config/tc-arm.c:16498 config/tc-arm.c:16506 msgid "VFP registers must be adjacent" msgstr "" -#: config/tc-arm.c:16545 +#: config/tc-arm.c:16549 msgid "invalid suffix" msgstr "" -#: config/tc-arm.c:16663 +#: config/tc-arm.c:16667 msgid "bad list length for table lookup" msgstr "" -#: config/tc-arm.c:16693 +#: config/tc-arm.c:16697 msgid "writeback (!) must be used for VLDMDB and VSTMDB" msgstr "" -#: config/tc-arm.c:16721 +#: config/tc-arm.c:16725 msgid "Use of PC here is UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:16723 +#: config/tc-arm.c:16727 msgid "Use of PC here is deprecated" msgstr "" -#: config/tc-arm.c:16790 +#: config/tc-arm.c:16794 msgid "bad alignment" msgstr "" -#: config/tc-arm.c:16807 +#: config/tc-arm.c:16811 msgid "bad list type for instruction" msgstr "" -#: config/tc-arm.c:16809 +#: config/tc-arm.c:16813 msgid "bad element type for instruction" msgstr "" -#: config/tc-arm.c:16851 +#: config/tc-arm.c:16855 msgid "unsupported alignment for instruction" msgstr "" -#: config/tc-arm.c:16870 config/tc-arm.c:16964 config/tc-arm.c:16976 -#: config/tc-arm.c:16986 config/tc-arm.c:17000 +#: config/tc-arm.c:16874 config/tc-arm.c:16968 config/tc-arm.c:16980 +#: config/tc-arm.c:16990 config/tc-arm.c:17004 msgid "bad list length" msgstr "" -#: config/tc-arm.c:16875 +#: config/tc-arm.c:16879 msgid "stride of 2 unavailable when element size is 8" msgstr "" -#: config/tc-arm.c:16908 config/tc-arm.c:16984 +#: config/tc-arm.c:16912 config/tc-arm.c:16988 msgid "can't use alignment with this instruction" msgstr "" -#: config/tc-arm.c:17056 +#: config/tc-arm.c:17060 msgid "post-index must be a register" msgstr "" -#: config/tc-arm.c:17058 +#: config/tc-arm.c:17062 msgid "bad register for post-index" msgstr "" -#: config/tc-arm.c:17279 +#: config/tc-arm.c:17283 msgid "scalar out of range" msgstr "" -#: config/tc-arm.c:17854 config/tc-arm.c:17940 +#: config/tc-arm.c:17858 config/tc-arm.c:17944 msgid "conditional infixes are deprecated in unified syntax" msgstr "" -#: config/tc-arm.c:18091 +#: config/tc-arm.c:18095 msgid "Warning: conditional outside an IT block for Thumb." msgstr "" -#: config/tc-arm.c:18243 +#: config/tc-arm.c:18247 msgid "Short branches, Undefined, SVC, LDM/STM" msgstr "" -#: config/tc-arm.c:18244 +#: config/tc-arm.c:18248 msgid "Miscellaneous 16-bit instructions" msgstr "" -#: config/tc-arm.c:18245 +#: config/tc-arm.c:18249 msgid "ADR" msgstr "" -#: config/tc-arm.c:18246 +#: config/tc-arm.c:18250 msgid "Literal loads" msgstr "" -#: config/tc-arm.c:18247 +#: config/tc-arm.c:18251 msgid "Hi-register ADD, MOV, CMP, BX, BLX using pc" msgstr "" -#: config/tc-arm.c:18248 +#: config/tc-arm.c:18252 msgid "Hi-register ADD, MOV, CMP using pc" msgstr "" #. NOTE: 0x00dd is not the real encoding, instead, it is the 'tvalue' #. field in asm_opcode. 'tvalue' is used at the stage this check happen. -#: config/tc-arm.c:18251 +#: config/tc-arm.c:18255 msgid "ADD/SUB sp, sp #imm" msgstr "" -#: config/tc-arm.c:18270 +#: config/tc-arm.c:18274 msgid "IT blocks containing 32-bit Thumb instructions are deprecated in ARMv8" msgstr "" -#: config/tc-arm.c:18282 +#: config/tc-arm.c:18286 #, c-format msgid "" "IT blocks containing 16-bit Thumb instructions of the following class are " "deprecated in ARMv8: %s" msgstr "" -#: config/tc-arm.c:18295 +#: config/tc-arm.c:18299 msgid "" "IT blocks containing more than one conditional instruction are deprecated in " "ARMv8" msgstr "" -#: config/tc-arm.c:18410 +#: config/tc-arm.c:18414 #, c-format msgid "bad instruction `%s'" msgstr "" -#: config/tc-arm.c:18416 +#: config/tc-arm.c:18420 msgid "s suffix on comparison instruction is deprecated" msgstr "" -#: config/tc-arm.c:18435 +#: config/tc-arm.c:18439 #, c-format msgid "selected processor does not support `%s' in Thumb mode" msgstr "" -#: config/tc-arm.c:18441 +#: config/tc-arm.c:18445 msgid "Thumb does not support conditional execution" msgstr "" -#: config/tc-arm.c:18461 +#: config/tc-arm.c:18465 #, c-format msgid "" "selected processor does not support 32bit wide variant of instruction `%s'" msgstr "" -#: config/tc-arm.c:18464 +#: config/tc-arm.c:18468 #, c-format msgid "selected processor does not support `%s' in Thumb-2 mode" msgstr "" -#: config/tc-arm.c:18489 +#: config/tc-arm.c:18493 #, c-format msgid "cannot honor width suffix -- `%s'" msgstr "" -#: config/tc-arm.c:18531 +#: config/tc-arm.c:18535 #, c-format msgid "selected processor does not support `%s' in ARM mode" msgstr "" -#: config/tc-arm.c:18536 +#: config/tc-arm.c:18540 #, c-format msgid "width suffixes are invalid in ARM mode -- `%s'" msgstr "" -#: config/tc-arm.c:18569 +#: config/tc-arm.c:18573 #, c-format msgid "attempt to use an ARM instruction on a Thumb-only processor -- `%s'" msgstr "" -#: config/tc-arm.c:18586 +#: config/tc-arm.c:18590 #, c-format msgid "section '%s' finished with an open IT block." msgstr "" -#: config/tc-arm.c:18591 +#: config/tc-arm.c:18595 msgid "file finished with an open IT block." msgstr "" -#: config/tc-arm.c:21842 +#: config/tc-arm.c:21846 #, c-format msgid "alignments greater than %d bytes not supported in .text sections." msgstr "" -#: config/tc-arm.c:22103 config/tc-ia64.c:3594 +#: config/tc-arm.c:22107 config/tc-ia64.c:3594 #, c-format msgid "Group section `%s' has no group signature" msgstr "" -#: config/tc-arm.c:22148 +#: config/tc-arm.c:22152 msgid "handlerdata in cantunwind frame" msgstr "" -#: config/tc-arm.c:22165 +#: config/tc-arm.c:22169 msgid "too many unwind opcodes for personality routine 0" msgstr "" -#: config/tc-arm.c:22196 +#: config/tc-arm.c:22200 msgid "attempt to recreate an unwind entry" msgstr "" -#: config/tc-arm.c:22206 +#: config/tc-arm.c:22210 msgid "too many unwind opcodes" msgstr "" -#: config/tc-arm.c:22499 +#: config/tc-arm.c:22503 #, c-format msgid "[-mwarn-syms]: Assignment makes a symbol match an ARM instruction: %s" msgstr "" -#: config/tc-arm.c:22861 config/tc-arm.c:22929 +#: config/tc-arm.c:22865 config/tc-arm.c:22933 #, c-format msgid "symbol %s is in a different section" msgstr "" -#: config/tc-arm.c:22863 config/tc-arm.c:22931 +#: config/tc-arm.c:22867 config/tc-arm.c:22935 #, c-format msgid "symbol %s is weak and may be overridden later" msgstr "" -#: config/tc-arm.c:22908 config/tc-arm.c:23278 +#: config/tc-arm.c:22912 config/tc-arm.c:23282 #, c-format msgid "invalid constant (%lx) after fixup" msgstr "" -#: config/tc-arm.c:22964 +#: config/tc-arm.c:22968 #, c-format msgid "unable to compute ADRL instructions for PC offset of 0x%lx" msgstr "" -#: config/tc-arm.c:23000 config/tc-arm.c:23030 +#: config/tc-arm.c:23004 config/tc-arm.c:23034 msgid "invalid literal constant: pool needs to be closer" msgstr "" -#: config/tc-arm.c:23003 config/tc-arm.c:23052 +#: config/tc-arm.c:23007 config/tc-arm.c:23056 #, c-format msgid "bad immediate value for offset (%ld)" msgstr "" -#: config/tc-arm.c:23033 +#: config/tc-arm.c:23037 #, c-format msgid "bad immediate value for 8-bit offset (%ld)" msgstr "" -#: config/tc-arm.c:23093 +#: config/tc-arm.c:23097 msgid "offset not a multiple of 4" msgstr "" -#: config/tc-arm.c:23294 +#: config/tc-arm.c:23298 msgid "invalid smc expression" msgstr "" -#: config/tc-arm.c:23303 +#: config/tc-arm.c:23307 msgid "invalid hvc expression" msgstr "" -#: config/tc-arm.c:23314 config/tc-arm.c:23323 +#: config/tc-arm.c:23318 config/tc-arm.c:23327 msgid "invalid swi expression" msgstr "" -#: config/tc-arm.c:23333 +#: config/tc-arm.c:23337 msgid "invalid expression in load/store multiple" msgstr "" -#: config/tc-arm.c:23395 +#: config/tc-arm.c:23399 #, c-format msgid "blx to '%s' an ARM ISA state function changed to bl" msgstr "" -#: config/tc-arm.c:23414 +#: config/tc-arm.c:23418 msgid "misaligned branch destination" msgstr "" -#: config/tc-arm.c:23534 +#: config/tc-arm.c:23538 #, c-format msgid "blx to Thumb func '%s' from Thumb ISA state changed to bl" msgstr "" -#: config/tc-arm.c:23584 +#: config/tc-arm.c:23588 msgid "Thumb2 branch out of range" msgstr "" -#: config/tc-arm.c:23668 +#: config/tc-arm.c:23672 msgid "rel31 relocation overflow" msgstr "" -#: config/tc-arm.c:23689 config/tc-arm.c:23693 config/tc-arm.c:23732 +#: config/tc-arm.c:23693 config/tc-arm.c:23697 config/tc-arm.c:23736 msgid "co-processor offset out of range" msgstr "" -#: config/tc-arm.c:23749 +#: config/tc-arm.c:23753 #, c-format msgid "invalid offset, target not word aligned (0x%08lX)" msgstr "" -#: config/tc-arm.c:23756 config/tc-arm.c:23765 config/tc-arm.c:23773 -#: config/tc-arm.c:23781 config/tc-arm.c:23789 +#: config/tc-arm.c:23760 config/tc-arm.c:23769 config/tc-arm.c:23777 +#: config/tc-arm.c:23785 config/tc-arm.c:23793 #, c-format msgid "invalid offset, value too big (0x%08lX)" msgstr "" -#: config/tc-arm.c:23830 +#: config/tc-arm.c:23834 msgid "invalid Hi register with immediate" msgstr "" -#: config/tc-arm.c:23846 +#: config/tc-arm.c:23850 msgid "invalid immediate for stack address calculation" msgstr "" -#: config/tc-arm.c:23865 +#: config/tc-arm.c:23869 msgid "address calculation needs a strongly defined nearby symbol" msgstr "" -#: config/tc-arm.c:23881 +#: config/tc-arm.c:23885 msgid "symbol too far away" msgstr "" -#: config/tc-arm.c:23893 +#: config/tc-arm.c:23897 #, c-format msgid "invalid immediate for address calculation (value = 0x%08lX)" msgstr "" -#: config/tc-arm.c:23923 +#: config/tc-arm.c:23927 #, c-format msgid "invalid immediate: %ld is out of range" msgstr "" -#: config/tc-arm.c:23935 +#: config/tc-arm.c:23939 #, c-format msgid "invalid shift value: %ld" msgstr "" -#: config/tc-arm.c:24005 config/tc-arm.c:24076 +#: config/tc-arm.c:24009 config/tc-arm.c:24080 #, c-format msgid "the offset 0x%08lX is not representable" msgstr "" -#: config/tc-arm.c:24037 +#: config/tc-arm.c:24041 #, c-format msgid "Unable to process relocation for thumb opcode: %lx" msgstr "" -#: config/tc-arm.c:24116 +#: config/tc-arm.c:24120 #, c-format msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)" msgstr "" -#: config/tc-arm.c:24155 +#: config/tc-arm.c:24159 #, c-format msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)" msgstr "" -#: config/tc-arm.c:24195 +#: config/tc-arm.c:24199 #, c-format msgid "bad offset 0x%08lX (must be word-aligned)" msgstr "" -#: config/tc-arm.c:24200 +#: config/tc-arm.c:24204 #, c-format msgid "bad offset 0x%08lX (must be an 8-bit number of words)" msgstr "" -#: config/tc-arm.c:24231 config/tc-score.c:7391 +#: config/tc-arm.c:24235 config/tc-score.c:7391 #, c-format msgid "bad relocation fixup type (%d)" msgstr "" -#: config/tc-arm.c:24349 +#: config/tc-arm.c:24353 msgid "literal referenced across section boundary" msgstr "" -#: config/tc-arm.c:24420 +#: config/tc-arm.c:24424 msgid "internal relocation (type: IMMEDIATE) not fixed up" msgstr "" -#: config/tc-arm.c:24425 +#: config/tc-arm.c:24429 msgid "ADRL used for a symbol not defined in the same file" msgstr "" -#: config/tc-arm.c:24440 +#: config/tc-arm.c:24444 #, c-format msgid "undefined local label `%s'" msgstr "" -#: config/tc-arm.c:24446 +#: config/tc-arm.c:24450 msgid "internal_relocation (type: OFFSET_IMM) not fixed up" msgstr "" -#: config/tc-arm.c:24468 config/tc-cris.c:4006 config/tc-ft32.c:602 +#: config/tc-arm.c:24472 config/tc-cris.c:4006 config/tc-ft32.c:602 #: config/tc-mcore.c:1928 config/tc-microblaze.c:1972 config/tc-mmix.c:2895 #: config/tc-moxie.c:825 config/tc-ns32k.c:2248 config/tc-score.c:7478 msgid "<unknown>" msgstr "" -#: config/tc-arm.c:24857 +#: config/tc-arm.c:24861 #, c-format msgid "%s: unexpected function type: %d" msgstr "" -#: config/tc-arm.c:24994 +#: config/tc-arm.c:24998 msgid "use of old and new-style options to set CPU type" msgstr "" -#: config/tc-arm.c:25004 +#: config/tc-arm.c:25008 msgid "use of old and new-style options to set FPU type" msgstr "" -#: config/tc-arm.c:25082 +#: config/tc-arm.c:25086 msgid "hard-float conflicts with specified fpu" msgstr "" -#: config/tc-arm.c:25271 +#: config/tc-arm.c:25275 msgid "generate PIC code" msgstr "" -#: config/tc-arm.c:25272 +#: config/tc-arm.c:25276 msgid "assemble Thumb code" msgstr "" -#: config/tc-arm.c:25273 +#: config/tc-arm.c:25277 msgid "support ARM/Thumb interworking" msgstr "" -#: config/tc-arm.c:25275 +#: config/tc-arm.c:25279 msgid "code uses 32-bit program counter" msgstr "" -#: config/tc-arm.c:25276 +#: config/tc-arm.c:25280 msgid "code uses 26-bit program counter" msgstr "" -#: config/tc-arm.c:25277 +#: config/tc-arm.c:25281 msgid "floating point args are in fp regs" msgstr "" -#: config/tc-arm.c:25279 +#: config/tc-arm.c:25283 msgid "re-entrant code" msgstr "" -#: config/tc-arm.c:25280 +#: config/tc-arm.c:25284 msgid "code is ATPCS conformant" msgstr "" #. These are recognized by the assembler, but have no affect on code. -#: config/tc-arm.c:25286 +#: config/tc-arm.c:25290 msgid "use frame pointer" msgstr "" -#: config/tc-arm.c:25287 +#: config/tc-arm.c:25291 msgid "use stack size checking" msgstr "" -#: config/tc-arm.c:25290 +#: config/tc-arm.c:25294 msgid "do not warn on use of deprecated feature" msgstr "" -#: config/tc-arm.c:25292 +#: config/tc-arm.c:25296 msgid "warn about symbols that match instruction names [default]" msgstr "" -#: config/tc-arm.c:25293 +#: config/tc-arm.c:25297 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:25309 config/tc-arm.c:25310 +#: config/tc-arm.c:25313 config/tc-arm.c:25314 msgid "use -mcpu=arm1" msgstr "" -#: config/tc-arm.c:25311 config/tc-arm.c:25312 +#: config/tc-arm.c:25315 config/tc-arm.c:25316 msgid "use -mcpu=arm2" msgstr "" -#: config/tc-arm.c:25313 config/tc-arm.c:25314 +#: config/tc-arm.c:25317 config/tc-arm.c:25318 msgid "use -mcpu=arm250" msgstr "" -#: config/tc-arm.c:25315 config/tc-arm.c:25316 +#: config/tc-arm.c:25319 config/tc-arm.c:25320 msgid "use -mcpu=arm3" msgstr "" -#: config/tc-arm.c:25317 config/tc-arm.c:25318 +#: config/tc-arm.c:25321 config/tc-arm.c:25322 msgid "use -mcpu=arm6" msgstr "" -#: config/tc-arm.c:25319 config/tc-arm.c:25320 +#: config/tc-arm.c:25323 config/tc-arm.c:25324 msgid "use -mcpu=arm600" msgstr "" -#: config/tc-arm.c:25321 config/tc-arm.c:25322 +#: config/tc-arm.c:25325 config/tc-arm.c:25326 msgid "use -mcpu=arm610" msgstr "" -#: config/tc-arm.c:25323 config/tc-arm.c:25324 +#: config/tc-arm.c:25327 config/tc-arm.c:25328 msgid "use -mcpu=arm620" msgstr "" -#: config/tc-arm.c:25325 config/tc-arm.c:25326 +#: config/tc-arm.c:25329 config/tc-arm.c:25330 msgid "use -mcpu=arm7" msgstr "" -#: config/tc-arm.c:25327 config/tc-arm.c:25328 +#: config/tc-arm.c:25331 config/tc-arm.c:25332 msgid "use -mcpu=arm70" msgstr "" -#: config/tc-arm.c:25329 config/tc-arm.c:25330 +#: config/tc-arm.c:25333 config/tc-arm.c:25334 msgid "use -mcpu=arm700" msgstr "" -#: config/tc-arm.c:25331 config/tc-arm.c:25332 +#: config/tc-arm.c:25335 config/tc-arm.c:25336 msgid "use -mcpu=arm700i" msgstr "" -#: config/tc-arm.c:25333 config/tc-arm.c:25334 +#: config/tc-arm.c:25337 config/tc-arm.c:25338 msgid "use -mcpu=arm710" msgstr "" -#: config/tc-arm.c:25335 config/tc-arm.c:25336 +#: config/tc-arm.c:25339 config/tc-arm.c:25340 msgid "use -mcpu=arm710c" msgstr "" -#: config/tc-arm.c:25337 config/tc-arm.c:25338 +#: config/tc-arm.c:25341 config/tc-arm.c:25342 msgid "use -mcpu=arm720" msgstr "" -#: config/tc-arm.c:25339 config/tc-arm.c:25340 +#: config/tc-arm.c:25343 config/tc-arm.c:25344 msgid "use -mcpu=arm7d" msgstr "" -#: config/tc-arm.c:25341 config/tc-arm.c:25342 +#: config/tc-arm.c:25345 config/tc-arm.c:25346 msgid "use -mcpu=arm7di" msgstr "" -#: config/tc-arm.c:25343 config/tc-arm.c:25344 +#: config/tc-arm.c:25347 config/tc-arm.c:25348 msgid "use -mcpu=arm7m" msgstr "" -#: config/tc-arm.c:25345 config/tc-arm.c:25346 +#: config/tc-arm.c:25349 config/tc-arm.c:25350 msgid "use -mcpu=arm7dm" msgstr "" -#: config/tc-arm.c:25347 config/tc-arm.c:25348 +#: config/tc-arm.c:25351 config/tc-arm.c:25352 msgid "use -mcpu=arm7dmi" msgstr "" -#: config/tc-arm.c:25349 config/tc-arm.c:25350 +#: config/tc-arm.c:25353 config/tc-arm.c:25354 msgid "use -mcpu=arm7100" msgstr "" -#: config/tc-arm.c:25351 config/tc-arm.c:25352 +#: config/tc-arm.c:25355 config/tc-arm.c:25356 msgid "use -mcpu=arm7500" msgstr "" -#: config/tc-arm.c:25353 config/tc-arm.c:25354 +#: config/tc-arm.c:25357 config/tc-arm.c:25358 msgid "use -mcpu=arm7500fe" msgstr "" -#: config/tc-arm.c:25355 config/tc-arm.c:25356 config/tc-arm.c:25357 -#: config/tc-arm.c:25358 +#: config/tc-arm.c:25359 config/tc-arm.c:25360 config/tc-arm.c:25361 +#: config/tc-arm.c:25362 msgid "use -mcpu=arm7tdmi" msgstr "" -#: config/tc-arm.c:25359 config/tc-arm.c:25360 +#: config/tc-arm.c:25363 config/tc-arm.c:25364 msgid "use -mcpu=arm710t" msgstr "" -#: config/tc-arm.c:25361 config/tc-arm.c:25362 +#: config/tc-arm.c:25365 config/tc-arm.c:25366 msgid "use -mcpu=arm720t" msgstr "" -#: config/tc-arm.c:25363 config/tc-arm.c:25364 +#: config/tc-arm.c:25367 config/tc-arm.c:25368 msgid "use -mcpu=arm740t" msgstr "" -#: config/tc-arm.c:25365 config/tc-arm.c:25366 +#: config/tc-arm.c:25369 config/tc-arm.c:25370 msgid "use -mcpu=arm8" msgstr "" -#: config/tc-arm.c:25367 config/tc-arm.c:25368 +#: config/tc-arm.c:25371 config/tc-arm.c:25372 msgid "use -mcpu=arm810" msgstr "" -#: config/tc-arm.c:25369 config/tc-arm.c:25370 +#: config/tc-arm.c:25373 config/tc-arm.c:25374 msgid "use -mcpu=arm9" msgstr "" -#: config/tc-arm.c:25371 config/tc-arm.c:25372 +#: config/tc-arm.c:25375 config/tc-arm.c:25376 msgid "use -mcpu=arm9tdmi" msgstr "" -#: config/tc-arm.c:25373 config/tc-arm.c:25374 +#: config/tc-arm.c:25377 config/tc-arm.c:25378 msgid "use -mcpu=arm920" msgstr "" -#: config/tc-arm.c:25375 config/tc-arm.c:25376 +#: config/tc-arm.c:25379 config/tc-arm.c:25380 msgid "use -mcpu=arm940" msgstr "" -#: config/tc-arm.c:25377 +#: config/tc-arm.c:25381 msgid "use -mcpu=strongarm" msgstr "" -#: config/tc-arm.c:25379 +#: config/tc-arm.c:25383 msgid "use -mcpu=strongarm110" msgstr "" -#: config/tc-arm.c:25381 +#: config/tc-arm.c:25385 msgid "use -mcpu=strongarm1100" msgstr "" -#: config/tc-arm.c:25383 +#: config/tc-arm.c:25387 msgid "use -mcpu=strongarm1110" msgstr "" -#: config/tc-arm.c:25384 +#: config/tc-arm.c:25388 msgid "use -mcpu=xscale" msgstr "" -#: config/tc-arm.c:25385 +#: config/tc-arm.c:25389 msgid "use -mcpu=iwmmxt" msgstr "" -#: config/tc-arm.c:25386 +#: config/tc-arm.c:25390 msgid "use -mcpu=all" msgstr "" #. Architecture variants -- don't add any more to this list either. -#: config/tc-arm.c:25389 config/tc-arm.c:25390 +#: config/tc-arm.c:25393 config/tc-arm.c:25394 msgid "use -march=armv2" msgstr "" -#: config/tc-arm.c:25391 config/tc-arm.c:25392 +#: config/tc-arm.c:25395 config/tc-arm.c:25396 msgid "use -march=armv2a" msgstr "" -#: config/tc-arm.c:25393 config/tc-arm.c:25394 +#: config/tc-arm.c:25397 config/tc-arm.c:25398 msgid "use -march=armv3" msgstr "" -#: config/tc-arm.c:25395 config/tc-arm.c:25396 +#: config/tc-arm.c:25399 config/tc-arm.c:25400 msgid "use -march=armv3m" msgstr "" -#: config/tc-arm.c:25397 config/tc-arm.c:25398 +#: config/tc-arm.c:25401 config/tc-arm.c:25402 msgid "use -march=armv4" msgstr "" -#: config/tc-arm.c:25399 config/tc-arm.c:25400 +#: config/tc-arm.c:25403 config/tc-arm.c:25404 msgid "use -march=armv4t" msgstr "" -#: config/tc-arm.c:25401 config/tc-arm.c:25402 +#: config/tc-arm.c:25405 config/tc-arm.c:25406 msgid "use -march=armv5" msgstr "" -#: config/tc-arm.c:25403 config/tc-arm.c:25404 +#: config/tc-arm.c:25407 config/tc-arm.c:25408 msgid "use -march=armv5t" msgstr "" -#: config/tc-arm.c:25405 config/tc-arm.c:25406 +#: config/tc-arm.c:25409 config/tc-arm.c:25410 msgid "use -march=armv5te" msgstr "" #. Floating point variants -- don't add any more to this list either. -#: config/tc-arm.c:25409 +#: config/tc-arm.c:25413 msgid "use -mfpu=fpe" msgstr "" -#: config/tc-arm.c:25410 +#: config/tc-arm.c:25414 msgid "use -mfpu=fpa10" msgstr "" -#: config/tc-arm.c:25411 +#: config/tc-arm.c:25415 msgid "use -mfpu=fpa11" msgstr "" -#: config/tc-arm.c:25413 +#: config/tc-arm.c:25417 msgid "use either -mfpu=softfpa or -mfpu=softvfp" msgstr "" -#: config/tc-arm.c:25937 +#: config/tc-arm.c:25942 msgid "extension does not apply to the base architecture" msgstr "" -#: config/tc-arm.c:25962 +#: config/tc-arm.c:25967 msgid "architectural extensions must be specified in alphabetical order" msgstr "" -#: config/tc-arm.c:26077 config/tc-arm.c:26797 +#: config/tc-arm.c:26082 config/tc-arm.c:26802 #, c-format msgid "unknown floating point format `%s'\n" msgstr "" -#: config/tc-arm.c:26093 +#: config/tc-arm.c:26098 #, c-format msgid "unknown floating point abi `%s'\n" msgstr "" -#: config/tc-arm.c:26109 +#: config/tc-arm.c:26114 #, c-format msgid "unknown EABI `%s'\n" msgstr "" -#: config/tc-arm.c:26129 +#: config/tc-arm.c:26134 #, c-format msgid "unknown implicit IT mode `%s', should be arm, thumb, always, or never." msgstr "" -#: config/tc-arm.c:26152 config/tc-metag.c:5913 +#: config/tc-arm.c:26157 config/tc-metag.c:5913 msgid "<fpu name>\t assemble for FPU architecture <fpu name>" msgstr "" -#: config/tc-arm.c:26154 +#: config/tc-arm.c:26159 msgid "<abi>\t assemble for floating point ABI <abi>" msgstr "" -#: config/tc-arm.c:26157 +#: config/tc-arm.c:26162 msgid "<ver>\t\t assemble for eabi version <ver>" msgstr "" -#: config/tc-arm.c:26160 +#: config/tc-arm.c:26165 msgid "<mode>\t controls implicit insertion of IT instructions" msgstr "" -#: config/tc-arm.c:26162 +#: config/tc-arm.c:26167 msgid "\t\t\t TI CodeComposer Studio syntax compatibility mode" msgstr "" -#: config/tc-arm.c:26264 +#: config/tc-arm.c:26269 #, c-format msgid " ARM-specific assembler options:\n" msgstr "" -#: config/tc-arm.c:26284 +#: config/tc-arm.c:26289 #, c-format msgid " --fix-v4bx Allow BX in ARMv4 code\n" msgstr "" -#: config/tc-arm.c:26747 +#: config/tc-arm.c:26752 #, c-format msgid "" "architectural extension `%s' is not allowed for the current base architecture" msgstr "" -#: config/tc-arm.c:26766 +#: config/tc-arm.c:26771 #, c-format msgid "unknown architecture extension `%s'\n" msgstr "" @@ -4977,7 +4974,7 @@ msgstr "" msgid "illegal expression" msgstr "" -#: config/tc-avr.c:801 config/tc-avr.c:1773 +#: config/tc-avr.c:801 config/tc-avr.c:1773 config/tc-pru.c:1871 msgid "`)' required" msgstr "" @@ -5051,7 +5048,7 @@ msgid "skipping two-word instruction" msgstr "" #: config/tc-avr.c:1392 config/tc-avr.c:1408 config/tc-avr.c:1539 -#: config/tc-msp430.c:4052 config/tc-msp430.c:4071 +#: config/tc-msp430.c:4051 config/tc-msp430.c:4070 #, c-format msgid "odd address operand: %ld" msgstr "" @@ -5059,7 +5056,7 @@ msgstr "" #: config/tc-avr.c:1400 config/tc-avr.c:1419 config/tc-avr.c:1437 #: config/tc-avr.c:1448 config/tc-avr.c:1464 config/tc-avr.c:1472 #: config/tc-avr.c:1567 config/tc-avr.c:1574 config/tc-d10v.c:503 -#: config/tc-d30v.c:553 config/tc-msp430.c:4060 config/tc-msp430.c:4078 +#: config/tc-d30v.c:553 config/tc-msp430.c:4059 config/tc-msp430.c:4077 #, c-format msgid "operand out of range: %ld" msgstr "" @@ -5070,7 +5067,7 @@ msgid "operand out of range: 0x%lx" msgstr "" #: config/tc-avr.c:1560 config/tc-d10v.c:1590 config/tc-d30v.c:2034 -#: config/tc-msp430.c:4149 +#: config/tc-msp430.c:4148 #, c-format msgid "line %d: unknown relocation type: 0x%x" msgstr "" @@ -5082,7 +5079,7 @@ msgstr "" #. xgettext:c-format. #: config/tc-avr.c:1643 config/tc-bfin.c:825 config/tc-d10v.c:1462 #: config/tc-d30v.c:1771 config/tc-metag.c:7022 config/tc-mn10200.c:779 -#: config/tc-mn10300.c:2177 config/tc-msp430.c:4197 config/tc-ppc.c:7153 +#: config/tc-mn10300.c:2177 config/tc-msp430.c:4196 config/tc-ppc.c:7179 #: config/tc-spu.c:879 config/tc-spu.c:1090 config/tc-v850.c:3368 #: config/tc-z80.c:2059 #, c-format @@ -5091,7 +5088,7 @@ msgstr "" #: config/tc-avr.c:1665 config/tc-ft32.c:222 config/tc-h8300.c:1960 #: config/tc-mcore.c:880 config/tc-microblaze.c:927 config/tc-moxie.c:182 -#: config/tc-msp430.c:3906 config/tc-pj.c:253 config/tc-sh.c:2591 +#: config/tc-pj.c:253 config/tc-sh.c:2591 config/tc-wasm32.c:747 #: config/tc-z8k.c:1223 msgid "can't find opcode " msgstr "" @@ -5105,9 +5102,9 @@ msgstr "" msgid "garbage at end of line" msgstr "" -#: config/tc-avr.c:1822 +#: config/tc-avr.c:1822 config/tc-pru.c:1903 #, c-format -msgid "illegal %srelocation size: %d" +msgid "illegal %s relocation size: %d" msgstr "" #: config/tc-avr.c:1935 config/tc-avr.c:1990 @@ -5209,12 +5206,12 @@ msgstr "" msgid "internal error: reloc %d (`%s') not supported by object file format" msgstr "" -#: config/tc-cr16.c:691 config/tc-i386.c:10626 config/tc-s390.c:2107 +#: config/tc-cr16.c:691 config/tc-i386.c:10701 config/tc-s390.c:2109 msgid "GOT already in symbol table" msgstr "" -#: config/tc-cr16.c:808 config/tc-crx.c:572 config/tc-crx.c:591 -#: config/tc-m68k.c:4657 config/tc-tilegx.c:319 config/tc-tilepro.c:256 +#: config/tc-cr16.c:808 config/tc-m68k.c:4657 config/tc-tilegx.c:319 +#: config/tc-tilepro.c:256 #, c-format msgid "Internal Error: Can't hash %s: %s" msgstr "" @@ -5250,13 +5247,12 @@ msgid "Unknown register: `%d'" msgstr "" #. Issue a error message when register is illegal. -#: config/tc-cr16.c:1121 config/tc-crx.c:1137 +#: config/tc-cr16.c:1121 #, c-format msgid "Illegal register (`%s') in Instruction: `%s'" msgstr "" -#: config/tc-cr16.c:1194 config/tc-cr16.c:1269 config/tc-crx.c:759 -#: config/tc-crx.c:779 config/tc-crx.c:794 +#: config/tc-cr16.c:1194 config/tc-cr16.c:1269 #, c-format msgid "Illegal register `%s' in Instruction `%s'" msgstr "" @@ -5397,14 +5393,14 @@ msgstr "" #. Give an error if a frag containing code is not aligned to a 2-byte #. boundary. #: config/tc-cr16.c:2482 config/tc-cr16.h:74 config/tc-crx.c:1956 -#: config/tc-crx.h:77 config/tc-ppc.c:3418 config/tc-ppc.c:6366 +#: config/tc-crx.h:77 config/tc-ppc.c:3480 config/tc-ppc.c:6428 msgid "instruction address is not a multiple of 2" msgstr "" #: config/tc-cr16.c:2505 config/tc-cris.c:1556 config/tc-cris.c:1564 #: config/tc-crx.c:1992 config/tc-dlx.c:692 config/tc-hppa.c:3212 #: config/tc-hppa.c:3219 config/tc-i860.c:490 config/tc-i860.c:507 -#: config/tc-i860.c:987 config/tc-sparc.c:1790 config/tc-sparc.c:1798 +#: config/tc-i860.c:987 config/tc-sparc.c:1792 config/tc-sparc.c:1800 #, c-format msgid "Unknown opcode: `%s'" msgstr "" @@ -5414,7 +5410,7 @@ msgstr "" msgid "internal inconsistency problem in %s: fr_symbol %lx" msgstr "" -#: config/tc-cris.c:554 config/tc-m68hc11.c:3897 config/tc-msp430.c:4547 +#: config/tc-cris.c:554 config/tc-m68hc11.c:3897 config/tc-msp430.c:4546 #, c-format msgid "internal inconsistency problem in %s: resolved symbol" msgstr "" @@ -5726,19 +5722,35 @@ msgstr "" msgid ".arch <arch> requires a matching --march=... option" msgstr "" +#: config/tc-crx.c:572 config/tc-crx.c:591 +#, c-format +msgid "Internal error: Can't hash %s: %s" +msgstr "" + +#: config/tc-crx.c:759 config/tc-crx.c:779 config/tc-crx.c:794 +#, c-format +msgid "Illegal register `%s' in instruction `%s'" +msgstr "" + #: config/tc-crx.c:822 #, c-format msgid "Illegal Scale - `%d'" msgstr "" +#. Issue a error message when register is illegal. +#: config/tc-crx.c:1137 +#, c-format +msgid "Illegal register (`%s') in instruction: `%s'" +msgstr "" + #: config/tc-crx.c:1264 #, c-format -msgid "Illegal Co-processor register in Instruction `%s' " +msgid "Illegal co-processor register in instruction `%s'" msgstr "" #: config/tc-crx.c:1271 #, c-format -msgid "Illegal Co-processor special register in Instruction `%s' " +msgid "Illegal co-processor special register in instruction `%s'" msgstr "" #: config/tc-crx.c:1593 @@ -5757,7 +5769,7 @@ msgid "Operand value is not within upper 64 KB (arg %d)" msgstr "" #: config/tc-crx.c:1736 -msgid "Invalid Register in Register List" +msgid "Invalid register in register list" msgstr "" #: config/tc-crx.c:1790 @@ -5954,7 +5966,7 @@ msgid "" "-O Make adjacent short instructions parallel if " "possible.\n" "-n Warn about all NOPs inserted by the assembler.\n" -"-N\t\t\tWarn about NOPs inserted after word multiplies.\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" @@ -6084,7 +6096,7 @@ msgstr "" msgid "line %d: unable to place address of symbol '%s' into a quad" msgstr "" -#: config/tc-d30v.c:2053 +#: config/tc-d30v.c:2053 config/tc-pru.c:216 config/tc-pru.c:331 #, c-format msgid "Alignment too large: %d assumed" msgstr "" @@ -6097,9 +6109,9 @@ msgstr "" msgid ".endfunc missing for previous .proc" msgstr "" -#: config/tc-dlx.c:295 config/tc-i860.c:226 config/tc-mips.c:3512 +#: config/tc-dlx.c:295 config/tc-i860.c:226 config/tc-mips.c:3523 #: config/tc-nios2.c:3626 config/tc-nios2.c:3640 config/tc-nios2.c:3655 -#: config/tc-riscv.c:603 +#: config/tc-pru.c:1564 config/tc-pru.c:1578 config/tc-riscv.c:611 #, c-format msgid "internal error: can't hash `%s': %s\n" msgstr "" @@ -6107,7 +6119,8 @@ msgstr "" #. Probably a memory allocation problem? Give up now. #: config/tc-dlx.c:302 config/tc-hppa.c:8272 config/tc-nios2.c:1440 #: config/tc-nios2.c:3629 config/tc-nios2.c:3643 config/tc-nios2.c:3658 -#: config/tc-riscv.c:606 config/tc-riscv.c:614 config/tc-sparc.c:1060 +#: config/tc-pru.c:1567 config/tc-pru.c:1581 config/tc-riscv.c:614 +#: config/tc-riscv.c:622 config/tc-sparc.c:1061 msgid "Broken assembler. No assembly attempted." msgstr "" @@ -6178,7 +6191,7 @@ msgid "Invalid expression after # number\n" msgstr "" #: config/tc-dlx.c:1199 config/tc-i960.c:2637 config/tc-m32r.c:2276 -#: config/tc-nds32.c:6639 config/tc-sparc.c:3982 +#: config/tc-nds32.c:6639 config/tc-sparc.c:4021 #, c-format msgid "internal error: can't export reloc type %d (`%s')" msgstr "" @@ -6321,7 +6334,7 @@ msgstr "" #: config/tc-frv.c:472 #, c-format msgid "" -"-mlibrary-pic Mark generated file as using position indepedent code for " +"-mlibrary-pic Mark generated file as using position independent code for " "libraries\n" msgstr "" @@ -6548,7 +6561,7 @@ msgstr "" #. This seems more sane than saying "too many operands". We'll #. get here only if the trailing trash starts with a comma. -#: config/tc-h8300.c:1846 config/tc-mips.c:13845 config/tc-mips.c:13910 +#: config/tc-h8300.c:1846 config/tc-mips.c:13854 config/tc-mips.c:13924 #: config/tc-mmix.c:479 config/tc-mmix.c:491 config/tc-mmix.c:2533 #: config/tc-mmix.c:2557 config/tc-mmix.c:2830 msgid "invalid operands" @@ -7030,7 +7043,7 @@ msgstr "" msgid "-R option not supported on this target." msgstr "" -#: config/tc-hppa.c:8253 config/tc-sparc.c:1015 config/tc-sparc.c:1052 +#: config/tc-hppa.c:8253 config/tc-sparc.c:1016 config/tc-sparc.c:1053 #, c-format msgid "Internal error: can't hash `%s': %s\n" msgstr "" @@ -7040,13 +7053,13 @@ msgstr "" msgid "internal error: losing opcode: `%s' \"%s\"\n" msgstr "" -#: config/tc-i370.c:418 config/tc-ppc.c:1211 config/tc-s390.c:430 -#: config/tc-s390.c:437 +#: config/tc-i370.c:418 config/tc-ppc.c:1264 config/tc-s390.c:432 +#: config/tc-s390.c:439 #, c-format msgid "invalid switch -m%s" msgstr "" -#: config/tc-i370.c:515 config/tc-s390.c:536 +#: config/tc-i370.c:515 config/tc-s390.c:538 #, c-format msgid "Internal assembler error for instruction %s" msgstr "" @@ -7056,7 +7069,7 @@ msgstr "" msgid "Internal assembler error for macro %s" msgstr "" -#: config/tc-i370.c:629 config/tc-ppc.c:2014 +#: config/tc-i370.c:629 config/tc-ppc.c:2067 msgid "identifier+constant@got means identifier@got+constant" msgstr "" @@ -7087,8 +7100,8 @@ msgid "Expected comma after symbol-name: rest of line ignored." msgstr "" #: config/tc-i370.c:1068 config/tc-m32r.c:1512 config/tc-microblaze.c:212 -#: config/tc-ppc.c:2174 config/tc-ppc.c:3674 config/tc-ppc.c:3716 -#: config/tc-ppc.c:5276 +#: config/tc-ppc.c:2227 config/tc-ppc.c:3736 config/tc-ppc.c:3778 +#: config/tc-ppc.c:5338 msgid "ignoring bad alignment" msgstr "" @@ -7148,20 +7161,20 @@ msgstr "" #: config/tc-i370.c:1777 config/tc-i370.c:1786 #, c-format -msgid "droping register %d in section %s does not match using register %d" +msgid "dropping register %d in section %s does not match using register %d" msgstr "" #: config/tc-i370.c:1790 #, c-format -msgid "droping register %d in section %s previously used in section %s" +msgid "dropping register %d in section %s previously used in section %s" msgstr "" -#: config/tc-i370.c:1846 config/tc-ppc.c:3506 +#: config/tc-i370.c:1846 config/tc-ppc.c:3568 msgid "wrong number of operands" msgstr "" #: config/tc-i370.c:1928 config/tc-mn10200.c:896 config/tc-mn10300.c:1253 -#: config/tc-s390.c:1687 config/tc-v850.c:2328 +#: config/tc-s390.c:1689 config/tc-v850.c:2328 #, c-format msgid "Unrecognized opcode: `%s'" msgstr "" @@ -7177,7 +7190,7 @@ msgstr "" #. xgettext:c-format. #: config/tc-i370.c:2207 config/tc-mn10200.c:1139 config/tc-mn10300.c:1821 -#: config/tc-ppc.c:3362 config/tc-s390.c:1600 config/tc-v850.c:3043 +#: config/tc-ppc.c:3424 config/tc-s390.c:1602 config/tc-v850.c:3043 #, c-format msgid "junk at end of line: `%s'" msgstr "" @@ -7187,727 +7200,727 @@ msgstr "" msgid "Internal Error: bad instruction length" msgstr "" -#: config/tc-i386.c:2121 +#: config/tc-i386.c:2137 #, c-format msgid "%s shortened to %s" msgstr "" -#: config/tc-i386.c:2207 +#: config/tc-i386.c:2223 msgid "same type of prefix used twice" msgstr "" -#: config/tc-i386.c:2234 +#: config/tc-i386.c:2250 #, c-format msgid "64bit mode not supported on `%s'." msgstr "" -#: config/tc-i386.c:2243 +#: config/tc-i386.c:2259 #, c-format msgid "32bit mode not supported on `%s'." msgstr "" -#: config/tc-i386.c:2283 +#: config/tc-i386.c:2299 msgid "bad argument to syntax directive." msgstr "" -#: config/tc-i386.c:2346 +#: config/tc-i386.c:2362 #, c-format msgid "bad argument to %s_check directive." msgstr "" -#: config/tc-i386.c:2350 +#: config/tc-i386.c:2366 #, c-format msgid "missing argument for %s_check directive" msgstr "" -#: config/tc-i386.c:2390 +#: config/tc-i386.c:2406 #, c-format msgid "`%s' is not supported on `%s'" msgstr "" -#: config/tc-i386.c:2492 +#: config/tc-i386.c:2508 #, c-format msgid "no such architecture: `%s'" msgstr "" -#: config/tc-i386.c:2497 +#: config/tc-i386.c:2513 msgid "missing cpu architecture" msgstr "" -#: config/tc-i386.c:2514 +#: config/tc-i386.c:2530 #, c-format msgid "no such architecture modifier: `%s'" msgstr "" -#: config/tc-i386.c:2529 config/tc-i386.c:2559 +#: config/tc-i386.c:2545 config/tc-i386.c:2575 msgid "Intel L1OM is 64bit ELF only" msgstr "" -#: config/tc-i386.c:2536 config/tc-i386.c:2566 +#: config/tc-i386.c:2552 config/tc-i386.c:2582 msgid "Intel K1OM is 64bit ELF only" msgstr "" -#: config/tc-i386.c:2543 config/tc-i386.c:2580 +#: config/tc-i386.c:2559 config/tc-i386.c:2596 msgid "Intel MCU is 32bit ELF only" msgstr "" -#: config/tc-i386.c:2587 config/tc-i386.c:10524 +#: config/tc-i386.c:2603 config/tc-i386.c:10599 msgid "unknown architecture" msgstr "" -#: config/tc-i386.c:2621 config/tc-i386.c:2643 +#: config/tc-i386.c:2640 config/tc-i386.c:2662 #, c-format msgid "can't hash %s: %s" msgstr "" -#: config/tc-i386.c:2939 +#: config/tc-i386.c:2961 msgid "there are no pc-relative size relocations" msgstr "" -#: config/tc-i386.c:2951 +#: config/tc-i386.c:2973 #, c-format msgid "unknown relocation (%u)" msgstr "" -#: config/tc-i386.c:2953 +#: config/tc-i386.c:2975 #, c-format msgid "%u-byte relocation cannot be applied to %u-byte field" msgstr "" -#: config/tc-i386.c:2957 +#: config/tc-i386.c:2979 msgid "non-pc-relative relocation for pc-relative field" msgstr "" -#: config/tc-i386.c:2962 +#: config/tc-i386.c:2984 msgid "relocated field and relocation type differ in signedness" msgstr "" -#: config/tc-i386.c:2971 +#: config/tc-i386.c:2993 msgid "there are no unsigned pc-relative relocations" msgstr "" -#: config/tc-i386.c:2979 +#: config/tc-i386.c:3001 #, c-format msgid "cannot do %u byte pc-relative relocation" msgstr "" -#: config/tc-i386.c:2996 +#: config/tc-i386.c:3018 #, c-format msgid "cannot do %s %u byte relocation" msgstr "" -#: config/tc-i386.c:3449 config/tc-i386.c:3476 +#: config/tc-i386.c:3473 config/tc-i386.c:3500 #, c-format msgid "can't use register '%s%s' as operand %d in '%s'." msgstr "" -#: config/tc-i386.c:3516 config/tc-i386.c:3656 +#: config/tc-i386.c:3540 config/tc-i386.c:3680 #, c-format msgid "invalid instruction `%s' after `%s'" msgstr "" -#: config/tc-i386.c:3522 +#: config/tc-i386.c:3546 #, c-format msgid "missing `lock' with `%s'" msgstr "" -#: config/tc-i386.c:3529 +#: config/tc-i386.c:3553 #, c-format msgid "instruction `%s' after `xacquire' not allowed" msgstr "" -#: config/tc-i386.c:3536 +#: config/tc-i386.c:3560 #, c-format msgid "memory destination needed for instruction `%s' after `xrelease'" msgstr "" -#: config/tc-i386.c:3630 +#: config/tc-i386.c:3654 #, c-format msgid "SSE instruction `%s' is used" msgstr "" -#: config/tc-i386.c:3644 config/tc-i386.c:5453 +#: config/tc-i386.c:3668 config/tc-i386.c:5526 #, c-format msgid "ambiguous operand size for `%s'" msgstr "" -#: config/tc-i386.c:3669 +#: config/tc-i386.c:3693 msgid "expecting lockable instruction after `lock'" msgstr "" -#: config/tc-i386.c:3679 +#: config/tc-i386.c:3703 msgid "expecting valid branch instruction after `bnd'" msgstr "" -#: config/tc-i386.c:3684 +#: config/tc-i386.c:3708 msgid "32-bit address isn't allowed in 64-bit MPX instructions." msgstr "" -#: config/tc-i386.c:3688 +#: config/tc-i386.c:3712 msgid "16-bit address isn't allowed in MPX instructions" msgstr "" #. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc. -#: config/tc-i386.c:3744 +#: config/tc-i386.c:3768 #, c-format msgid "translating to `%sp'" msgstr "" -#: config/tc-i386.c:3751 +#: config/tc-i386.c:3775 #, c-format msgid "instruction `%s' isn't supported in 16-bit mode." msgstr "" -#: config/tc-i386.c:3811 +#: config/tc-i386.c:3835 #, c-format msgid "can't encode register '%s%s' in an instruction requiring REX prefix." msgstr "" -#: config/tc-i386.c:3851 config/tc-i386.c:3993 +#: config/tc-i386.c:3875 config/tc-i386.c:4057 #, c-format msgid "no such instruction: `%s'" msgstr "" -#: config/tc-i386.c:3862 config/tc-i386.c:4026 +#: config/tc-i386.c:3886 config/tc-i386.c:4090 #, c-format msgid "invalid character %s in mnemonic" msgstr "" -#: config/tc-i386.c:3869 +#: config/tc-i386.c:3893 msgid "expecting prefix; got nothing" msgstr "" -#: config/tc-i386.c:3871 +#: config/tc-i386.c:3895 msgid "expecting mnemonic; got nothing" msgstr "" -#: config/tc-i386.c:3886 config/tc-i386.c:4044 +#: config/tc-i386.c:3910 config/tc-i386.c:4108 #, c-format msgid "`%s' is only supported in 64-bit mode" msgstr "" -#: config/tc-i386.c:3887 config/tc-i386.c:4043 +#: config/tc-i386.c:3911 config/tc-i386.c:4107 #, c-format msgid "`%s' is not supported in 64-bit mode" msgstr "" -#: config/tc-i386.c:3899 +#: config/tc-i386.c:3923 #, c-format msgid "redundant %s prefix" msgstr "" -#: config/tc-i386.c:4050 +#: config/tc-i386.c:4114 #, c-format msgid "`%s' is not supported on `%s%s'" msgstr "" -#: config/tc-i386.c:4061 +#: config/tc-i386.c:4125 msgid "use .code16 to ensure correct addressing mode" msgstr "" -#: config/tc-i386.c:4085 +#: config/tc-i386.c:4149 #, c-format msgid "invalid character %s before operand %d" msgstr "" -#: config/tc-i386.c:4099 +#: config/tc-i386.c:4163 #, c-format msgid "unbalanced parenthesis in operand %d." msgstr "" -#: config/tc-i386.c:4102 +#: config/tc-i386.c:4166 #, c-format msgid "unbalanced brackets in operand %d." msgstr "" -#: config/tc-i386.c:4111 +#: config/tc-i386.c:4175 #, c-format msgid "invalid character %s in operand %d" msgstr "" -#: config/tc-i386.c:4139 +#: config/tc-i386.c:4202 #, c-format msgid "spurious operands; (%d operands/instruction max)" msgstr "" -#: config/tc-i386.c:4162 +#: config/tc-i386.c:4226 msgid "expecting operand after ','; got nothing" msgstr "" -#: config/tc-i386.c:4167 +#: config/tc-i386.c:4231 msgid "expecting operand before ','; got nothing" msgstr "" -#: config/tc-i386.c:4544 +#: config/tc-i386.c:4608 msgid "mask, index, and destination registers should be distinct" msgstr "" -#: config/tc-i386.c:4559 +#: config/tc-i386.c:4623 msgid "index and destination registers should be distinct" msgstr "" -#: config/tc-i386.c:5112 +#: config/tc-i386.c:5185 msgid "operand size mismatch" msgstr "" -#: config/tc-i386.c:5115 +#: config/tc-i386.c:5188 msgid "operand type mismatch" msgstr "" -#: config/tc-i386.c:5118 +#: config/tc-i386.c:5191 msgid "register type mismatch" msgstr "" -#: config/tc-i386.c:5121 +#: config/tc-i386.c:5194 msgid "number of operands mismatch" msgstr "" -#: config/tc-i386.c:5124 +#: config/tc-i386.c:5197 msgid "invalid instruction suffix" msgstr "" -#: config/tc-i386.c:5127 +#: config/tc-i386.c:5200 msgid "constant doesn't fit in 4 bits" msgstr "" -#: config/tc-i386.c:5130 +#: config/tc-i386.c:5203 msgid "only supported with old gcc" msgstr "" -#: config/tc-i386.c:5133 +#: config/tc-i386.c:5206 msgid "unsupported with Intel mnemonic" msgstr "" -#: config/tc-i386.c:5136 +#: config/tc-i386.c:5209 msgid "unsupported syntax" msgstr "" -#: config/tc-i386.c:5139 +#: config/tc-i386.c:5212 #, c-format msgid "unsupported instruction `%s'" msgstr "" -#: config/tc-i386.c:5143 +#: config/tc-i386.c:5216 msgid "invalid VSIB address" msgstr "" -#: config/tc-i386.c:5146 +#: config/tc-i386.c:5219 msgid "mask, index, and destination registers must be distinct" msgstr "" -#: config/tc-i386.c:5149 +#: config/tc-i386.c:5222 msgid "unsupported vector index register" msgstr "" -#: config/tc-i386.c:5152 +#: config/tc-i386.c:5225 msgid "unsupported broadcast" msgstr "" -#: config/tc-i386.c:5155 +#: config/tc-i386.c:5228 msgid "broadcast not on source memory operand" msgstr "" -#: config/tc-i386.c:5158 +#: config/tc-i386.c:5231 msgid "broadcast is needed for operand of such type" msgstr "" -#: config/tc-i386.c:5161 +#: config/tc-i386.c:5234 msgid "unsupported masking" msgstr "" -#: config/tc-i386.c:5164 +#: config/tc-i386.c:5237 msgid "mask not on destination operand" msgstr "" -#: config/tc-i386.c:5167 +#: config/tc-i386.c:5240 msgid "default mask isn't allowed" msgstr "" -#: config/tc-i386.c:5170 +#: config/tc-i386.c:5243 msgid "unsupported static rounding/sae" msgstr "" -#: config/tc-i386.c:5174 +#: config/tc-i386.c:5247 msgid "RC/SAE operand must precede immediate operands" msgstr "" -#: config/tc-i386.c:5176 +#: config/tc-i386.c:5249 msgid "RC/SAE operand must follow immediate operands" msgstr "" -#: config/tc-i386.c:5179 config/tc-metag.c:4789 config/tc-metag.c:5530 +#: config/tc-i386.c:5252 config/tc-metag.c:4789 config/tc-metag.c:5530 #: config/tc-metag.c:5552 msgid "invalid register operand" msgstr "" -#: config/tc-i386.c:5182 +#: config/tc-i386.c:5255 #, c-format msgid "%s for `%s'" msgstr "" -#: config/tc-i386.c:5193 +#: config/tc-i386.c:5266 #, c-format msgid "indirect %s without `*'" msgstr "" #. Warn them that a data or address size prefix doesn't #. affect assembly of the next line of code. -#: config/tc-i386.c:5201 +#: config/tc-i386.c:5274 #, c-format msgid "stand-alone `%s' prefix" msgstr "" -#: config/tc-i386.c:5235 config/tc-i386.c:5251 +#: config/tc-i386.c:5308 config/tc-i386.c:5324 #, c-format msgid "`%s' operand %d must use `%ses' segment" msgstr "" #. We have to know the operand size for crc32. -#: config/tc-i386.c:5305 +#: config/tc-i386.c:5378 #, c-format msgid "ambiguous memory operand size for `%s`" msgstr "" -#: config/tc-i386.c:5426 +#: config/tc-i386.c:5499 msgid "" "no instruction mnemonic suffix given and no register operands; can't size " "instruction" msgstr "" -#: config/tc-i386.c:5568 config/tc-i386.c:5642 config/tc-i386.c:5753 +#: config/tc-i386.c:5641 config/tc-i386.c:5715 config/tc-i386.c:5826 #, c-format msgid "using `%s%s' instead of `%s%s' due to `%c' suffix" msgstr "" -#: config/tc-i386.c:5595 config/tc-i386.c:5619 config/tc-i386.c:5684 -#: config/tc-i386.c:5729 +#: config/tc-i386.c:5668 config/tc-i386.c:5692 config/tc-i386.c:5757 +#: config/tc-i386.c:5802 #, c-format msgid "`%s%s' not allowed with `%s%c'" msgstr "" -#: config/tc-i386.c:5636 config/tc-i386.c:5662 config/tc-i386.c:5708 -#: config/tc-i386.c:5747 +#: config/tc-i386.c:5709 config/tc-i386.c:5735 config/tc-i386.c:5781 +#: config/tc-i386.c:5820 #, c-format msgid "incorrect register `%s%s' used with `%c' suffix" msgstr "" -#: config/tc-i386.c:5816 +#: config/tc-i386.c:5889 msgid "no instruction mnemonic suffix given; can't determine immediate size" msgstr "" -#: config/tc-i386.c:5852 +#: config/tc-i386.c:5925 #, c-format msgid "the last operand of `%s' must be `%s%s'" msgstr "" -#: config/tc-i386.c:5855 +#: config/tc-i386.c:5928 #, c-format msgid "the first operand of `%s' must be `%s%s'" msgstr "" -#: config/tc-i386.c:5986 +#: config/tc-i386.c:6059 #, c-format msgid "" "the second source register `%s%s' implicitly denotes `%s%.3s%d' to `%s%.3s" "%d' source group in `%s'" msgstr "" -#: config/tc-i386.c:6023 +#: config/tc-i386.c:6096 #, c-format msgid "you can't `pop %scs'" msgstr "" #. Reversed arguments on faddp, fsubp, etc. -#: config/tc-i386.c:6052 +#: config/tc-i386.c:6125 #, c-format msgid "translating to `%s %s%s,%s%s'" msgstr "" #. Extraneous `l' suffix on fp insn. -#: config/tc-i386.c:6059 +#: config/tc-i386.c:6132 #, c-format msgid "translating to `%s %s%s'" msgstr "" -#: config/tc-i386.c:6087 +#: config/tc-i386.c:6160 #, c-format msgid "segment override on `%s' is ineffectual" msgstr "" -#: config/tc-i386.c:6903 config/tc-i386.c:7004 config/tc-i386.c:7059 +#: config/tc-i386.c:6976 config/tc-i386.c:7077 config/tc-i386.c:7132 msgid "skipping prefixes on this instruction" msgstr "" -#: config/tc-i386.c:7079 +#: config/tc-i386.c:7152 msgid "16-bit jump out of range" msgstr "" -#: config/tc-i386.c:7088 +#: config/tc-i386.c:7161 #, c-format msgid "can't handle non absolute segment in `%s'" msgstr "" -#: config/tc-i386.c:7775 config/tc-i386.c:7877 +#: config/tc-i386.c:7848 config/tc-i386.c:7950 #, c-format msgid "@%s reloc is not supported with %d-bit output format" msgstr "" -#: config/tc-i386.c:7928 +#: config/tc-i386.c:8001 #, c-format msgid "missing or invalid expression `%s'" msgstr "" -#: config/tc-i386.c:8014 +#: config/tc-i386.c:8087 #, c-format msgid "Unsupported broadcast: `%s'" msgstr "" -#: config/tc-i386.c:8029 +#: config/tc-i386.c:8102 #, c-format msgid "`%s' can't be used for write mask" msgstr "" -#: config/tc-i386.c:8052 +#: config/tc-i386.c:8125 #, c-format msgid "invalid write mask `%s'" msgstr "" -#: config/tc-i386.c:8074 config/tc-i386.c:8719 +#: config/tc-i386.c:8147 config/tc-i386.c:8792 #, c-format msgid "duplicated `%s'" msgstr "" -#: config/tc-i386.c:8084 +#: config/tc-i386.c:8157 #, c-format msgid "invalid zeroing-masking `%s'" msgstr "" -#: config/tc-i386.c:8097 +#: config/tc-i386.c:8170 #, c-format msgid "missing `}' in `%s'" msgstr "" #. We don't know this one. -#: config/tc-i386.c:8105 +#: config/tc-i386.c:8178 #, c-format msgid "unknown vector operation: `%s'" msgstr "" -#: config/tc-i386.c:8125 +#: config/tc-i386.c:8198 #, c-format msgid "at most %d immediate operands are allowed" msgstr "" -#: config/tc-i386.c:8157 config/tc-i386.c:8404 +#: config/tc-i386.c:8230 config/tc-i386.c:8477 #, c-format msgid "junk `%s' after expression" msgstr "" -#: config/tc-i386.c:8178 +#: config/tc-i386.c:8251 #, c-format msgid "missing or invalid immediate expression `%s'" msgstr "" -#: config/tc-i386.c:8201 config/tc-i386.c:8494 +#: config/tc-i386.c:8274 config/tc-i386.c:8567 #, c-format msgid "unimplemented segment %s in operand" msgstr "" -#: config/tc-i386.c:8208 +#: config/tc-i386.c:8281 #, c-format msgid "illegal immediate register operand %s" msgstr "" -#: config/tc-i386.c:8256 +#: config/tc-i386.c:8329 #, c-format msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'" msgstr "" -#: config/tc-i386.c:8265 +#: config/tc-i386.c:8338 #, c-format msgid "scale factor of %d without an index register" msgstr "" -#: config/tc-i386.c:8287 +#: config/tc-i386.c:8360 #, c-format msgid "at most %d displacement operands are allowed" msgstr "" -#: config/tc-i386.c:8460 +#: config/tc-i386.c:8533 #, c-format msgid "missing or invalid displacement expression `%s'" msgstr "" -#: config/tc-i386.c:8477 +#: config/tc-i386.c:8550 #, c-format msgid "0x%lx out range of signed 32bit displacement" msgstr "" -#: config/tc-i386.c:8617 +#: config/tc-i386.c:8690 #, c-format msgid "`%s' is not valid here (expected `%c%s%s%c')" msgstr "" -#: config/tc-i386.c:8629 +#: config/tc-i386.c:8702 #, c-format msgid "`%s' is not a valid %s expression" msgstr "" -#: config/tc-i386.c:8664 +#: config/tc-i386.c:8737 #, c-format msgid "`%s' cannot be used here" msgstr "" -#: config/tc-i386.c:8671 +#: config/tc-i386.c:8744 msgid "register scaling is being ignored here" msgstr "" -#: config/tc-i386.c:8732 +#: config/tc-i386.c:8805 #, c-format msgid "Missing '}': '%s'" msgstr "" -#: config/tc-i386.c:8738 +#: config/tc-i386.c:8811 #, c-format msgid "Junk after '}': '%s'" msgstr "" -#: config/tc-i386.c:8866 +#: config/tc-i386.c:8939 #, c-format msgid "bad memory operand `%s'" msgstr "" -#: config/tc-i386.c:8890 +#: config/tc-i386.c:8963 #, c-format msgid "junk `%s' after register" msgstr "" -#: config/tc-i386.c:8903 config/tc-i386.c:9040 config/tc-i386.c:9084 +#: config/tc-i386.c:8976 config/tc-i386.c:9113 config/tc-i386.c:9157 #, c-format msgid "bad register name `%s'" msgstr "" -#: config/tc-i386.c:8911 +#: config/tc-i386.c:8984 msgid "immediate operand illegal with absolute jump" msgstr "" -#: config/tc-i386.c:8942 +#: config/tc-i386.c:9015 #, c-format msgid "too many memory references for `%s'" msgstr "" -#: config/tc-i386.c:9029 +#: config/tc-i386.c:9102 #, c-format msgid "expecting `,' or `)' after index register in `%s'" msgstr "" -#: config/tc-i386.c:9057 +#: config/tc-i386.c:9130 #, c-format msgid "expecting `)' after scale factor in `%s'" msgstr "" -#: config/tc-i386.c:9065 +#: config/tc-i386.c:9138 #, c-format msgid "expecting index register or scale factor after `,'; got '%c'" msgstr "" -#: config/tc-i386.c:9073 +#: config/tc-i386.c:9146 #, c-format msgid "expecting `,' or `)' after base register in `%s'" msgstr "" #. It's not a memory operand; argh! -#: config/tc-i386.c:9122 +#: config/tc-i386.c:9195 #, c-format msgid "invalid char %s beginning operand %d `%s'" msgstr "" -#: config/tc-i386.c:9344 +#: config/tc-i386.c:9417 msgid "long jump required" msgstr "" -#: config/tc-i386.c:9399 +#: config/tc-i386.c:9472 msgid "jump target out of range" msgstr "" -#: config/tc-i386.c:9972 +#: config/tc-i386.c:10047 msgid "no compiled in support for x86_64" msgstr "" -#: config/tc-i386.c:9992 +#: config/tc-i386.c:10067 msgid "no compiled in support for 32bit x86_64" msgstr "" -#: config/tc-i386.c:9996 +#: config/tc-i386.c:10071 msgid "32bit x86_64 is only supported for ELF" msgstr "" -#: config/tc-i386.c:10030 config/tc-i386.c:10114 +#: config/tc-i386.c:10105 config/tc-i386.c:10189 #, c-format msgid "invalid -march= option: `%s'" msgstr "" -#: config/tc-i386.c:10124 config/tc-i386.c:10136 +#: config/tc-i386.c:10199 config/tc-i386.c:10211 #, c-format msgid "invalid -mtune= option: `%s'" msgstr "" -#: config/tc-i386.c:10145 +#: config/tc-i386.c:10220 #, c-format msgid "invalid -mmnemonic= option: `%s'" msgstr "" -#: config/tc-i386.c:10154 +#: config/tc-i386.c:10229 #, c-format msgid "invalid -msyntax= option: `%s'" msgstr "" -#: config/tc-i386.c:10181 +#: config/tc-i386.c:10256 #, c-format msgid "invalid -msse-check= option: `%s'" msgstr "" -#: config/tc-i386.c:10192 +#: config/tc-i386.c:10267 #, c-format msgid "invalid -moperand-check= option: `%s'" msgstr "" -#: config/tc-i386.c:10201 +#: config/tc-i386.c:10276 #, c-format msgid "invalid -mavxscalar= option: `%s'" msgstr "" -#: config/tc-i386.c:10216 +#: config/tc-i386.c:10291 #, c-format msgid "invalid -mevexlig= option: `%s'" msgstr "" -#: config/tc-i386.c:10229 +#: config/tc-i386.c:10304 #, c-format msgid "invalid -mevexrcig= option: `%s'" msgstr "" -#: config/tc-i386.c:10238 +#: config/tc-i386.c:10313 #, c-format msgid "invalid -mevexwig= option: `%s'" msgstr "" -#: config/tc-i386.c:10253 +#: config/tc-i386.c:10328 #, c-format msgid "invalid -momit-lock-prefix= option: `%s'" msgstr "" -#: config/tc-i386.c:10262 +#: config/tc-i386.c:10337 #, c-format msgid "invalid -mfence-as-lock-add= option: `%s'" msgstr "" -#: config/tc-i386.c:10271 +#: config/tc-i386.c:10346 #, c-format msgid "invalid -mrelax-relocations= option: `%s'" msgstr "" -#: config/tc-i386.c:10394 +#: config/tc-i386.c:10469 #, c-format msgid "" " -Q ignored\n" @@ -7915,34 +7928,34 @@ msgid "" " -k ignored\n" msgstr "" -#: config/tc-i386.c:10399 +#: config/tc-i386.c:10474 #, c-format msgid "" " -n Do not optimize code alignment\n" " -q quieten some warnings\n" msgstr "" -#: config/tc-i386.c:10403 +#: config/tc-i386.c:10478 #, c-format msgid " -s ignored\n" msgstr "" -#: config/tc-i386.c:10408 +#: config/tc-i386.c:10483 #, c-format msgid " --32/--64/--x32 generate 32bit/64bit/x32 code\n" msgstr "" -#: config/tc-i386.c:10412 +#: config/tc-i386.c:10487 #, c-format msgid " --divide do not treat `/' as a comment character\n" msgstr "" -#: config/tc-i386.c:10415 +#: config/tc-i386.c:10490 #, c-format msgid " --divide ignored\n" msgstr "" -#: config/tc-i386.c:10418 +#: config/tc-i386.c:10493 #, c-format msgid "" " -march=CPU[,+EXTENSION...]\n" @@ -7950,36 +7963,36 @@ msgid "" "of:\n" msgstr "" -#: config/tc-i386.c:10422 +#: config/tc-i386.c:10497 #, c-format msgid " EXTENSION is combination of:\n" msgstr "" -#: config/tc-i386.c:10425 +#: config/tc-i386.c:10500 #, c-format msgid " -mtune=CPU optimize for CPU, CPU is one of:\n" msgstr "" -#: config/tc-i386.c:10428 +#: config/tc-i386.c:10503 #, c-format msgid " -msse2avx encode SSE instructions with VEX prefix\n" msgstr "" -#: config/tc-i386.c:10430 +#: config/tc-i386.c:10505 #, c-format msgid "" " -msse-check=[none|error|warning]\n" " check SSE instructions\n" msgstr "" -#: config/tc-i386.c:10433 +#: config/tc-i386.c:10508 #, c-format msgid "" " -moperand-check=[none|error|warning]\n" " check operand combinations for validity\n" msgstr "" -#: config/tc-i386.c:10436 +#: config/tc-i386.c:10511 #, c-format msgid "" " -mavxscalar=[128|256] encode scalar AVX instructions with specific " @@ -7987,7 +8000,7 @@ msgid "" " length\n" msgstr "" -#: config/tc-i386.c:10439 +#: config/tc-i386.c:10514 #, c-format msgid "" " -mevexlig=[128|256|512] encode scalar EVEX instructions with specific " @@ -7995,7 +8008,7 @@ msgid "" " length\n" msgstr "" -#: config/tc-i386.c:10442 +#: config/tc-i386.c:10517 #, c-format msgid "" " -mevexwig=[0|1] encode EVEX instructions with specific EVEX.W " @@ -8003,7 +8016,7 @@ msgid "" " for EVEX.W bit ignored instructions\n" msgstr "" -#: config/tc-i386.c:10445 +#: config/tc-i386.c:10520 #, c-format msgid "" " -mevexrcig=[rne|rd|ru|rz]\n" @@ -8012,54 +8025,54 @@ msgid "" " for SAE-only ignored instructions\n" msgstr "" -#: config/tc-i386.c:10449 +#: config/tc-i386.c:10524 #, c-format msgid " -mmnemonic=[att|intel] use AT&T/Intel mnemonic\n" msgstr "" -#: config/tc-i386.c:10451 +#: config/tc-i386.c:10526 #, c-format msgid " -msyntax=[att|intel] use AT&T/Intel syntax\n" msgstr "" -#: config/tc-i386.c:10453 +#: config/tc-i386.c:10528 #, c-format msgid " -mindex-reg support pseudo index registers\n" msgstr "" -#: config/tc-i386.c:10455 +#: config/tc-i386.c:10530 #, c-format msgid " -mnaked-reg don't require `%%' prefix for registers\n" msgstr "" -#: config/tc-i386.c:10457 +#: config/tc-i386.c:10532 #, c-format msgid " -mold-gcc support old (<= 2.8.1) versions of gcc\n" msgstr "" -#: config/tc-i386.c:10459 +#: config/tc-i386.c:10534 #, c-format msgid " -madd-bnd-prefix add BND prefix for all valid branches\n" msgstr "" -#: config/tc-i386.c:10461 +#: config/tc-i386.c:10536 #, c-format msgid " -mshared disable branch optimization for shared code\n" msgstr "" -#: config/tc-i386.c:10464 +#: config/tc-i386.c:10539 #, c-format msgid " -mbig-obj generate big object files\n" msgstr "" -#: config/tc-i386.c:10467 +#: config/tc-i386.c:10542 #, c-format msgid "" " -momit-lock-prefix=[no|yes]\n" " strip all lock prefixes\n" msgstr "" -#: config/tc-i386.c:10470 +#: config/tc-i386.c:10545 #, c-format msgid "" " -mfence-as-lock-add=[no|yes]\n" @@ -8067,73 +8080,73 @@ msgid "" " lock addl $0x0, (%%{re}sp)\n" msgstr "" -#: config/tc-i386.c:10474 +#: config/tc-i386.c:10549 #, c-format msgid "" " -mrelax-relocations=[no|yes]\n" " generate relax relocations\n" msgstr "" -#: config/tc-i386.c:10477 +#: config/tc-i386.c:10552 #, c-format msgid " -mamd64 accept only AMD64 ISA\n" msgstr "" -#: config/tc-i386.c:10479 +#: config/tc-i386.c:10554 #, c-format msgid " -mintel64 accept only Intel64 ISA\n" msgstr "" -#: config/tc-i386.c:10520 +#: config/tc-i386.c:10595 #, c-format msgid "Intel MCU doesn't support `%s' architecture" msgstr "" -#: config/tc-i386.c:10577 +#: config/tc-i386.c:10652 msgid "Intel L1OM is 64bit only" msgstr "" -#: config/tc-i386.c:10583 +#: config/tc-i386.c:10658 msgid "Intel K1OM is 64bit only" msgstr "" -#: config/tc-i386.c:10589 +#: config/tc-i386.c:10664 msgid "Intel MCU is 32bit only" msgstr "" -#: config/tc-i386.c:10746 +#: config/tc-i386.c:10821 msgid "symbol size computation overflow" msgstr "" -#: config/tc-i386.c:10814 +#: config/tc-i386.c:10889 #, c-format msgid "can not do %d byte pc-relative relocation" msgstr "" -#: config/tc-i386.c:10832 +#: config/tc-i386.c:10907 #, c-format msgid "can not do %d byte relocation" msgstr "" -#: config/tc-i386.c:10900 +#: config/tc-i386.c:10975 #, c-format msgid "cannot represent relocation type %s in x32 mode" msgstr "" -#: config/tc-i386.c:10937 config/tc-s390.c:2597 +#: config/tc-i386.c:11012 config/tc-s390.c:2599 #, c-format msgid "cannot represent relocation type %s" msgstr "" -#: config/tc-i386.c:11054 +#: config/tc-i386.c:11129 msgid "bad .section directive: want a,l,w,x,M,S,G,T in string" msgstr "" -#: config/tc-i386.c:11057 +#: config/tc-i386.c:11132 msgid "bad .section directive: want a,w,x,M,S,G,T in string" msgstr "" -#: config/tc-i386.c:11076 +#: config/tc-i386.c:11151 msgid ".largecomm supported only in 64bit mode, producing .comm" msgstr "" @@ -8158,7 +8171,7 @@ msgid "Defective assembler. No assembly attempted." msgstr "" #: config/tc-i860.c:392 config/tc-i860.c:938 config/tc-m68k.c:3917 -#: config/tc-m68k.c:3949 config/tc-sparc.c:3122 +#: config/tc-m68k.c:3949 config/tc-sparc.c:3125 msgid "failed sanity check." msgstr "" @@ -8297,7 +8310,7 @@ msgstr "" msgid "architecture of opcode conflicts with that of earlier instruction(s)" msgstr "" -#: config/tc-i960.c:1421 config/tc-xtensa.c:12644 +#: config/tc-i960.c:1421 config/tc-xtensa.c:12656 msgid "too many operands" msgstr "" @@ -8317,7 +8330,7 @@ msgstr "" #: config/tc-i960.c:1649 #, c-format -msgid "improper number of operands. expecting %d, got %d" +msgid "improper number of operands. Expecting %d, got %d" msgstr "" #: config/tc-i960.c:1750 @@ -8486,7 +8499,7 @@ msgid "Section switching in code is not supported." msgstr "" #: config/tc-ia64.c:2804 -msgid " Insn slot not set in unwind record." +msgid "Insn slot not set in unwind record." msgstr "" #: config/tc-ia64.c:2878 @@ -9047,7 +9060,7 @@ msgstr "" msgid "Inserting \"%s\" into constant hash table failed: %s" msgstr "" -#: config/tc-ia64.c:7493 config/tc-riscv.c:591 config/tc-tilegx.c:263 +#: config/tc-ia64.c:7493 config/tc-riscv.c:599 config/tc-tilegx.c:263 msgid "Could not set architecture and machine" msgstr "" @@ -9304,7 +9317,7 @@ msgstr "" msgid "Unmatched high relocation" msgstr "" -#: config/tc-iq2000.c:826 config/tc-mips.c:19022 config/tc-score.c:5814 +#: config/tc-iq2000.c:826 config/tc-mips.c:19046 config/tc-score.c:5814 msgid ".end not in text section" msgstr "" @@ -9316,7 +9329,7 @@ msgstr "" msgid ".end symbol does not match .ent symbol." msgstr "" -#: config/tc-iq2000.c:842 config/tc-mips.c:19042 config/tc-score.c:5830 +#: config/tc-iq2000.c:842 config/tc-mips.c:19066 config/tc-score.c:5830 msgid ".end directive missing or unknown symbol" msgstr "" @@ -9324,7 +9337,7 @@ msgstr "" msgid "Expected simple number." msgstr "" -#: config/tc-iq2000.c:889 config/tc-mips.c:18947 config/tc-score.c:5666 +#: config/tc-iq2000.c:889 config/tc-mips.c:18971 config/tc-score.c:5666 #, c-format msgid " *input_line_pointer == '%c' 0x%02x\n" msgstr "" @@ -9351,7 +9364,7 @@ msgstr "" msgid "Unrecognised option: -hidden" msgstr "" -#: config/tc-m32r.c:357 config/tc-sparc.c:647 +#: config/tc-m32r.c:357 config/tc-sparc.c:648 msgid "Unrecognized option following -K" msgstr "" @@ -9416,7 +9429,7 @@ msgstr "" #: config/tc-m32r.c:395 #, c-format -msgid " might violate contraints\n" +msgid " might violate constraints\n" msgstr "" #: config/tc-m32r.c:397 @@ -9428,7 +9441,7 @@ msgstr "" #, c-format msgid "" " instructions might violate " -"contraints\n" +"constraints\n" msgstr "" #: config/tc-m32r.c:401 @@ -10125,7 +10138,7 @@ msgstr "" #: config/tc-m68k.c:4435 #, 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 "" #: config/tc-m68k.c:4667 config/tc-m68k.c:4706 @@ -10349,7 +10362,7 @@ msgstr "" #: config/tc-m68k.c:7733 #, c-format -msgid "-m[no-]%-16s enable/disable%s architecture extension\n" +msgid "-m[no-]%-16s enable/disable %s architecture extension\n" msgstr "" #: config/tc-m68k.c:7739 @@ -10442,11 +10455,10 @@ msgstr "" msgid "operand must be a multiple of 2" msgstr "" -#: config/tc-mcore.c:887 config/tc-microblaze.c:934 -#: config/tc-microblaze.c:1066 config/tc-microblaze.c:1098 -#: config/tc-microblaze.c:1551 config/tc-microblaze.c:1617 -#: config/tc-microblaze.c:1690 config/tc-microblaze.c:2102 -#: config/tc-microblaze.c:2149 +#: config/tc-mcore.c:887 config/tc-microblaze.c:934 config/tc-microblaze.c:1066 +#: config/tc-microblaze.c:1098 config/tc-microblaze.c:1551 +#: config/tc-microblaze.c:1617 config/tc-microblaze.c:1690 +#: config/tc-microblaze.c:2102 config/tc-microblaze.c:2149 #, c-format msgid "unknown opcode \"%s\"" msgstr "" @@ -10612,8 +10624,8 @@ msgstr "" msgid "Can not do %d byte %srelocation" msgstr "" -#: config/tc-mcore.c:2184 config/tc-microblaze.c:2431 -msgid "pc-relative" +#: config/tc-mcore.c:2184 config/tc-microblaze.c:2431 config/tc-tic30.c:1387 +msgid "pc-relative " msgstr "" #: config/tc-mep.c:339 @@ -11242,725 +11254,725 @@ msgstr "" msgid "Absolute value in relaxation code. Assembler error....." msgstr "" -#: config/tc-mips.c:2037 +#: config/tc-mips.c:2046 #, c-format msgid "the %d-bit %s architecture does not support the `%s' extension" msgstr "" -#: config/tc-mips.c:2040 +#: config/tc-mips.c:2049 #, c-format msgid "the `%s' extension requires %s%d revision %d or greater" msgstr "" -#: config/tc-mips.c:2049 +#: config/tc-mips.c:2058 #, c-format msgid "the `%s' extension was removed in %s%d revision %d" msgstr "" -#: config/tc-mips.c:2058 +#: config/tc-mips.c:2067 #, c-format msgid "the `%s' extension requires 64-bit FPRs" msgstr "" -#: config/tc-mips.c:2876 config/tc-mips.c:16044 +#: config/tc-mips.c:2885 config/tc-mips.c:16069 #, c-format msgid "unrecognized register name `%s'" msgstr "" -#: config/tc-mips.c:3103 +#: config/tc-mips.c:3112 msgid "invalid register range" msgstr "" -#: config/tc-mips.c:3131 +#: config/tc-mips.c:3140 msgid "vector element must be constant" msgstr "" -#: config/tc-mips.c:3141 +#: config/tc-mips.c:3150 msgid "missing `]'" msgstr "" -#: config/tc-mips.c:3353 +#: config/tc-mips.c:3364 #, c-format msgid "internal: bad mips opcode (mask error): %s %s" msgstr "" -#: config/tc-mips.c:3380 +#: config/tc-mips.c:3391 #, c-format msgid "internal: unknown operand type: %s %s" msgstr "" -#: config/tc-mips.c:3405 +#: config/tc-mips.c:3416 #, c-format msgid "internal: bad mips opcode (bits 0x%08lx doubly defined): %s %s" msgstr "" -#: config/tc-mips.c:3413 +#: config/tc-mips.c:3424 #, c-format msgid "internal: bad mips opcode (bits 0x%08lx undefined): %s %s" msgstr "" -#: config/tc-mips.c:3420 +#: config/tc-mips.c:3431 #, c-format msgid "internal: bad mips opcode (bits 0x%08lx defined): %s %s" msgstr "" -#: config/tc-mips.c:3455 +#: config/tc-mips.c:3466 #, c-format msgid "internal error: bad microMIPS opcode (incorrect length: %u): %s %s" msgstr "" -#: config/tc-mips.c:3463 +#: config/tc-mips.c:3474 #, c-format msgid "internal error: bad microMIPS opcode (opcode/length mismatch): %s %s" msgstr "" -#: config/tc-mips.c:3489 +#: config/tc-mips.c:3500 msgid "-G may not be used in position-independent code" msgstr "" -#: config/tc-mips.c:3495 +#: config/tc-mips.c:3506 msgid "-G may not be used with abicalls" msgstr "" #. Probably a memory allocation problem? Give up now. -#: config/tc-mips.c:3515 config/tc-mips.c:3606 +#: config/tc-mips.c:3526 config/tc-mips.c:3617 msgid "broken assembler, no assembly attempted" msgstr "" -#: config/tc-mips.c:3545 config/tc-mips.c:3574 +#: config/tc-mips.c:3556 config/tc-mips.c:3585 #, c-format msgid "internal: can't hash `%s': %s" msgstr "" -#: config/tc-mips.c:3756 +#: config/tc-mips.c:3767 #, c-format msgid ".gnu_attribute %d,%d is incompatible with `%s'" msgstr "" -#: config/tc-mips.c:3763 +#: config/tc-mips.c:3774 #, c-format msgid ".gnu_attribute %d,%d requires `%s'" msgstr "" -#: config/tc-mips.c:3824 +#: config/tc-mips.c:3835 #, c-format msgid ".gnu_attribute %d,%d is no longer supported" msgstr "" -#: config/tc-mips.c:3833 +#: config/tc-mips.c:3844 #, c-format msgid ".gnu_attribute %d,%d is not a recognized floating-point ABI" msgstr "" -#: config/tc-mips.c:3846 +#: config/tc-mips.c:3857 msgid "`gp=64' used with a 32-bit processor" msgstr "" -#: config/tc-mips.c:3849 +#: config/tc-mips.c:3860 msgid "`gp=32' used with a 64-bit ABI" msgstr "" -#: config/tc-mips.c:3852 +#: config/tc-mips.c:3863 msgid "`gp=64' used with a 32-bit ABI" msgstr "" -#: config/tc-mips.c:3859 +#: config/tc-mips.c:3870 msgid "`fp=xx' used with a cpu lacking ldc1/sdc1 instructions" msgstr "" -#: config/tc-mips.c:3861 +#: config/tc-mips.c:3872 msgid "`fp=xx' cannot be used with `singlefloat'" msgstr "" -#: config/tc-mips.c:3865 +#: config/tc-mips.c:3876 msgid "`fp=64' used with a 32-bit fpu" msgstr "" -#: config/tc-mips.c:3869 +#: config/tc-mips.c:3880 msgid "`fp=64' used with a 32-bit ABI" msgstr "" -#: config/tc-mips.c:3874 +#: config/tc-mips.c:3885 msgid "`fp=32' used with a 64-bit ABI" msgstr "" -#: config/tc-mips.c:3876 +#: config/tc-mips.c:3887 msgid "`fp=32' used with a MIPS R6 cpu" msgstr "" -#: config/tc-mips.c:3879 +#: config/tc-mips.c:3890 msgid "Unknown size of floating point registers" msgstr "" -#: config/tc-mips.c:3884 +#: config/tc-mips.c:3895 msgid "`nooddspreg` cannot be used with a 64-bit ABI" msgstr "" -#: config/tc-mips.c:3887 config/tc-mips.c:3891 +#: config/tc-mips.c:3898 config/tc-mips.c:3902 #, c-format msgid "`%s' cannot be used with `%s'" msgstr "" -#: config/tc-mips.c:3896 +#: config/tc-mips.c:3907 #, c-format msgid "branch relaxation is not supported in `%s'" msgstr "" -#: config/tc-mips.c:3976 +#: config/tc-mips.c:3987 msgid "trap exception not supported at ISA 1" msgstr "" -#: config/tc-mips.c:3989 config/tc-mips.c:16924 +#: config/tc-mips.c:4000 config/tc-mips.c:16949 #, c-format msgid "`%s' does not support legacy NaN" msgstr "" -#: config/tc-mips.c:4036 +#: config/tc-mips.c:4047 #, c-format msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n" msgstr "" -#: config/tc-mips.c:4735 +#: config/tc-mips.c:4748 #, c-format msgid "operand %d out of range" msgstr "" -#: config/tc-mips.c:4743 +#: config/tc-mips.c:4756 #, c-format msgid "operand %d must be constant" msgstr "" -#: config/tc-mips.c:4787 read.c:4327 read.c:5294 write.c:263 write.c:1012 +#: config/tc-mips.c:4800 read.c:4327 read.c:5294 write.c:263 write.c:1012 msgid "register value used as expression" msgstr "" -#: config/tc-mips.c:4800 +#: config/tc-mips.c:4813 #, c-format msgid "operand %d must be an immediate expression" msgstr "" -#: config/tc-mips.c:4919 config/tc-mips.c:4921 +#: config/tc-mips.c:4932 config/tc-mips.c:4934 #, c-format msgid "float register should be even, was %d" msgstr "" -#: config/tc-mips.c:4934 +#: config/tc-mips.c:4947 #, c-format msgid "condition code register should be even for %s, was %d" msgstr "" -#: config/tc-mips.c:4939 +#: config/tc-mips.c:4952 #, c-format msgid "condition code register should be 0 or 4 for %s, was %d" msgstr "" -#: config/tc-mips.c:5248 +#: config/tc-mips.c:5261 msgid "invalid performance register" msgstr "" -#: config/tc-mips.c:5344 +#: config/tc-mips.c:5357 msgid "the source register must not be $0" msgstr "" -#: config/tc-mips.c:5584 +#: config/tc-mips.c:5597 msgid "missing frame size" msgstr "" -#: config/tc-mips.c:5589 +#: config/tc-mips.c:5602 msgid "frame size specified twice" msgstr "" -#: config/tc-mips.c:5594 +#: config/tc-mips.c:5607 msgid "invalid frame size" msgstr "" -#: config/tc-mips.c:5632 +#: config/tc-mips.c:5645 #, c-format msgid "operand %d must be an immediate" msgstr "" -#: config/tc-mips.c:5647 +#: config/tc-mips.c:5660 msgid "invalid element selector" msgstr "" -#: config/tc-mips.c:5660 +#: config/tc-mips.c:5673 #, c-format msgid "operand %d must be scalar" msgstr "" -#: config/tc-mips.c:5820 +#: config/tc-mips.c:5833 msgid "floating-point expression required" msgstr "" -#: config/tc-mips.c:5920 +#: config/tc-mips.c:5933 #, c-format msgid "cannot use `%s' in this section" msgstr "" -#: config/tc-mips.c:6064 +#: config/tc-mips.c:6077 msgid "used $at without \".set noat\"" msgstr "" -#: config/tc-mips.c:6066 +#: config/tc-mips.c:6079 #, c-format msgid "used $%u with \".set at=$%u\"" msgstr "" -#: config/tc-mips.c:7095 +#: config/tc-mips.c:7108 #, c-format msgid "wrong size instruction in a %u-bit branch delay slot" msgstr "" -#: config/tc-mips.c:7115 config/tc-mips.c:7125 config/tc-mips.c:15350 +#: config/tc-mips.c:7128 config/tc-mips.c:7138 config/tc-mips.c:15375 #, c-format msgid "jump to misaligned address (0x%lx)" msgstr "" -#: config/tc-mips.c:7140 config/tc-mips.c:7160 config/tc-mips.c:7177 -#: config/tc-mips.c:8692 config/tc-mips.c:15204 config/tc-mips.c:15211 -#: config/tc-mips.c:15605 config/tc-mips.c:18356 +#: config/tc-mips.c:7153 config/tc-mips.c:7173 config/tc-mips.c:7190 +#: config/tc-mips.c:8701 config/tc-mips.c:15229 config/tc-mips.c:15236 +#: config/tc-mips.c:15630 config/tc-mips.c:18380 #, c-format msgid "branch to misaligned address (0x%lx)" msgstr "" -#: config/tc-mips.c:7146 config/tc-mips.c:7164 config/tc-mips.c:7181 -#: config/tc-mips.c:8695 +#: config/tc-mips.c:7159 config/tc-mips.c:7177 config/tc-mips.c:7194 +#: config/tc-mips.c:8704 #, c-format msgid "branch address range overflow (0x%lx)" msgstr "" -#: config/tc-mips.c:7420 config/tc-mips.c:18384 +#: config/tc-mips.c:7433 config/tc-mips.c:18408 msgid "extended instruction in delay slot" msgstr "" -#: config/tc-mips.c:7882 +#: config/tc-mips.c:7895 msgid "source and destination must be different" msgstr "" -#: config/tc-mips.c:7885 +#: config/tc-mips.c:7898 msgid "a destination register must be supplied" msgstr "" -#: config/tc-mips.c:7890 +#: config/tc-mips.c:7903 msgid "the source register must not be $31" msgstr "" -#: config/tc-mips.c:8136 config/tc-mips.c:14001 config/tc-mips.c:18436 +#: config/tc-mips.c:8149 config/tc-mips.c:14015 config/tc-mips.c:18460 msgid "invalid unextended operand value" msgstr "" -#: config/tc-mips.c:8248 +#: config/tc-mips.c:8257 #, c-format msgid "opcode not supported on this processor: %s (%s)" msgstr "" -#: config/tc-mips.c:8327 +#: config/tc-mips.c:8336 msgid "opcode not supported in the `insn32' mode" msgstr "" -#: config/tc-mips.c:8330 +#: config/tc-mips.c:8339 #, c-format msgid "unrecognized %d-bit version of microMIPS opcode" msgstr "" -#: config/tc-mips.c:8386 +#: config/tc-mips.c:8395 msgid "unrecognized unextended version of MIPS16 opcode" msgstr "" -#: config/tc-mips.c:8389 +#: config/tc-mips.c:8398 msgid "unrecognized extended version of MIPS16 opcode" msgstr "" -#: config/tc-mips.c:8439 +#: config/tc-mips.c:8448 msgid "" "macro instruction expanded into multiple instructions in a branch delay slot" msgstr "" -#: config/tc-mips.c:8442 +#: config/tc-mips.c:8451 msgid "macro instruction expanded into multiple instructions" msgstr "" -#: config/tc-mips.c:8446 +#: config/tc-mips.c:8455 msgid "" "macro instruction expanded into a wrong size instruction in a 16-bit branch " "delay slot" msgstr "" -#: config/tc-mips.c:8448 +#: config/tc-mips.c:8457 msgid "" "macro instruction expanded into a wrong size instruction in a 32-bit branch " "delay slot" msgstr "" -#: config/tc-mips.c:8892 +#: config/tc-mips.c:8901 msgid "operand overflow" msgstr "" -#: config/tc-mips.c:8911 config/tc-mips.c:9495 config/tc-mips.c:13488 +#: config/tc-mips.c:8920 config/tc-mips.c:9504 config/tc-mips.c:13497 msgid "macro used $at after \".set noat\"" msgstr "" -#: config/tc-mips.c:9059 config/tc-mips.c:11827 config/tc-mips.c:12486 +#: config/tc-mips.c:9068 config/tc-mips.c:11836 config/tc-mips.c:12495 #, c-format msgid "number (0x%s) larger than 32 bits" msgstr "" -#: config/tc-mips.c:9079 +#: config/tc-mips.c:9088 msgid "number larger than 64 bits" msgstr "" -#: config/tc-mips.c:9373 config/tc-mips.c:9401 config/tc-mips.c:9439 -#: config/tc-mips.c:9484 config/tc-mips.c:12062 config/tc-mips.c:12101 -#: config/tc-mips.c:12140 config/tc-mips.c:12582 config/tc-mips.c:12634 +#: config/tc-mips.c:9382 config/tc-mips.c:9410 config/tc-mips.c:9448 +#: config/tc-mips.c:9493 config/tc-mips.c:12071 config/tc-mips.c:12110 +#: config/tc-mips.c:12149 config/tc-mips.c:12591 config/tc-mips.c:12643 msgid "PIC code offset overflow (max 16 signed bits)" msgstr "" -#: config/tc-mips.c:10012 +#: config/tc-mips.c:10021 #, c-format msgid "BALIGN immediate not 0, 1, 2 or 3 (%lu)" msgstr "" #. result is always true -#: config/tc-mips.c:10108 +#: config/tc-mips.c:10117 #, c-format msgid "branch %s is always true" msgstr "" -#: config/tc-mips.c:10336 config/tc-mips.c:10446 +#: config/tc-mips.c:10345 config/tc-mips.c:10455 msgid "divide by zero" msgstr "" -#: config/tc-mips.c:10536 +#: config/tc-mips.c:10545 msgid "dla used to load 32-bit register; recommend using la instead" msgstr "" -#: config/tc-mips.c:10540 +#: config/tc-mips.c:10549 msgid "la used to load 64-bit address; recommend using dla instead" msgstr "" -#: config/tc-mips.c:10649 config/tc-riscv.c:913 config/tc-z80.c:732 +#: config/tc-mips.c:10658 config/tc-riscv.c:918 config/tc-z80.c:732 msgid "offset too large" msgstr "" -#: config/tc-mips.c:10823 config/tc-mips.c:11101 +#: config/tc-mips.c:10832 config/tc-mips.c:11110 msgid "PIC code offset overflow (max 32 signed bits)" msgstr "" -#: config/tc-mips.c:11171 config/tc-mips.c:11247 +#: config/tc-mips.c:11180 config/tc-mips.c:11256 #, c-format msgid "opcode not supported in the `insn32' mode `%s'" msgstr "" -#: config/tc-mips.c:11199 +#: config/tc-mips.c:11208 msgid "MIPS PIC call to register other than $25" msgstr "" -#: config/tc-mips.c:11215 config/tc-mips.c:11226 config/tc-mips.c:11359 -#: config/tc-mips.c:11370 +#: config/tc-mips.c:11224 config/tc-mips.c:11235 config/tc-mips.c:11368 +#: config/tc-mips.c:11379 msgid "no .cprestore pseudo-op used in PIC code" msgstr "" -#: config/tc-mips.c:11220 config/tc-mips.c:11364 +#: config/tc-mips.c:11229 config/tc-mips.c:11373 msgid "no .frame pseudo-op used in PIC code" msgstr "" -#: config/tc-mips.c:11385 +#: config/tc-mips.c:11394 msgid "non-PIC jump used in PIC library" msgstr "" -#: config/tc-mips.c:12312 +#: config/tc-mips.c:12321 #, c-format msgid "Unable to generate `%s' compliant code without mthc1" msgstr "" -#: config/tc-mips.c:13046 +#: config/tc-mips.c:13055 #, c-format msgid "instruction %s: result is always false" msgstr "" -#: config/tc-mips.c:13199 +#: config/tc-mips.c:13208 #, c-format msgid "instruction %s: result is always true" msgstr "" #. FIXME: Check if this is one of the itbl macros, since they #. are added dynamically. -#: config/tc-mips.c:13484 +#: config/tc-mips.c:13493 #, c-format msgid "macro %s not implemented yet" msgstr "" -#: config/tc-mips.c:13829 config/tc-mips.c:13891 config/tc-mips.c:13901 +#: config/tc-mips.c:13838 config/tc-mips.c:13904 config/tc-mips.c:13915 #: config/tc-score.c:2691 config/tc-score.c:2737 msgid "unrecognized opcode" msgstr "" -#: config/tc-mips.c:14011 +#: config/tc-mips.c:14025 msgid "extended operand requested but not required" msgstr "" -#: config/tc-mips.c:14020 +#: config/tc-mips.c:14034 msgid "operand value out of range for instruction" msgstr "" -#: config/tc-mips.c:14117 +#: config/tc-mips.c:14131 #, c-format msgid "relocation %s isn't supported by the current ABI" msgstr "" -#: config/tc-mips.c:14173 +#: config/tc-mips.c:14187 msgid "unclosed '('" msgstr "" -#: config/tc-mips.c:14239 +#: config/tc-mips.c:14253 #, c-format msgid "a different %s was already specified, is now %s" msgstr "" -#: config/tc-mips.c:14406 +#: config/tc-mips.c:14420 msgid "-mmicromips cannot be used with -mips16" msgstr "" -#: config/tc-mips.c:14421 +#: config/tc-mips.c:14435 msgid "-mips16 cannot be used with -micromips" msgstr "" -#: config/tc-mips.c:14564 config/tc-mips.c:14622 +#: config/tc-mips.c:14586 config/tc-mips.c:14644 msgid "no compiled in support for 64 bit object file format" msgstr "" -#: config/tc-mips.c:14629 +#: config/tc-mips.c:14651 #, c-format msgid "invalid abi -mabi=%s" msgstr "" -#: config/tc-mips.c:14669 +#: config/tc-mips.c:14691 #, c-format msgid "invalid NaN setting -mnan=%s" msgstr "" -#: config/tc-mips.c:14703 +#: config/tc-mips.c:14725 msgid "-G not supported in this configuration" msgstr "" -#: config/tc-mips.c:14729 +#: config/tc-mips.c:14751 #, c-format msgid "-%s conflicts with the other architecture options, which imply -%s" msgstr "" -#: config/tc-mips.c:14745 +#: config/tc-mips.c:14767 #, c-format msgid "-march=%s is not compatible with the selected ABI" msgstr "" -#: config/tc-mips.c:15208 config/tc-mips.c:15599 config/tc-mips.c:18353 +#: config/tc-mips.c:15233 config/tc-mips.c:15624 config/tc-mips.c:18377 msgid "branch to a symbol in another ISA mode" msgstr "" -#: config/tc-mips.c:15215 config/tc-mips.c:15356 config/tc-mips.c:15609 +#: config/tc-mips.c:15240 config/tc-mips.c:15381 config/tc-mips.c:15634 #, c-format msgid "cannot encode misaligned addend in the relocatable field (0x%lx)" msgstr "" -#: config/tc-mips.c:15252 +#: config/tc-mips.c:15277 msgid "PC-relative reference to a different section" msgstr "" -#: config/tc-mips.c:15324 +#: config/tc-mips.c:15349 config/tc-riscv.c:1904 msgid "TLS relocation against a constant" msgstr "" -#: config/tc-mips.c:15344 +#: config/tc-mips.c:15369 msgid "jump to a symbol in another ISA mode" msgstr "" -#: config/tc-mips.c:15347 +#: config/tc-mips.c:15372 msgid "JALX to a symbol in the same ISA mode" msgstr "" -#: config/tc-mips.c:15432 +#: config/tc-mips.c:15457 msgid "unsupported constant in relocation" msgstr "" -#: config/tc-mips.c:15504 +#: config/tc-mips.c:15529 #, c-format msgid "PC-relative access using misaligned symbol (%lx)" msgstr "" -#: config/tc-mips.c:15508 +#: config/tc-mips.c:15533 #, c-format msgid "PC-relative access using misaligned offset (%lx)" msgstr "" -#: config/tc-mips.c:15521 config/tc-mips.c:15540 +#: config/tc-mips.c:15546 config/tc-mips.c:15565 msgid "PC-relative access out of range" msgstr "" -#: config/tc-mips.c:15527 +#: config/tc-mips.c:15552 #, c-format msgid "PC-relative access to misaligned address (%lx)" msgstr "" -#: config/tc-mips.c:15694 +#: config/tc-mips.c:15719 #, c-format msgid "alignment too large, %d assumed" msgstr "" -#: config/tc-mips.c:15697 +#: config/tc-mips.c:15722 msgid "alignment negative, 0 assumed" msgstr "" -#: config/tc-mips.c:15939 +#: config/tc-mips.c:15964 #, c-format msgid "%s: no such section" msgstr "" -#: config/tc-mips.c:15980 +#: config/tc-mips.c:16005 #, c-format msgid ".option pic%d not supported" msgstr "" -#: config/tc-mips.c:15982 +#: config/tc-mips.c:16007 #, c-format msgid ".option pic%d not supported in VxWorks PIC mode" msgstr "" -#: config/tc-mips.c:15994 config/tc-mips.c:16331 +#: config/tc-mips.c:16019 config/tc-mips.c:16356 msgid "-G may not be used with SVR4 PIC code" msgstr "" -#: config/tc-mips.c:16000 +#: config/tc-mips.c:16025 #, c-format msgid "unrecognized option \"%s\"" msgstr "" -#: config/tc-mips.c:16106 +#: config/tc-mips.c:16131 #, c-format msgid "unknown architecture %s" msgstr "" -#: config/tc-mips.c:16120 config/tc-mips.c:16282 +#: config/tc-mips.c:16145 config/tc-mips.c:16307 #, c-format msgid "unknown ISA level %s" msgstr "" -#: config/tc-mips.c:16129 +#: config/tc-mips.c:16154 #, c-format msgid "unknown ISA or architecture %s" msgstr "" -#: config/tc-mips.c:16188 +#: config/tc-mips.c:16213 msgid "`noreorder' must be set before `nomacro'" msgstr "" -#: config/tc-mips.c:16217 +#: config/tc-mips.c:16242 msgid ".set pop with no .set push" msgstr "" -#: config/tc-mips.c:16236 +#: config/tc-mips.c:16261 #, c-format msgid "tried to set unrecognized symbol: %s\n" msgstr "" -#: config/tc-mips.c:16309 +#: config/tc-mips.c:16334 #, c-format msgid ".module used with unrecognized symbol: %s\n" msgstr "" -#: config/tc-mips.c:16315 +#: config/tc-mips.c:16340 msgid ".module is not permitted after generating code" msgstr "" -#: config/tc-mips.c:16375 config/tc-mips.c:16454 config/tc-mips.c:16558 -#: config/tc-mips.c:16588 config/tc-mips.c:16637 +#: config/tc-mips.c:16400 config/tc-mips.c:16479 config/tc-mips.c:16583 +#: config/tc-mips.c:16613 config/tc-mips.c:16662 #, c-format msgid "%s not supported in MIPS16 mode" msgstr "" -#: config/tc-mips.c:16382 +#: config/tc-mips.c:16407 msgid ".cpload not in noreorder section" msgstr "" -#: config/tc-mips.c:16463 config/tc-mips.c:16482 +#: config/tc-mips.c:16488 config/tc-mips.c:16507 msgid "missing argument separator ',' for .cpsetup" msgstr "" -#: config/tc-mips.c:16680 +#: config/tc-mips.c:16705 #, c-format msgid "unsupported use of %s" msgstr "" -#: config/tc-mips.c:16771 +#: config/tc-mips.c:16796 msgid "unsupported use of .gpword" msgstr "" -#: config/tc-mips.c:16809 +#: config/tc-mips.c:16834 msgid "unsupported use of .gpdword" msgstr "" -#: config/tc-mips.c:16841 +#: config/tc-mips.c:16866 msgid "unsupported use of .ehword" msgstr "" -#: config/tc-mips.c:16928 +#: config/tc-mips.c:16953 msgid "bad .nan directive" msgstr "" -#: config/tc-mips.c:16976 +#: config/tc-mips.c:17001 #, c-format msgid "ignoring attempt to redefine symbol %s" msgstr "" -#: config/tc-mips.c:16991 ecoff.c:3364 +#: config/tc-mips.c:17016 ecoff.c:3372 msgid "bad .weakext directive" msgstr "" -#: config/tc-mips.c:17867 config/tc-mips.c:18149 +#: config/tc-mips.c:17891 config/tc-mips.c:18173 msgid "relaxed out-of-range branch into a jump" msgstr "" -#: config/tc-mips.c:18413 config/tc-xtensa.c:1663 config/tc-xtensa.c:1939 +#: config/tc-mips.c:18437 config/tc-xtensa.c:1663 config/tc-xtensa.c:1939 msgid "unsupported relocation" msgstr "" -#: config/tc-mips.c:18921 config/tc-score.c:5640 +#: config/tc-mips.c:18945 config/tc-score.c:5640 msgid "expected simple number" msgstr "" -#: config/tc-mips.c:18949 config/tc-score.c:5667 +#: config/tc-mips.c:18973 config/tc-score.c:5667 msgid "invalid number" msgstr "" -#: config/tc-mips.c:19026 ecoff.c:2995 +#: config/tc-mips.c:19050 ecoff.c:2999 msgid ".end directive without a preceding .ent directive" msgstr "" -#: config/tc-mips.c:19035 +#: config/tc-mips.c:19059 msgid ".end symbol does not match .ent symbol" msgstr "" -#: config/tc-mips.c:19112 +#: config/tc-mips.c:19136 msgid ".ent or .aent not in text section" msgstr "" -#: config/tc-mips.c:19115 config/tc-score.c:5706 +#: config/tc-mips.c:19139 config/tc-score.c:5706 msgid "missing .end" msgstr "" -#: config/tc-mips.c:19198 +#: config/tc-mips.c:19222 msgid ".mask/.fmask outside of .ent" msgstr "" -#: config/tc-mips.c:19205 +#: config/tc-mips.c:19229 msgid "bad .mask/.fmask directive" msgstr "" -#: config/tc-mips.c:19495 +#: config/tc-mips.c:19519 #, c-format msgid "bad value (%s) for %s" msgstr "" -#: config/tc-mips.c:19559 +#: config/tc-mips.c:19583 #, c-format msgid "" "MIPS options:\n" @@ -11971,7 +11983,7 @@ msgid "" "\t\t\timplicitly with the gp register [default 8]\n" msgstr "" -#: config/tc-mips.c:19566 +#: config/tc-mips.c:19590 #, c-format msgid "" "-mips1\t\t\tgenerate MIPS ISA I instructions\n" @@ -11992,7 +12004,7 @@ msgid "" "-march=CPU/-mtune=CPU\tgenerate code/schedule for CPU, where CPU is one of:\n" msgstr "" -#: config/tc-mips.c:19591 +#: config/tc-mips.c:19615 #, c-format msgid "" "-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n" @@ -12000,91 +12012,91 @@ msgid "" "\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n" msgstr "" -#: config/tc-mips.c:19604 +#: config/tc-mips.c:19628 #, c-format msgid "" "-mips16\t\t\tgenerate mips16 instructions\n" "-no-mips16\t\tdo not generate mips16 instructions\n" msgstr "" -#: config/tc-mips.c:19607 +#: config/tc-mips.c:19631 #, c-format msgid "" "-mmicromips\t\tgenerate microMIPS instructions\n" "-mno-micromips\t\tdo not generate microMIPS instructions\n" msgstr "" -#: config/tc-mips.c:19610 +#: config/tc-mips.c:19634 #, c-format msgid "" "-msmartmips\t\tgenerate smartmips instructions\n" "-mno-smartmips\t\tdo not generate smartmips instructions\n" msgstr "" -#: config/tc-mips.c:19613 +#: config/tc-mips.c:19637 #, c-format msgid "" "-mdsp\t\t\tgenerate DSP instructions\n" "-mno-dsp\t\tdo not generate DSP instructions\n" msgstr "" -#: config/tc-mips.c:19616 +#: config/tc-mips.c:19640 #, c-format msgid "" "-mdspr2\t\t\tgenerate DSP R2 instructions\n" "-mno-dspr2\t\tdo not generate DSP R2 instructions\n" msgstr "" -#: config/tc-mips.c:19619 +#: config/tc-mips.c:19643 #, c-format msgid "" "-mdspr3\t\t\tgenerate DSP R3 instructions\n" "-mno-dspr3\t\tdo not generate DSP R3 instructions\n" msgstr "" -#: config/tc-mips.c:19622 +#: config/tc-mips.c:19646 #, c-format msgid "" "-mmt\t\t\tgenerate MT instructions\n" "-mno-mt\t\t\tdo not generate MT instructions\n" msgstr "" -#: config/tc-mips.c:19625 +#: config/tc-mips.c:19649 #, c-format msgid "" "-mmcu\t\t\tgenerate MCU instructions\n" "-mno-mcu\t\tdo not generate MCU instructions\n" msgstr "" -#: config/tc-mips.c:19628 +#: config/tc-mips.c:19652 #, c-format msgid "" "-mmsa\t\t\tgenerate MSA instructions\n" "-mno-msa\t\tdo not generate MSA instructions\n" msgstr "" -#: config/tc-mips.c:19631 +#: config/tc-mips.c:19655 #, c-format msgid "" "-mxpa\t\t\tgenerate eXtended Physical Address (XPA) instructions\n" "-mno-xpa\t\tdo not generate eXtended Physical Address (XPA) instructions\n" msgstr "" -#: config/tc-mips.c:19634 +#: config/tc-mips.c:19658 #, c-format msgid "" "-mvirt\t\t\tgenerate Virtualization instructions\n" "-mno-virt\t\tdo not generate Virtualization instructions\n" msgstr "" -#: config/tc-mips.c:19637 +#: config/tc-mips.c:19661 #, c-format msgid "" "-minsn32\t\tonly generate 32-bit microMIPS instructions\n" "-mno-insn32\t\tgenerate all microMIPS instructions\n" msgstr "" -#: config/tc-mips.c:19640 +#: config/tc-mips.c:19664 #, c-format msgid "" "-mfix-loongson2f-jump\twork around Loongson2F JUMP instructions\n" @@ -12102,7 +12114,7 @@ msgid "" "--break, --no-trap\tbreak exception on div by 0 and mult overflow\n" msgstr "" -#: config/tc-mips.c:19654 +#: config/tc-mips.c:19678 #, c-format msgid "" "-mhard-float\t\tallow floating-point instructions\n" @@ -12111,10 +12123,13 @@ msgid "" "-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 "" -#: config/tc-mips.c:19670 +#: config/tc-mips.c:19696 #, c-format msgid "" "-KPIC, -call_shared\tgenerate SVR4 position independent code\n" @@ -12128,7 +12143,7 @@ msgid "" "-mabi=ABI\t\tcreate ABI conformant object file for:\n" msgstr "" -#: config/tc-mips.c:19691 +#: config/tc-mips.c:19717 #, c-format msgid "" "-32\t\t\tcreate o32 ABI object file (default)\n" @@ -12136,7 +12151,7 @@ msgid "" "-64\t\t\tcreate 64 ABI object file\n" msgstr "" -#: config/tc-mips.c:19774 +#: config/tc-mips.c:19800 msgid "missing .end at end of assembly" msgstr "" @@ -12472,26 +12487,26 @@ msgstr "" msgid "profiling in absolute section?" msgstr "" -#: config/tc-msp430.c:1366 +#: config/tc-msp430.c:1365 #, c-format msgid "Unrecognised CPU errata name starting here: %s" msgstr "" -#: config/tc-msp430.c:1372 +#: config/tc-msp430.c:1371 #, c-format msgid "Expecting comma after CPU errata name, not: %s" msgstr "" -#: config/tc-msp430.c:1382 +#: config/tc-msp430.c:1381 msgid "MCU option requires a name\n" msgstr "" -#: config/tc-msp430.c:1420 +#: config/tc-msp430.c:1419 #, c-format msgid "unrecognised argument to -mcpu option '%s'" msgstr "" -#: config/tc-msp430.c:1583 +#: config/tc-msp430.c:1582 #, c-format msgid "" "MSP430 options:\n" @@ -12499,7 +12514,7 @@ msgid "" " -mcpu={430|430x|430xv2} - select microcontroller architecture\n" msgstr "" -#: config/tc-msp430.c:1587 +#: config/tc-msp430.c:1586 #, c-format msgid "" " -msilicon-errata=<name>[,<name>...] - enable fixups for silicon errata\n" @@ -12508,363 +12523,367 @@ msgid "" " supported errata names: cpu4, cpu8, cpu11, cpu12, cpu13, cpu19\n" msgstr "" -#: config/tc-msp430.c:1591 +#: config/tc-msp430.c:1590 #, c-format msgid "" " -mQ - enable relaxation at assembly time. DANGEROUS!\n" " -mP - enable polymorph instructions\n" msgstr "" -#: config/tc-msp430.c:1594 +#: config/tc-msp430.c:1593 #, c-format msgid " -ml - enable large code model\n" msgstr "" -#: config/tc-msp430.c:1596 +#: config/tc-msp430.c:1595 #, c-format msgid " -mN - do not insert NOPs after changing interrupts (default)\n" msgstr "" -#: config/tc-msp430.c:1598 +#: config/tc-msp430.c:1597 #, c-format msgid " -mn - insert a NOP after changing interrupts\n" msgstr "" -#: config/tc-msp430.c:1600 +#: config/tc-msp430.c:1599 #, c-format msgid " -mY - do not warn about missing NOPs after changing interrupts\n" msgstr "" -#: config/tc-msp430.c:1602 +#: config/tc-msp430.c:1601 #, c-format msgid " -my - warn about missing NOPs after changing interrupts (default)\n" msgstr "" -#: config/tc-msp430.c:1604 +#: config/tc-msp430.c:1603 #, c-format msgid " -md - Force copying of data from ROM to RAM at startup\n" msgstr "" -#: config/tc-msp430.c:1782 config/tc-msp430.c:1960 config/tc-msp430.c:2069 +#: config/tc-msp430.c:1781 config/tc-msp430.c:1959 config/tc-msp430.c:2068 #, c-format msgid "value 0x%x out of extended range." msgstr "" -#: config/tc-msp430.c:1788 +#: config/tc-msp430.c:1787 #, c-format msgid "value %d out of range. Use #lo() or #hi()" msgstr "" -#: config/tc-msp430.c:1834 +#: config/tc-msp430.c:1833 msgid "cpu4: not converting PUSH #4 to shorter form" msgstr "" -#: config/tc-msp430.c:1851 +#: config/tc-msp430.c:1850 msgid "cpu4: not converting PUSH #8 to shorter form" msgstr "" -#: config/tc-msp430.c:1865 +#: config/tc-msp430.c:1864 msgid "error: unsupported #foo() directive used on symbol" msgstr "" -#: config/tc-msp430.c:1882 +#: config/tc-msp430.c:1881 #, c-format -msgid "unknown expression in operand %s. use #llo() #lhi() #hlo() #hhi() " +msgid "unknown expression in operand %s. Use #llo(), #lhi(), #hlo() or #hhi()" msgstr "" -#: config/tc-msp430.c:1933 +#: config/tc-msp430.c:1932 #, c-format msgid "Registers cannot be used within immediate expression [%s]" msgstr "" -#: config/tc-msp430.c:1935 +#: config/tc-msp430.c:1934 #, c-format msgid "unknown operand %s" msgstr "" -#: config/tc-msp430.c:1966 config/tc-msp430.c:2075 +#: config/tc-msp430.c:1965 config/tc-msp430.c:2074 #, c-format msgid "value out of range: 0x%x" msgstr "" -#: config/tc-msp430.c:1977 +#: config/tc-msp430.c:1976 #, c-format msgid "Registers cannot be used within absolute expression [%s]" msgstr "" -#: config/tc-msp430.c:1979 config/tc-msp430.c:2104 +#: config/tc-msp430.c:1978 config/tc-msp430.c:2103 #, c-format msgid "unknown expression in operand %s" msgstr "" -#: config/tc-msp430.c:1993 +#: config/tc-msp430.c:1992 #, c-format msgid "unknown addressing mode %s" msgstr "" -#: config/tc-msp430.c:2001 +#: config/tc-msp430.c:2000 #, c-format msgid "Bad register name %s" msgstr "" -#: config/tc-msp430.c:2012 +#: config/tc-msp430.c:2011 msgid "cannot use indirect addressing with the PC" msgstr "" -#: config/tc-msp430.c:2032 +#: config/tc-msp430.c:2031 msgid "')' required" msgstr "" -#: config/tc-msp430.c:2044 +#: config/tc-msp430.c:2043 #, c-format msgid "unknown operator %s. Did you mean X(Rn) or #[hl][hl][oi](CONST) ?" msgstr "" -#: config/tc-msp430.c:2051 +#: config/tc-msp430.c:2050 msgid "r2 should not be used in indexed addressing mode" msgstr "" -#: config/tc-msp430.c:2090 config/tc-msp430.c:2092 +#: config/tc-msp430.c:2089 config/tc-msp430.c:2091 msgid "CPU8: Stack pointer accessed with an odd offset" msgstr "" -#: config/tc-msp430.c:2102 +#: config/tc-msp430.c:2101 #, c-format msgid "Registers cannot be used as a prefix of indexed expression [%s]" msgstr "" #. Unreachable. -#: config/tc-msp430.c:2137 +#: config/tc-msp430.c:2136 #, c-format msgid "unknown addressing mode for operand %s" msgstr "" -#: config/tc-msp430.c:2169 +#: config/tc-msp430.c:2168 #, c-format msgid "Internal bug. Try to use 0(r%d) instead of @r%d" msgstr "" -#: config/tc-msp430.c:2179 +#: config/tc-msp430.c:2178 msgid "this addressing mode is not applicable for destination operand" msgstr "" -#: config/tc-msp430.c:2210 config/tc-msp430.c:2345 config/tc-msp430.c:2382 -#: config/tc-msp430.c:2412 config/tc-msp430.c:3103 config/tc-msp430.c:3181 -#: config/tc-msp430.c:3264 +#: config/tc-msp430.c:2209 config/tc-msp430.c:2344 config/tc-msp430.c:2381 +#: config/tc-msp430.c:2411 config/tc-msp430.c:3102 config/tc-msp430.c:3180 +#: config/tc-msp430.c:3263 #, c-format msgid "expected register as second argument of %s" msgstr "" -#: config/tc-msp430.c:2249 config/tc-msp430.c:2315 +#: config/tc-msp430.c:2248 config/tc-msp430.c:2314 #, c-format msgid "index value too big for %s" msgstr "" -#: config/tc-msp430.c:2266 config/tc-msp430.c:2332 config/tc-msp430.c:2439 +#: config/tc-msp430.c:2265 config/tc-msp430.c:2331 config/tc-msp430.c:2438 #, c-format msgid "unexpected addressing mode for %s" msgstr "" -#: config/tc-msp430.c:2352 config/tc-msp430.c:2389 config/tc-msp430.c:2419 +#: config/tc-msp430.c:2351 config/tc-msp430.c:2388 config/tc-msp430.c:2418 #, c-format msgid "constant generator destination register found in %s" msgstr "" -#: config/tc-msp430.c:2396 config/tc-msp430.c:2426 +#: config/tc-msp430.c:2395 config/tc-msp430.c:2425 #, c-format msgid "constant generator source register found in %s" msgstr "" -#: config/tc-msp430.c:2515 +#: config/tc-msp430.c:2514 msgid "no size modifier after period, .w assumed" msgstr "" -#: config/tc-msp430.c:2519 +#: config/tc-msp430.c:2518 #, c-format msgid "unrecognised instruction size modifier .%c" msgstr "" -#: config/tc-msp430.c:2533 +#: config/tc-msp430.c:2532 #, c-format msgid "junk found after instruction: %s.%s" msgstr "" -#: config/tc-msp430.c:2553 +#: config/tc-msp430.c:2552 #, c-format msgid "instruction %s.a does not exist" msgstr "" -#: config/tc-msp430.c:2567 +#: config/tc-msp430.c:2566 #, c-format msgid "instruction %s requires %d operand(s)" msgstr "" -#: config/tc-msp430.c:2583 +#: config/tc-msp430.c:2582 #, c-format msgid "instruction %s requires MSP430X mcu" msgstr "" -#: config/tc-msp430.c:2603 +#: config/tc-msp430.c:2602 #, c-format msgid "unable to repeat %s insn" msgstr "" -#: config/tc-msp430.c:2622 +#: config/tc-msp430.c:2621 msgid "NOP inserted between two instructions that change interrupt state" msgstr "" -#: config/tc-msp430.c:2624 +#: config/tc-msp430.c:2623 msgid "" "a NOP might be needed here because of successive changes in interrupt state" msgstr "" -#: config/tc-msp430.c:2635 +#: config/tc-msp430.c:2634 msgid "CPU12: CMP/BIT with PC destinstion ignores next instruction" msgstr "" -#: config/tc-msp430.c:2643 +#: config/tc-msp430.c:2642 msgid "CPU19: Instruction setting CPUOFF must be followed by a NOP" msgstr "" -#: config/tc-msp430.c:2650 +#: config/tc-msp430.c:2649 msgid "internal error: unknown nop check state" msgstr "" -#: config/tc-msp430.c:2685 +#: config/tc-msp430.c:2684 msgid "inserting a NOP before EINT" msgstr "" -#: config/tc-msp430.c:2688 +#: config/tc-msp430.c:2687 msgid "a NOP might be needed before the EINT" msgstr "" -#: config/tc-msp430.c:2728 config/tc-msp430.c:2730 config/tc-msp430.c:3414 -#: config/tc-msp430.c:3416 +#: config/tc-msp430.c:2727 config/tc-msp430.c:2729 config/tc-msp430.c:3413 +#: config/tc-msp430.c:3415 msgid "CPU11: PC is destinstion of SR altering instruction" msgstr "" -#: config/tc-msp430.c:2745 config/tc-msp430.c:2747 config/tc-msp430.c:2853 -#: config/tc-msp430.c:2855 config/tc-msp430.c:3431 config/tc-msp430.c:3433 -#: config/tc-msp430.c:3609 config/tc-msp430.c:3611 +#: config/tc-msp430.c:2744 config/tc-msp430.c:2746 config/tc-msp430.c:2852 +#: config/tc-msp430.c:2854 config/tc-msp430.c:3430 config/tc-msp430.c:3432 +#: config/tc-msp430.c:3608 config/tc-msp430.c:3610 msgid "CPU13: SR is destinstion of SR altering instruction" msgstr "" -#: config/tc-msp430.c:2766 config/tc-msp430.c:2865 config/tc-msp430.c:3474 -#: config/tc-msp430.c:3643 +#: config/tc-msp430.c:2765 config/tc-msp430.c:2864 config/tc-msp430.c:3473 +#: config/tc-msp430.c:3642 msgid "repeat instruction used with non-register mode instruction" msgstr "" -#: config/tc-msp430.c:2841 config/tc-msp430.c:3188 config/tc-msp430.c:3599 +#: config/tc-msp430.c:2840 config/tc-msp430.c:3187 config/tc-msp430.c:3598 #, c-format msgid "%s: attempt to rotate the PC register" msgstr "" -#: config/tc-msp430.c:3090 config/tc-msp430.c:3161 +#: config/tc-msp430.c:3089 config/tc-msp430.c:3160 #, c-format msgid "expected #n as first argument of %s" msgstr "" -#: config/tc-msp430.c:3096 config/tc-msp430.c:3167 +#: config/tc-msp430.c:3095 config/tc-msp430.c:3166 #, c-format -msgid "expected constant expression for first argument of %s" +msgid "expected constant expression as first argument of %s" msgstr "" -#: config/tc-msp430.c:3122 +#: config/tc-msp430.c:3121 msgid "Too many registers popped" msgstr "" -#: config/tc-msp430.c:3132 +#: config/tc-msp430.c:3131 msgid "Cannot use POPM to restore the SR register" msgstr "" -#: config/tc-msp430.c:3152 config/tc-msp430.c:3216 +#: config/tc-msp430.c:3151 config/tc-msp430.c:3215 #, c-format msgid "repeat count cannot be used with %s" msgstr "" -#: config/tc-msp430.c:3174 +#: config/tc-msp430.c:3173 #, c-format msgid "expected first argument of %s to be in the range 1-4" msgstr "" -#: config/tc-msp430.c:3234 +#: config/tc-msp430.c:3233 #, c-format msgid "expected value of first argument of %s to fit into 20-bits" msgstr "" -#: config/tc-msp430.c:3253 +#: config/tc-msp430.c:3252 #, c-format msgid "expected register name or constant as first argument of %s" msgstr "" -#: config/tc-msp430.c:3342 +#: config/tc-msp430.c:3341 msgid "expected constant value as argument to RPT" msgstr "" -#: config/tc-msp430.c:3348 +#: config/tc-msp430.c:3347 msgid "expected constant in the range 2..16" msgstr "" -#: config/tc-msp430.c:3363 +#: config/tc-msp430.c:3362 msgid "PC used as an argument to RPT" msgstr "" -#: config/tc-msp430.c:3369 +#: config/tc-msp430.c:3368 msgid "expected constant or register name as argument to RPT insn" msgstr "" -#: config/tc-msp430.c:3376 -msgid "Illegal emulated instruction " +#: config/tc-msp430.c:3375 +msgid "Illegal emulated instruction" msgstr "" -#: config/tc-msp430.c:3628 +#: config/tc-msp430.c:3627 #, c-format msgid "%s instruction does not accept a .b suffix" msgstr "" -#: config/tc-msp430.c:3736 +#: config/tc-msp430.c:3735 #, c-format msgid "Even number required. Rounded to %d" msgstr "" -#: config/tc-msp430.c:3747 +#: config/tc-msp430.c:3746 #, c-format -msgid "Wrong displacement %d" +msgid "Wrong displacement %d" msgstr "" -#: config/tc-msp430.c:3769 +#: config/tc-msp430.c:3768 msgid "instruction requires label sans '$'" msgstr "" -#: config/tc-msp430.c:3773 +#: config/tc-msp430.c:3772 msgid "instruction requires label or value in range -511:512" msgstr "" -#: config/tc-msp430.c:3779 config/tc-msp430.c:3828 config/tc-msp430.c:3871 +#: config/tc-msp430.c:3778 config/tc-msp430.c:3827 config/tc-msp430.c:3870 msgid "instruction requires label" msgstr "" -#: config/tc-msp430.c:3787 config/tc-msp430.c:3834 +#: config/tc-msp430.c:3786 config/tc-msp430.c:3833 msgid "polymorphs are not enabled. Use -mP option to enable." msgstr "" -#: config/tc-msp430.c:3875 +#: config/tc-msp430.c:3874 msgid "Illegal instruction or not implemented opcode." msgstr "" -#: config/tc-msp430.c:4424 +#: config/tc-msp430.c:3905 config/tc-sh64.c:2479 +msgid "can't find opcode" +msgstr "" + +#: config/tc-msp430.c:4423 #, c-format msgid "internal inconsistency problem in %s: insn %04lx" msgstr "" -#: config/tc-msp430.c:4466 config/tc-msp430.c:4498 +#: config/tc-msp430.c:4465 config/tc-msp430.c:4497 #, c-format msgid "internal inconsistency problem in %s: ext. insn %04lx" msgstr "" -#: config/tc-msp430.c:4510 +#: config/tc-msp430.c:4509 #, c-format -msgid "internal inconsistency problem in %s: %lx" +msgid "internal inconsistency problem in %s: %lx" msgstr "" #: config/tc-mt.c:151 @@ -13180,7 +13199,7 @@ msgstr "" #: config/tc-nds32.c:4819 #, c-format -msgid "Can not find match relax hint. line : %d" +msgid "Can not find match relax hint. Line: %d" msgstr "" #: config/tc-nds32.c:4999 @@ -13195,7 +13214,7 @@ msgstr "" #: config/tc-nds32.c:5153 #, c-format -msgid "Not support instrcution %s in the baseline." +msgid "Instruction %s not supported in the baseline." msgstr "" #: config/tc-nds32.c:5208 @@ -13246,11 +13265,11 @@ msgstr "" msgid "need PIC qualifier with symbol." msgstr "" -#: config/tc-nios2.c:453 +#: config/tc-nios2.c:453 config/tc-pru.c:308 msgid "expecting opcode string in self test mode" msgstr "" -#: config/tc-nios2.c:455 +#: config/tc-nios2.c:455 config/tc-pru.c:310 #, c-format msgid "assembly 0x%08x, expected %s" msgstr "" @@ -13267,12 +13286,12 @@ msgstr "" msgid "error checking for overflow - broken assembler" msgstr "" -#: config/tc-nios2.c:1161 +#: config/tc-nios2.c:1161 config/tc-pru.c:571 #, c-format msgid "immediate value 0x%x truncated to 0x%x" msgstr "" -#: config/tc-nios2.c:1188 +#: config/tc-nios2.c:1188 config/tc-pru.c:597 #, c-format msgid "call target address 0x%08x out of range 0x%08x to 0x%08x" msgstr "" @@ -13287,7 +13306,7 @@ msgstr "" msgid "branch offset %d out of range" msgstr "" -#: config/tc-nios2.c:1204 +#: config/tc-nios2.c:1204 config/tc-pru.c:607 #, c-format msgid "%s offset %d out of range %d to %d" msgstr "" @@ -13297,12 +13316,13 @@ msgstr "" msgid "%s offset %d out of range" msgstr "" -#: config/tc-nios2.c:1213 config/tc-nios2.c:1228 +#: config/tc-nios2.c:1213 config/tc-nios2.c:1228 config/tc-pru.c:612 #, c-format msgid "immediate value %d out of range %d to %d" msgstr "" -#: config/tc-nios2.c:1218 config/tc-nios2.c:1223 +#: config/tc-nios2.c:1218 config/tc-nios2.c:1223 config/tc-pru.c:622 +#: config/tc-pru.c:627 #, c-format msgid "immediate value %u out of range %u to %u" msgstr "" @@ -13312,11 +13332,11 @@ msgstr "" msgid "custom instruction opcode %u out of range %u to %u" msgstr "" -#: config/tc-nios2.c:1238 +#: config/tc-nios2.c:1238 config/tc-pru.c:632 msgid "overflow in immediate argument" msgstr "" -#: config/tc-nios2.c:1310 +#: config/tc-nios2.c:1310 config/tc-pru.c:668 msgid "cannot create 64-bit relocation" msgstr "" @@ -13325,11 +13345,12 @@ msgstr "" msgid "internal error: broken opcode descriptor for `%s %s'\n" msgstr "" -#: config/tc-nios2.c:1487 +#: config/tc-nios2.c:1487 config/tc-pru.c:858 msgid "can't create relocation" msgstr "" -#: config/tc-nios2.c:1518 +#: config/tc-nios2.c:1518 config/tc-pru.c:992 config/tc-pru.c:1012 +#: config/tc-pru.c:1039 config/tc-pru.c:1058 config/tc-pru.c:1072 #, c-format msgid "unknown register %s" msgstr "" @@ -13387,16 +13408,18 @@ msgstr "" msgid "Invalid constant operand %s" msgstr "" -#: config/tc-nios2.c:2997 config/tc-nios2.c:3021 +#: config/tc-nios2.c:2997 config/tc-nios2.c:3021 config/tc-pru.c:1311 +#: config/tc-pru.c:1336 config/tc-pru.c:1356 #, c-format msgid "badly formed expression near %s" msgstr "" -#: config/tc-nios2.c:3110 config/tc-nios2.c:3137 config/tc-xtensa.c:2113 +#: config/tc-nios2.c:3110 config/tc-nios2.c:3137 config/tc-pru.c:1405 +#: config/tc-pru.c:1430 config/tc-xtensa.c:2113 msgid "too many arguments" msgstr "" -#: config/tc-nios2.c:3126 +#: config/tc-nios2.c:3126 config/tc-pru.c:1382 #, c-format msgid "expecting %c near %s" msgstr "" @@ -13417,12 +13440,12 @@ msgid "Big-endian R2 is not supported." msgstr "" #. Unrecognised instruction - error. -#: config/tc-nios2.c:3765 +#: config/tc-nios2.c:3765 config/tc-pru.c:1726 #, c-format msgid "unrecognised instruction %s" msgstr "" -#: config/tc-nios2.c:3885 +#: config/tc-nios2.c:3885 config/tc-pru.c:1782 #, c-format msgid "can't represent relocation type %s" msgstr "" @@ -13554,7 +13577,7 @@ msgstr "" #: config/tc-ns32k.c:1438 #, c-format -msgid "Internal logic error. line %d, file \"%s\"" +msgid "Internal logic error. Line %d, file: \"%s\"" msgstr "" #: config/tc-ns32k.c:1486 @@ -13728,24 +13751,28 @@ msgstr "" msgid "pcrel too far" msgstr "" -#: config/tc-ppc.c:1093 config/tc-ppc.c:1150 config/tc-ppc.c:1188 +#: config/tc-ppc.c:977 config/tc-ppc.c:985 config/tc-ppc.c:2980 +msgid "invalid register expression" +msgstr "" + +#: config/tc-ppc.c:1145 config/tc-ppc.c:1203 config/tc-ppc.c:1241 msgid "the use of -mvle requires big endian." msgstr "" -#: config/tc-ppc.c:1131 config/tc-ppc.c:1152 +#: config/tc-ppc.c:1183 config/tc-ppc.c:1205 msgid "the use of -mvle requires -a32." msgstr "" -#: config/tc-ppc.c:1133 +#: config/tc-ppc.c:1185 #, c-format msgid "%s unsupported" msgstr "" -#: config/tc-ppc.c:1242 +#: config/tc-ppc.c:1295 msgid "--nops needs a numeric argument" msgstr "" -#: config/tc-ppc.c:1259 +#: config/tc-ppc.c:1312 #, c-format msgid "" "PowerPC options:\n" @@ -13768,7 +13795,7 @@ msgid "" "-m821, -m850, -m860 generate code for PowerPC 821/850/860\n" msgstr "" -#: config/tc-ppc.c:1278 +#: config/tc-ppc.c:1331 #, c-format msgid "" "-mppc64, -m620 generate code for PowerPC 620/625/630\n" @@ -13785,11 +13812,11 @@ msgid "" "-mpower9, -mpwr9 generate code for Power9 architecture\n" "-mcell generate code for Cell Broadband Engine " "architecture\n" -"-mcom generate code Power/PowerPC common instructions\n" +"-mcom generate code for Power/PowerPC common instructions\n" "-many generate code for any architecture (PWR/PWRX/PPC)\n" msgstr "" -#: config/tc-ppc.c:1293 +#: config/tc-ppc.c:1346 #, c-format msgid "" "-maltivec generate code for AltiVec\n" @@ -13808,7 +13835,7 @@ msgid "" "-mno-regnames Do not allow symbolic names for registers\n" msgstr "" -#: config/tc-ppc.c:1309 +#: config/tc-ppc.c:1362 #, c-format msgid "" "-mrelocatable support for GCC's -mrelocatble option\n" @@ -13825,492 +13852,573 @@ msgid "" "-Qy, -Qn ignored\n" msgstr "" -#: config/tc-ppc.c:1323 +#: config/tc-ppc.c:1376 #, 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" msgstr "" -#: config/tc-ppc.c:1350 +#: config/tc-ppc.c:1403 #, c-format msgid "unknown default cpu = %s, os = %s" msgstr "" -#: config/tc-ppc.c:1378 +#: config/tc-ppc.c:1431 msgid "neither Power nor PowerPC opcodes were selected." msgstr "" -#: config/tc-ppc.c:1438 +#: config/tc-ppc.c:1491 #, c-format msgid "mask trims opcode bits for %s" msgstr "" -#: config/tc-ppc.c:1447 +#: config/tc-ppc.c:1500 #, c-format msgid "operand index error for %s" msgstr "" -#: config/tc-ppc.c:1463 +#: config/tc-ppc.c:1516 #, c-format msgid "operand %d overlap in %s" msgstr "" -#: config/tc-ppc.c:1515 +#: config/tc-ppc.c:1568 #, c-format msgid "powerpc_operands[%d].bitm invalid" msgstr "" -#: config/tc-ppc.c:1522 +#: config/tc-ppc.c:1575 #, c-format msgid "powerpc_operands[%d] duplicates powerpc_operands[%d]" msgstr "" -#: config/tc-ppc.c:1551 config/tc-ppc.c:1615 +#: config/tc-ppc.c:1604 config/tc-ppc.c:1668 #, c-format msgid "major opcode is not sorted for %s" msgstr "" -#: config/tc-ppc.c:1558 +#: config/tc-ppc.c:1611 #, c-format msgid "%s is enabled by vle flag" msgstr "" -#: config/tc-ppc.c:1565 +#: config/tc-ppc.c:1618 #, c-format msgid "%s not disabled by vle flag" msgstr "" -#: config/tc-ppc.c:1579 config/tc-ppc.c:1632 +#: config/tc-ppc.c:1632 config/tc-ppc.c:1685 #, c-format msgid "duplicate instruction %s" msgstr "" -#: config/tc-ppc.c:1652 +#: config/tc-ppc.c:1705 #, c-format msgid "duplicate macro %s" msgstr "" -#: config/tc-ppc.c:2034 +#: config/tc-ppc.c:2087 msgid "symbol+offset not supported for got tls" msgstr "" -#: config/tc-ppc.c:2111 config/tc-ppc.c:3612 config/tc-ppc.c:7017 +#: config/tc-ppc.c:2164 config/tc-ppc.c:3674 config/tc-ppc.c:7120 msgid "data in executable section" msgstr "" -#: config/tc-ppc.c:2152 config/tc-ppc.c:5252 +#: config/tc-ppc.c:2205 config/tc-ppc.c:5314 msgid "expected comma after symbol-name: rest of line ignored." msgstr "" -#: config/tc-ppc.c:2185 config/tc-ppc.c:5288 +#: config/tc-ppc.c:2238 config/tc-ppc.c:5350 #, c-format msgid "ignoring attempt to re-define symbol `%s'." msgstr "" -#: config/tc-ppc.c:2193 +#: config/tc-ppc.c:2246 #, c-format msgid "length of .lcomm \"%s\" is already %ld. Not changed to %ld." msgstr "" -#: config/tc-ppc.c:2211 +#: config/tc-ppc.c:2264 msgid "common alignment not a power of 2" msgstr "" -#: config/tc-ppc.c:2253 +#: config/tc-ppc.c:2306 #, c-format msgid "expected comma after name `%s' in .localentry directive" msgstr "" -#: config/tc-ppc.c:2263 +#: config/tc-ppc.c:2316 msgid "missing expression in .localentry directive" msgstr "" -#: config/tc-ppc.c:2277 +#: config/tc-ppc.c:2330 #, c-format msgid ".localentry expression for `%s' is not a valid power of 2" msgstr "" -#: config/tc-ppc.c:2291 +#: config/tc-ppc.c:2344 #, c-format msgid ".localentry expression for `%s' does not evaluate to a constant" msgstr "" -#: config/tc-ppc.c:2306 +#: config/tc-ppc.c:2359 msgid "missing expression in .abiversion directive" msgstr "" -#: config/tc-ppc.c:2315 +#: config/tc-ppc.c:2368 msgid ".abiversion expression does not evaluate to a constant" msgstr "" -#: config/tc-ppc.c:2337 +#: config/tc-ppc.c:2390 msgid "unknown .gnu_attribute value" msgstr "" -#: config/tc-ppc.c:2389 +#: config/tc-ppc.c:2442 msgid "relocation cannot be done when using -mrelocatable" msgstr "" -#: config/tc-ppc.c:2435 +#: config/tc-ppc.c:2488 msgid "TOC section size exceeds 64k" msgstr "" -#: config/tc-ppc.c:2530 +#: config/tc-ppc.c:2583 #, c-format msgid "syntax error: invalid toc specifier `%s'" msgstr "" -#: config/tc-ppc.c:2544 +#: config/tc-ppc.c:2597 #, c-format msgid "syntax error: expected `]', found `%c'" msgstr "" -#: config/tc-ppc.c:2653 +#: config/tc-ppc.c:2706 #, c-format msgid "unrecognized opcode: `%s'" msgstr "" -#: config/tc-ppc.c:2844 +#: config/tc-ppc.c:2897 msgid "[tocv] symbol is not a toc symbol" msgstr "" -#: config/tc-ppc.c:2855 +#: config/tc-ppc.c:2908 msgid "unimplemented toc32 expression modifier" msgstr "" -#: config/tc-ppc.c:2860 +#: config/tc-ppc.c:2913 msgid "unimplemented toc64 expression modifier" msgstr "" -#: config/tc-ppc.c:2864 +#: config/tc-ppc.c:2917 #, c-format msgid "Unexpected return value [%d] from parse_toc_entry!\n" msgstr "" -#: config/tc-ppc.c:3070 +#: config/tc-ppc.c:3132 #, c-format msgid "@tls may not be used with \"%s\" operands" msgstr "" -#: config/tc-ppc.c:3073 +#: config/tc-ppc.c:3135 msgid "@tls may only be used in last operand" msgstr "" -#: config/tc-ppc.c:3203 +#: config/tc-ppc.c:3265 #, c-format msgid "assuming %s on symbol" msgstr "" -#: config/tc-ppc.c:3306 +#: config/tc-ppc.c:3368 msgid "unsupported relocation for DS offset field" msgstr "" -#: config/tc-ppc.c:3348 +#: config/tc-ppc.c:3410 #, c-format msgid "syntax error; end of line, expected `%c'" msgstr "" -#: config/tc-ppc.c:3350 +#: config/tc-ppc.c:3412 #, c-format msgid "syntax error; found `%c', expected `%c'" msgstr "" -#: config/tc-ppc.c:3420 config/tc-ppc.c:6371 +#: config/tc-ppc.c:3482 config/tc-ppc.c:6433 msgid "instruction address is not a multiple of 4" msgstr "" -#: config/tc-ppc.c:3649 +#: config/tc-ppc.c:3711 msgid "missing size" msgstr "" -#: config/tc-ppc.c:3658 +#: config/tc-ppc.c:3720 msgid "negative size" msgstr "" -#: config/tc-ppc.c:3690 +#: config/tc-ppc.c:3752 msgid "missing real symbol name" msgstr "" -#: config/tc-ppc.c:3729 +#: config/tc-ppc.c:3791 msgid "attempt to redefine symbol" msgstr "" -#: config/tc-ppc.c:3992 +#: config/tc-ppc.c:4054 #, c-format msgid "no known dwarf XCOFF section for flag 0x%08x\n" msgstr "" -#: config/tc-ppc.c:4005 +#: config/tc-ppc.c:4067 #, c-format msgid "label %s was not defined in this dwarf section" msgstr "" -#: config/tc-ppc.c:4119 +#: config/tc-ppc.c:4181 msgid "the XCOFF file format does not support arbitrary sections" msgstr "" -#: config/tc-ppc.c:4190 +#: config/tc-ppc.c:4252 msgid ".ref outside .csect" msgstr "" -#: config/tc-ppc.c:4211 config/tc-ppc.c:4411 +#: config/tc-ppc.c:4273 config/tc-ppc.c:4473 msgid "missing symbol name" msgstr "" -#: config/tc-ppc.c:4241 +#: config/tc-ppc.c:4303 msgid "missing rename string" msgstr "" -#: config/tc-ppc.c:4271 config/tc-ppc.c:4810 read.c:3523 +#: config/tc-ppc.c:4333 config/tc-ppc.c:4872 read.c:3523 msgid "missing value" msgstr "" -#: config/tc-ppc.c:4289 +#: config/tc-ppc.c:4351 msgid "illegal .stabx expression; zero assumed" msgstr "" -#: config/tc-ppc.c:4321 +#: config/tc-ppc.c:4383 msgid "missing class" msgstr "" -#: config/tc-ppc.c:4330 +#: config/tc-ppc.c:4392 msgid "missing type" msgstr "" -#: config/tc-ppc.c:4357 +#: config/tc-ppc.c:4419 msgid ".stabx of storage class stsym must be within .bs/.es" msgstr "" -#: config/tc-ppc.c:4598 +#: config/tc-ppc.c:4660 msgid "nested .bs blocks" msgstr "" -#: config/tc-ppc.c:4629 +#: config/tc-ppc.c:4691 msgid ".es without preceding .bs" msgstr "" -#: config/tc-ppc.c:4802 +#: config/tc-ppc.c:4864 msgid "non-constant byte count" msgstr "" -#: config/tc-ppc.c:4876 +#: config/tc-ppc.c:4938 msgid ".tc not in .toc section" msgstr "" -#: config/tc-ppc.c:4894 +#: config/tc-ppc.c:4956 msgid ".tc with no label" msgstr "" -#: config/tc-ppc.c:4978 config/tc-s390.c:1954 +#: config/tc-ppc.c:5040 config/tc-s390.c:1956 msgid ".machine stack overflow" msgstr "" -#: config/tc-ppc.c:4985 config/tc-s390.c:1965 +#: config/tc-ppc.c:5047 config/tc-s390.c:1967 msgid ".machine stack underflow" msgstr "" -#: config/tc-ppc.c:4992 config/tc-s390.c:1977 +#: config/tc-ppc.c:5054 config/tc-s390.c:1979 #, c-format msgid "invalid machine `%s'" msgstr "" -#: config/tc-ppc.c:5024 +#: config/tc-ppc.c:5086 msgid "no previous section to return to, ignored." msgstr "" -#: config/tc-ppc.c:5297 +#: config/tc-ppc.c:5359 #, c-format msgid "length of .comm \"%s\" is already %ld. Not changed to %ld." msgstr "" #. Section Contents #. unknown -#: config/tc-ppc.c:5425 +#: config/tc-ppc.c:5487 msgid "unsupported section attribute -- 'a'" msgstr "" -#: config/tc-ppc.c:5608 +#: config/tc-ppc.c:5670 msgid "bad symbol suffix" msgstr "" -#: config/tc-ppc.c:5701 +#: config/tc-ppc.c:5763 msgid "unrecognized symbol suffix" msgstr "" -#: config/tc-ppc.c:5788 +#: config/tc-ppc.c:5850 msgid "two .function pseudo-ops with no intervening .ef" msgstr "" -#: config/tc-ppc.c:5801 +#: config/tc-ppc.c:5863 msgid ".ef with no preceding .function" msgstr "" -#: config/tc-ppc.c:5930 +#: config/tc-ppc.c:5992 #, c-format msgid "warning: symbol %s has no csect" msgstr "" -#: config/tc-ppc.c:6192 +#: config/tc-ppc.c:6254 msgid "symbol in .toc does not match any .tc" msgstr "" -#: config/tc-ppc.c:6781 +#: config/tc-ppc.c:6884 #, c-format msgid "%s unsupported as instruction fixup" msgstr "" -#: config/tc-ppc.c:6855 +#: config/tc-ppc.c:6958 #, c-format msgid "unsupported relocation against %s" msgstr "" -#: config/tc-ppc.c:7000 +#: config/tc-ppc.c:7103 #, c-format msgid "Gas failure, reloc value %d\n" msgstr "" -#: config/tc-ppc.c:7084 +#: config/tc-pru.c:602 +#, c-format +msgid "quick branch offset %d out of range %d to %d" +msgstr "" + +#: config/tc-pru.c:617 +#, c-format +msgid "immediate value %llu out of range %u to %lu" +msgstr "" + +#: config/tc-pru.c:697 +msgid "unexpected PC relative expression" +msgstr "" + +#: config/tc-pru.c:734 config/tc-pru.c:741 +msgid "residual low bits in pmem diff relocation" +msgstr "" + +#: config/tc-pru.c:934 config/tc-pru.c:967 +#, c-format +msgid "trailing garbage after expression: %s" +msgstr "" + +#: config/tc-pru.c:939 +#, c-format +msgid "expected expression, got %s" +msgstr "" + +#: config/tc-pru.c:972 +#, c-format +msgid "expected constant expression, got %s" +msgstr "" + +#: config/tc-pru.c:1025 +msgid "data transfer register cannot be halfword" +msgstr "" + +#: config/tc-pru.c:1044 +msgid "destination register must be full-word" +msgstr "" + +#: config/tc-pru.c:1076 +#, c-format +msgid "cannot use partial register %s for addressing" +msgstr "" + +#: config/tc-pru.c:1109 #, c-format -msgid "cannot emit PC relative %s relocation against %s" +msgid "loop count constant %ld is out of range [1..%d]" +msgstr "" + +#: config/tc-pru.c:1208 config/tc-pru.c:1234 +#, c-format +msgid "byte count constant %ld is out of range [1..%d]" +msgstr "" + +#: config/tc-pru.c:1215 config/tc-pru.c:1241 +msgid "only r0 can be used as byte count register" msgstr "" -#: config/tc-ppc.c:7091 -msgid "unable to resolve expression" +#: config/tc-pru.c:1217 config/tc-pru.c:1243 +msgid "only r0.bX byte fields of r0 can be used as byte count" +msgstr "" + +#: config/tc-pru.c:1256 +#, c-format +msgid "invalid constant table offset %ld" +msgstr "" + +#: config/tc-pru.c:1267 +#, c-format +msgid "invalid WakeOnStatus %ld" +msgstr "" + +#: config/tc-pru.c:1278 +#, c-format +msgid "invalid XFR WideBus Address %ld" msgstr "" -#: config/tc-riscv.c:405 +#: config/tc-pru.c:1536 +#, 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 "" + +#: config/tc-pru.c:1828 +#, c-format +msgid "Label \"%s\" matches a CPU register name" +msgstr "" + +#: config/tc-riscv.c:412 #, c-format msgid "internal error: can't hash `%s': %s" msgstr "" -#: config/tc-riscv.c:486 +#: config/tc-riscv.c:493 #, c-format msgid "internal: bad RISC-V opcode (mask error): %s %s" msgstr "" -#: config/tc-riscv.c:524 +#: config/tc-riscv.c:532 #, c-format msgid "internal: bad RISC-V opcode (unknown operand type `C%c'): %s %s" msgstr "" -#: config/tc-riscv.c:559 +#: config/tc-riscv.c:567 #, c-format msgid "internal: bad RISC-V opcode (unknown operand type `%c'): %s %s" msgstr "" -#: config/tc-riscv.c:567 +#: config/tc-riscv.c:575 #, c-format msgid "internal: bad RISC-V opcode (bits 0x%lx undefined): %s %s" msgstr "" -#: config/tc-riscv.c:691 +#: config/tc-riscv.c:696 #, c-format msgid "Unsupported RISC-V relocation number %d" msgstr "" -#: config/tc-riscv.c:763 +#: config/tc-riscv.c:768 msgid "internal error: invalid macro" msgstr "" -#: config/tc-riscv.c:792 config/tc-riscv.c:859 +#: config/tc-riscv.c:797 config/tc-riscv.c:864 msgid "unsupported large constant" msgstr "" -#: config/tc-riscv.c:794 +#: config/tc-riscv.c:799 #, c-format msgid "Instruction %s requires absolute expression" msgstr "" -#: config/tc-riscv.c:1015 +#: config/tc-riscv.c:1020 #, c-format msgid "Macro %s not implemented" msgstr "" -#: config/tc-riscv.c:1399 +#: config/tc-riscv.c:1411 #, c-format msgid "bad RVC field specifier 'C%c'\n" msgstr "" -#: config/tc-riscv.c:1422 config/tc-riscv.c:1433 +#: config/tc-riscv.c:1434 config/tc-riscv.c:1445 #, c-format msgid "Improper shift amount (%lu)" msgstr "" -#: config/tc-riscv.c:1444 +#: config/tc-riscv.c:1456 #, c-format msgid "Improper CSRxI immediate (%lu)" msgstr "" -#: config/tc-riscv.c:1459 +#: config/tc-riscv.c:1471 #, c-format msgid "Improper CSR address (%lu)" msgstr "" -#: config/tc-riscv.c:1621 +#: config/tc-riscv.c:1633 msgid "lui expression not in range 0..1048575" msgstr "" -#: config/tc-riscv.c:1649 +#: config/tc-riscv.c:1661 #, c-format msgid "internal error: bad argument type %c" msgstr "" -#: config/tc-riscv.c:1654 +#: config/tc-riscv.c:1666 msgid "illegal operands" msgstr "" -#: config/tc-riscv.c:1957 +#: config/tc-riscv.c:1983 #, c-format msgid "internal error: bad CFA value #%d" msgstr "" -#: config/tc-riscv.c:2034 +#: config/tc-riscv.c:2060 #, c-format msgid "internal error: bad relocation #%d" msgstr "" -#: config/tc-riscv.c:2133 +#: config/tc-riscv.c:2065 +msgid "unsupported symbol subtraction" +msgstr "" + +#: config/tc-riscv.c:2161 msgid ".option pop with no .option push" msgstr "" -#: config/tc-riscv.c:2143 +#: config/tc-riscv.c:2171 #, c-format msgid "Unrecognized .option directive: %s\n" msgstr "" -#: config/tc-riscv.c:2163 +#: config/tc-riscv.c:2191 #, c-format msgid "Unsupported use of %s" msgstr "" -#: config/tc-riscv.c:2307 +#: config/tc-riscv.c:2335 #, c-format msgid "cannot represent %s relocation in object file" msgstr "" -#: config/tc-riscv.c:2448 +#: config/tc-riscv.c:2476 #, c-format msgid "" "RISC-V options:\n" -" -m32 assemble RV32 code\n" -" -m64 assemble RV64 code (default)\n" " -fpic generate position-independent code\n" " -fno-pic don't generate position-independent code (default)\n" -" -msoft-float don't use F registers for floating-point values\n" -" -mhard-float use F registers for floating-point values (default)\n" -" -mno-rvc disable the C extension for compressed instructions " -"(default)\n" -" -mrvc enable the C extension for compressed instructions\n" -" -march=ISA set the RISC-V architecture, RV64IMAFD by default\n" +" -march=ISA set the RISC-V architecture\n" +" -mabi=ABI set the RISC-V ABI\n" msgstr "" -#: config/tc-riscv.c:2480 +#: config/tc-riscv.c:2503 #, c-format msgid "unknown register `%s'" msgstr "" -#: config/tc-riscv.c:2501 +#: config/tc-riscv.c:2524 #, c-format msgid "non-constant .%cleb128 is not supported" msgstr "" @@ -14546,26 +14654,26 @@ msgid "" "string instruction support" msgstr "" -#: config/tc-s390.c:238 config/tc-sparc.c:314 +#: config/tc-s390.c:238 config/tc-sparc.c:315 msgid "Invalid default architecture, broken assembler." msgstr "" -#: config/tc-s390.c:371 +#: config/tc-s390.c:373 #, c-format msgid "no such machine extension `%s'" msgstr "" -#: config/tc-s390.c:382 +#: config/tc-s390.c:384 #, c-format msgid "junk at end of machine string, first unrecognized character is `%c'" msgstr "" -#: config/tc-s390.c:449 config/tc-sparc.c:527 +#: config/tc-s390.c:451 config/tc-sparc.c:528 #, c-format msgid "invalid architecture -A%s" msgstr "" -#: config/tc-s390.c:472 +#: config/tc-s390.c:474 #, c-format msgid "" " S390 options:\n" @@ -14576,145 +14684,145 @@ msgid "" " -m64 Set file format to 64 bit format\n" msgstr "" -#: config/tc-s390.c:479 +#: config/tc-s390.c:481 #, c-format msgid "" " -V print assembler version number\n" " -Qy, -Qn ignored\n" msgstr "" -#: config/tc-s390.c:563 +#: config/tc-s390.c:565 msgid "The 64 bit file format is used without esame instructions." msgstr "" -#: config/tc-s390.c:579 +#: config/tc-s390.c:581 #, c-format msgid "Internal assembler error for instruction format %s" msgstr "" -#: config/tc-s390.c:625 +#: config/tc-s390.c:627 #, c-format msgid "operand out of range (%s not between %ld and %ld)" msgstr "" -#: config/tc-s390.c:850 +#: config/tc-s390.c:852 #, c-format msgid "identifier+constant@%s means identifier@%s+constant" msgstr "" -#: config/tc-s390.c:931 +#: config/tc-s390.c:933 msgid "Can't handle O_big in s390_exp_compare" msgstr "" -#: config/tc-s390.c:1013 +#: config/tc-s390.c:1015 msgid "Invalid suffix for literal pool entry" msgstr "" -#: config/tc-s390.c:1070 +#: config/tc-s390.c:1072 msgid "Big number is too big" msgstr "" -#: config/tc-s390.c:1217 +#: config/tc-s390.c:1219 msgid "relocation not applicable" msgstr "" -#: config/tc-s390.c:1341 +#: config/tc-s390.c:1343 msgid "invalid length field specified" msgstr "" -#: config/tc-s390.c:1345 +#: config/tc-s390.c:1347 msgid "index register specified but zero" msgstr "" -#: config/tc-s390.c:1349 +#: config/tc-s390.c:1351 msgid "base register specified but zero" msgstr "" -#: config/tc-s390.c:1353 +#: config/tc-s390.c:1355 msgid "odd numbered general purpose register specified as register pair" msgstr "" -#: config/tc-s390.c:1361 +#: config/tc-s390.c:1363 msgid "" "invalid floating point register pair. Valid fp register pair operands are " "0, 1, 4, 5, 8, 9, 12 or 13." msgstr "" -#: config/tc-s390.c:1450 +#: config/tc-s390.c:1452 msgid "invalid operand suffix" msgstr "" -#: config/tc-s390.c:1473 +#: config/tc-s390.c:1475 msgid "syntax error; missing '(' after displacement" msgstr "" -#: config/tc-s390.c:1489 config/tc-s390.c:1533 config/tc-s390.c:1567 -msgid "syntax error; expected ," +#: config/tc-s390.c:1491 config/tc-s390.c:1535 config/tc-s390.c:1569 +msgid "syntax error; expected ','" msgstr "" -#: config/tc-s390.c:1521 +#: config/tc-s390.c:1523 msgid "syntax error; missing ')' after base register" msgstr "" -#: config/tc-s390.c:1550 +#: config/tc-s390.c:1552 msgid "syntax error; ')' not allowed here" msgstr "" -#: config/tc-s390.c:1692 +#: config/tc-s390.c:1694 #, c-format msgid "Opcode %s not available in this mode" msgstr "" -#: config/tc-s390.c:1747 config/tc-s390.c:1770 config/tc-s390.c:1783 +#: config/tc-s390.c:1749 config/tc-s390.c:1772 config/tc-s390.c:1785 msgid "Invalid .insn format\n" msgstr "" -#: config/tc-s390.c:1755 +#: config/tc-s390.c:1757 #, c-format msgid "Unrecognized opcode format: `%s'" msgstr "" -#: config/tc-s390.c:1786 +#: config/tc-s390.c:1788 msgid "second operand of .insn not a constant\n" msgstr "" -#: config/tc-s390.c:1789 +#: config/tc-s390.c:1791 msgid "missing comma after insn constant\n" msgstr "" -#: config/tc-s390.c:2026 +#: config/tc-s390.c:2028 msgid ".machinemode stack overflow" msgstr "" -#: config/tc-s390.c:2033 +#: config/tc-s390.c:2035 msgid ".machinemode stack underflow" msgstr "" -#: config/tc-s390.c:2050 +#: config/tc-s390.c:2052 #, c-format msgid "invalid machine mode `%s'" msgstr "" -#: config/tc-s390.c:2250 +#: config/tc-s390.c:2252 #, c-format msgid "cannot emit relocation %s against subsy symbol %s" msgstr "" -#: config/tc-s390.c:2367 +#: config/tc-s390.c:2369 msgid "unsupported relocation type" msgstr "" -#: config/tc-s390.c:2422 +#: config/tc-s390.c:2424 #, c-format msgid "cannot emit PC relative %s relocation%s%s" msgstr "" -#: config/tc-s390.c:2561 +#: config/tc-s390.c:2563 #, c-format msgid "Gas failure, reloc type %s\n" msgstr "" -#: config/tc-s390.c:2563 +#: config/tc-s390.c:2565 #, c-format msgid "Gas failure, reloc type #%i\n" msgstr "" @@ -14743,8 +14851,8 @@ msgstr "" msgid "S+core co-processor register expected" msgstr "" -#: config/tc-score.c:1074 config/tc-score.c:2068 -msgid "Using temp register(r1)" +#: config/tc-score.c:1074 +msgid "Using temp register (r1)" msgstr "" #: config/tc-score.c:1093 @@ -14772,9 +14880,13 @@ msgstr "" msgid "invalid constant: bit expression not defined" msgstr "" +#: config/tc-score.c:2068 +msgid "Using temp register(r1)" +msgstr "" + #: config/tc-score.c:2082 #, c-format -msgid "low register(r0-r15)expected, not '%.100s'" +msgid "low register (r0-r15) expected, not '%.100s'" msgstr "" #: config/tc-score.c:2144 config/tc-score.c:3482 config/tc-score.c:3650 @@ -14793,17 +14905,17 @@ msgstr "" #: config/tc-score.c:2347 #, c-format -msgid "Fix data dependency: %s %s -- %s %s (insert %d nop!/%d)" +msgid "Fix data dependency: %s %s -- %s %s (insert %d nop!/%d)" msgstr "" #: config/tc-score.c:2366 #, c-format -msgid "Fix data dependency: %s %s -- %s %s (insert 1 pflush/%d)" +msgid "Fix data dependency: %s %s -- %s %s (insert 1 pflush/%d)" msgstr "" #: config/tc-score.c:2382 config/tc-score.c:2389 #, c-format -msgid "data dependency: %s %s -- %s %s (%d/%d bubble)" +msgid "data dependency: %s %s -- %s %s (%d/%d bubble)" msgstr "" #: config/tc-score.c:2838 @@ -14912,7 +15024,7 @@ msgid "invalid constant: 25 bit expression not in range [-16777216, 16777215]" msgstr "" #: config/tc-score.c:5231 -msgid "invalid constant: 20 bit expression not in range -2^19..2^19" +msgid "invalid constant: 20 bit expression not in range -2^19..2^19-1" msgstr "" #: config/tc-score.c:5264 @@ -14924,7 +15036,7 @@ msgid "invalid constant: 10 bit expression not in range [-2^9, 2^9-1]" msgstr "" #: config/tc-score.c:5365 -msgid "pce instruction error (16 bit || 16 bit)'" +msgid "pce instruction error (16 bit || 16 bit)." msgstr "" #: config/tc-score.c:5383 config/tc-score.c:5407 config/tc-score.c:5434 @@ -14946,7 +15058,7 @@ msgstr "" msgid "error setting flags for \".sbss\": %s" msgstr "" -#: config/tc-score.c:6155 config/tc-sparc.c:4169 +#: config/tc-score.c:6155 config/tc-sparc.c:4208 msgid "missing alignment" msgstr "" @@ -14968,19 +15080,19 @@ msgstr "" msgid "bad call to MD_ATOF()" msgstr "" -#: config/tc-score.c:7197 +#: config/tc-score.c:7197 config/tc-score.c:7263 #, c-format -msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9]" +msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9-1]" msgstr "" #: config/tc-score.c:7212 config/tc-score.c:7241 config/tc-score.c:7293 #, c-format -msgid " branch relocation truncate (0x%x) [-2^19 ~ 2^19]" +msgid " branch relocation truncate (0x%x) [-2^19 ~ 2^19-1]" msgstr "" -#: config/tc-score.c:7263 config/tc-score.c:7318 +#: config/tc-score.c:7318 #, c-format -msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9]" +msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9-1]" msgstr "" #: config/tc-score.c:7488 @@ -15010,48 +15122,44 @@ msgstr "" #: config/tc-score.c:7810 #, c-format -msgid " -FIXDD\t\tassemble code for fix data dependency\n" +msgid " -FIXDD\t\tfix data dependencies\n" msgstr "" #: config/tc-score.c:7812 #, c-format msgid "" -" -NWARN\t\tassemble code for no warning message for fix data " -"dependency\n" +" -NWARN\t\tdo not print warning message when fixing data " +"dependencies\n" msgstr "" #: config/tc-score.c:7814 #, c-format -msgid " -SCORE5\t\tassemble code for target is SCORE5\n" +msgid " -SCORE5\t\tassemble code for target SCORE5\n" msgstr "" #: config/tc-score.c:7816 #, c-format -msgid " -SCORE5U\tassemble code for target is SCORE5U\n" +msgid " -SCORE5U\tassemble code for target SCORE5U\n" msgstr "" #: config/tc-score.c:7818 #, c-format -msgid "" -" -SCORE7\t\tassemble code for target is SCORE7, this is default " -"setting\n" +msgid " -SCORE7\t\tassemble code for target SCORE7 [default]\n" msgstr "" #: config/tc-score.c:7820 #, c-format -msgid " -SCORE3\t\tassemble code for target is SCORE3\n" +msgid " -SCORE3\t\tassemble code for target SCORE3\n" msgstr "" #: config/tc-score.c:7822 #, c-format -msgid "" -" -march=score7\tassemble code for target is SCORE7, this is default " -"setting\n" +msgid " -march=score7\tassemble code for target SCORE7 [default]\n" msgstr "" #: config/tc-score.c:7824 #, c-format -msgid " -march=score3\tassemble code for target is SCORE3\n" +msgid " -march=score3\tassemble code for target SCORE3\n" msgstr "" #: config/tc-score.c:7826 @@ -15063,23 +15171,23 @@ msgstr "" #: config/tc-score.c:7828 #, c-format -msgid " -KPIC\t\tassemble code for PIC\n" +msgid " -KPIC\t\tgenerate PIC\n" msgstr "" #: config/tc-score.c:7830 #, c-format -msgid " -O0\t\tassembler will not perform any optimizations\n" +msgid " -O0\t\tdo not perform any optimizations\n" msgstr "" #: config/tc-score.c:7832 #, c-format msgid "" -" -G gpnum\tassemble code for setting gpsize and default is 8 byte\n" +" -G gpnum\tassemble code for setting gpsize, default is 8 bytes\n" msgstr "" #: config/tc-score.c:7834 #, c-format -msgid " -V \t\tSunplus release version \n" +msgid " -V \t\tSunplus release version\n" msgstr "" #: config/tc-sh.c:62 @@ -15370,8 +15478,8 @@ msgstr "" msgid "overflow in branch to %s; converted into longer instruction sequence" msgstr "" -#: config/tc-sh.c:3750 config/tc-sh.c:3797 config/tc-sparc.c:4669 -#: config/tc-sparc.c:4693 +#: config/tc-sh.c:3750 config/tc-sh.c:3797 config/tc-sparc.c:4708 +#: config/tc-sparc.c:4732 msgid "misaligned data" msgstr "" @@ -15490,10 +15598,6 @@ msgstr "" msgid "invalid PIC reference" msgstr "" -#: config/tc-sh64.c:2479 -msgid "can't find opcode" -msgstr "" - #: config/tc-sh64.c:2682 config/tc-sh64.c:2722 msgid "invalid operand: expression in PT target" msgstr "" @@ -15573,26 +15677,26 @@ msgstr "" msgid "Invalid DataLabel expression" msgstr "" -#: config/tc-sparc.c:318 config/tc-sparc.c:533 +#: config/tc-sparc.c:319 config/tc-sparc.c:534 msgid "Bad opcode table, broken assembler." msgstr "" -#: config/tc-sparc.c:525 +#: config/tc-sparc.c:526 #, c-format msgid "invalid architecture -xarch=%s" msgstr "" -#: config/tc-sparc.c:606 +#: config/tc-sparc.c:607 #, c-format msgid "No compiled in support for %d bit object file format" msgstr "" -#: config/tc-sparc.c:691 +#: config/tc-sparc.c:692 #, c-format msgid "SPARC options:\n" msgstr "" -#: config/tc-sparc.c:720 +#: config/tc-sparc.c:721 #, c-format msgid "" "\n" @@ -15604,24 +15708,24 @@ msgid "" "-no-relax\t\tavoid changing any jumps and branches\n" msgstr "" -#: config/tc-sparc.c:728 +#: config/tc-sparc.c:729 #, c-format msgid "-k\t\t\tgenerate PIC\n" msgstr "" -#: config/tc-sparc.c:732 +#: config/tc-sparc.c:733 #, c-format msgid "" "-32\t\t\tcreate 32 bit object file\n" "-64\t\t\tcreate 64 bit object file\n" msgstr "" -#: config/tc-sparc.c:735 +#: config/tc-sparc.c:736 #, c-format msgid "\t\t\t[default is %d]\n" msgstr "" -#: config/tc-sparc.c:737 +#: config/tc-sparc.c:738 #, c-format msgid "" "-TSO\t\t\tuse Total Store Ordering\n" @@ -15629,12 +15733,12 @@ msgid "" "-RMO\t\t\tuse Relaxed Memory Ordering\n" msgstr "" -#: config/tc-sparc.c:741 +#: config/tc-sparc.c:742 #, c-format msgid "\t\t\t[default is %s]\n" msgstr "" -#: config/tc-sparc.c:743 +#: config/tc-sparc.c:744 #, c-format msgid "" "-KPIC\t\t\tgenerate PIC\n" @@ -15649,7 +15753,7 @@ msgid "" "-s\t\t\tignored\n" msgstr "" -#: config/tc-sparc.c:756 +#: config/tc-sparc.c:757 #, c-format msgid "" "-EL\t\t\tgenerate code for a little endian machine\n" @@ -15658,340 +15762,340 @@ msgid "" " instructions and little endian data.\n" msgstr "" -#: config/tc-sparc.c:1023 +#: config/tc-sparc.c:1024 #, c-format msgid "Internal error: losing opcode: `%s' \"%s\"\n" msgstr "" -#: config/tc-sparc.c:1042 +#: config/tc-sparc.c:1043 #, c-format msgid "Internal error: can't find opcode `%s' for `%s'\n" msgstr "" -#: config/tc-sparc.c:1258 +#: config/tc-sparc.c:1259 msgid "Support for 64-bit arithmetic not compiled in." msgstr "" -#: config/tc-sparc.c:1304 +#: config/tc-sparc.c:1305 msgid "set: number not in 0..4294967295 range" msgstr "" -#: config/tc-sparc.c:1311 +#: config/tc-sparc.c:1312 msgid "set: number not in -2147483648..4294967295 range" msgstr "" -#: config/tc-sparc.c:1370 +#: config/tc-sparc.c:1371 msgid "setsw: number not in -2147483648..4294967295 range" msgstr "" -#: config/tc-sparc.c:1418 +#: config/tc-sparc.c:1419 msgid "setx: temporary register same as destination register" msgstr "" -#: config/tc-sparc.c:1489 +#: config/tc-sparc.c:1490 msgid "setx: illegal temporary register g0" msgstr "" -#: config/tc-sparc.c:1597 +#: config/tc-sparc.c:1598 msgid "unpredictable DCTI couple" msgstr "" -#: config/tc-sparc.c:1607 +#: config/tc-sparc.c:1608 msgid "FP branch in delay slot" msgstr "" -#: config/tc-sparc.c:1623 +#: config/tc-sparc.c:1624 msgid "FP branch preceded by FP instruction; NOP inserted" msgstr "" -#: config/tc-sparc.c:1663 +#: config/tc-sparc.c:1664 msgid "failed special case insn sanity check" msgstr "" -#: config/tc-sparc.c:1834 +#: config/tc-sparc.c:1836 msgid ": invalid membar mask name" msgstr "" -#: config/tc-sparc.c:1850 +#: config/tc-sparc.c:1852 msgid ": invalid membar mask expression" msgstr "" -#: config/tc-sparc.c:1855 +#: config/tc-sparc.c:1857 msgid ": invalid membar mask number" msgstr "" -#: config/tc-sparc.c:1870 +#: config/tc-sparc.c:1872 msgid ": invalid siam mode expression" msgstr "" -#: config/tc-sparc.c:1875 +#: config/tc-sparc.c:1877 msgid ": invalid siam mode number" msgstr "" -#: config/tc-sparc.c:1891 +#: config/tc-sparc.c:1893 msgid ": invalid prefetch function name" msgstr "" -#: config/tc-sparc.c:1899 +#: config/tc-sparc.c:1901 msgid ": invalid prefetch function expression" msgstr "" -#: config/tc-sparc.c:1904 +#: config/tc-sparc.c:1906 msgid ": invalid prefetch function number" msgstr "" -#: config/tc-sparc.c:1931 config/tc-sparc.c:1937 config/tc-sparc.c:1946 +#: config/tc-sparc.c:1933 config/tc-sparc.c:1939 config/tc-sparc.c:1948 msgid ": unrecognizable privileged register" msgstr "" -#: config/tc-sparc.c:1969 config/tc-sparc.c:1975 config/tc-sparc.c:1984 +#: config/tc-sparc.c:1971 config/tc-sparc.c:1977 config/tc-sparc.c:1986 msgid ": unrecognizable hyperprivileged register" msgstr "" -#: config/tc-sparc.c:2007 config/tc-sparc.c:2013 config/tc-sparc.c:2022 +#: config/tc-sparc.c:2009 config/tc-sparc.c:2015 config/tc-sparc.c:2024 msgid ": unrecognizable ancillary state register" msgstr "" -#: config/tc-sparc.c:2055 +#: config/tc-sparc.c:2057 msgid ": asr number must be between 0 and 31" msgstr "" -#: config/tc-sparc.c:2064 +#: config/tc-sparc.c:2066 #, c-format msgid ": expecting %asrN" msgstr "" -#: config/tc-sparc.c:2106 +#: config/tc-sparc.c:2108 msgid ": crypto immediate must be between 0 and 31" msgstr "" -#: config/tc-sparc.c:2115 +#: config/tc-sparc.c:2117 msgid ": expecting crypto immediate" msgstr "" -#: config/tc-sparc.c:2276 config/tc-sparc.c:2315 config/tc-sparc.c:2715 -#: config/tc-sparc.c:2751 +#: config/tc-sparc.c:2278 config/tc-sparc.c:2317 config/tc-sparc.c:2717 +#: config/tc-sparc.c:2753 #, c-format msgid "Illegal operands: %%%s requires arguments in ()" msgstr "" -#: config/tc-sparc.c:2283 +#: config/tc-sparc.c:2285 #, c-format msgid "" "Illegal operands: %%%s cannot be used together with other relocs in the insn " "()" msgstr "" -#: config/tc-sparc.c:2294 +#: config/tc-sparc.c:2296 #, c-format msgid "Illegal operands: %%%s can be only used with call __tls_get_addr" msgstr "" -#: config/tc-sparc.c:2501 +#: config/tc-sparc.c:2503 msgid "detected global register use not covered by .register pseudo-op" msgstr "" -#: config/tc-sparc.c:2583 +#: config/tc-sparc.c:2585 msgid ": There are only 64 f registers; [0-63]" msgstr "" -#: config/tc-sparc.c:2585 config/tc-sparc.c:2603 +#: config/tc-sparc.c:2587 config/tc-sparc.c:2605 msgid ": There are only 32 f registers; [0-31]" msgstr "" -#: config/tc-sparc.c:2595 +#: config/tc-sparc.c:2597 msgid ": There are only 32 single precision f registers; [0-31]" msgstr "" -#: config/tc-sparc.c:2616 +#: config/tc-sparc.c:2618 msgid ": Instruction requires frs2 and frsd must be the same register" msgstr "" -#: config/tc-sparc.c:2760 +#: config/tc-sparc.c:2762 #, c-format msgid "Expression inside %%%s could not be parsed" msgstr "" -#: config/tc-sparc.c:2768 +#: config/tc-sparc.c:2770 #, c-format msgid "" "Illegal operands: Can't do arithmetics other than + and - involving %%%s()" msgstr "" -#: config/tc-sparc.c:2885 +#: config/tc-sparc.c:2887 #, c-format msgid "Illegal operands: Can't add non-constant expression to %%%s()" msgstr "" -#: config/tc-sparc.c:2895 +#: config/tc-sparc.c:2897 #, c-format msgid "" "Illegal operands: Can't do arithmetics involving %%%s() of a relocatable " "symbol" msgstr "" -#: config/tc-sparc.c:2913 +#: config/tc-sparc.c:2915 msgid ": PC-relative operand can't be a constant" msgstr "" -#: config/tc-sparc.c:2920 +#: config/tc-sparc.c:2922 msgid ": TLS operand can't be a constant" msgstr "" -#: config/tc-sparc.c:2948 +#: config/tc-sparc.c:2950 msgid ": Immediate value in cbcond is out of range." msgstr "" -#: config/tc-sparc.c:2974 +#: config/tc-sparc.c:2976 msgid ": invalid ASI name" msgstr "" -#: config/tc-sparc.c:2982 +#: config/tc-sparc.c:2985 msgid ": invalid ASI expression" msgstr "" -#: config/tc-sparc.c:2987 +#: config/tc-sparc.c:2990 msgid ": invalid ASI number" msgstr "" -#: config/tc-sparc.c:3090 +#: config/tc-sparc.c:3093 msgid "OPF immediate operand out of range (0-0x1ff)" msgstr "" -#: config/tc-sparc.c:3095 +#: config/tc-sparc.c:3098 msgid "non-immediate OPF operand, ignored" msgstr "" -#: config/tc-sparc.c:3114 +#: config/tc-sparc.c:3117 msgid ": invalid cpreg name" msgstr "" -#: config/tc-sparc.c:3143 +#: config/tc-sparc.c:3146 #, c-format msgid "Illegal operands%s" msgstr "" -#: config/tc-sparc.c:3183 +#: config/tc-sparc.c:3196 #, c-format msgid "architecture bumped from \"%s\" to \"%s\" on \"%s\"" msgstr "" -#: config/tc-sparc.c:3224 +#: config/tc-sparc.c:3237 #, c-format msgid "Architecture mismatch on \"%s %s\"." msgstr "" -#: config/tc-sparc.c:3225 +#: config/tc-sparc.c:3238 #, c-format -msgid " (Requires %s; requested architecture is %s.)" +msgid "(Requires %s; requested architecture is %s.)" msgstr "" -#: config/tc-sparc.c:3237 +#: config/tc-sparc.c:3250 #, c-format msgid "Hardware capability \"%s\" not enabled for \"%s\"." msgstr "" -#: config/tc-sparc.c:3635 config/tc-sparc.c:3642 config/tc-sparc.c:3649 -#: config/tc-sparc.c:3656 config/tc-sparc.c:3663 config/tc-sparc.c:3672 -#: config/tc-sparc.c:3684 config/tc-sparc.c:3695 config/tc-sparc.c:3717 -#: config/tc-sparc.c:3741 write.c:1163 +#: config/tc-sparc.c:3674 config/tc-sparc.c:3681 config/tc-sparc.c:3688 +#: config/tc-sparc.c:3695 config/tc-sparc.c:3702 config/tc-sparc.c:3711 +#: config/tc-sparc.c:3723 config/tc-sparc.c:3734 config/tc-sparc.c:3756 +#: config/tc-sparc.c:3780 write.c:1163 msgid "relocation overflow" msgstr "" -#: config/tc-sparc.c:3796 +#: config/tc-sparc.c:3835 #, c-format msgid "bad or unhandled relocation type: 0x%02x" msgstr "" -#: config/tc-sparc.c:4131 +#: config/tc-sparc.c:4170 msgid "Expected comma after name" msgstr "" -#: config/tc-sparc.c:4140 +#: config/tc-sparc.c:4179 #, c-format msgid "BSS length (%d.) <0! Ignored." msgstr "" -#: config/tc-sparc.c:4152 +#: config/tc-sparc.c:4191 msgid "bad .reserve segment -- expected BSS segment" msgstr "" -#: config/tc-sparc.c:4180 +#: config/tc-sparc.c:4219 #, c-format msgid "alignment too large; assuming %d" msgstr "" -#: config/tc-sparc.c:4186 config/tc-sparc.c:4335 +#: config/tc-sparc.c:4225 config/tc-sparc.c:4374 msgid "negative alignment" msgstr "" -#: config/tc-sparc.c:4196 config/tc-sparc.c:4357 read.c:1521 read.c:2539 +#: config/tc-sparc.c:4235 config/tc-sparc.c:4396 read.c:1521 read.c:2539 msgid "alignment not a power of 2" msgstr "" -#: config/tc-sparc.c:4249 +#: config/tc-sparc.c:4288 #, c-format msgid "Ignoring attempt to re-define symbol %s" msgstr "" -#: config/tc-sparc.c:4272 config/tc-v850.c:283 +#: config/tc-sparc.c:4311 config/tc-v850.c:283 msgid "Expected comma after symbol-name" msgstr "" -#: config/tc-sparc.c:4282 +#: config/tc-sparc.c:4321 #, c-format msgid ".COMMon length (%lu) out of range ignored" msgstr "" -#: config/tc-sparc.c:4315 +#: config/tc-sparc.c:4354 msgid "Expected comma after common length" msgstr "" -#: config/tc-sparc.c:4329 +#: config/tc-sparc.c:4368 #, c-format msgid "alignment too large; assuming %ld" msgstr "" -#: config/tc-sparc.c:4472 +#: config/tc-sparc.c:4511 msgid "Unknown segment type" msgstr "" -#: config/tc-sparc.c:4542 config/tc-sparc.c:4551 +#: config/tc-sparc.c:4581 config/tc-sparc.c:4590 #, c-format msgid "register syntax is .register %%g[2367],{#scratch|symbolname|#ignore}" msgstr "" -#: config/tc-sparc.c:4569 +#: config/tc-sparc.c:4608 msgid "redefinition of global register" msgstr "" -#: config/tc-sparc.c:4580 +#: config/tc-sparc.c:4619 #, c-format msgid "Register symbol %s already defined." msgstr "" -#: config/tc-sparc.c:4784 +#: config/tc-sparc.c:4823 #, c-format msgid "Illegal operands: %%r_plt in %d-byte data field" msgstr "" -#: config/tc-sparc.c:4794 +#: config/tc-sparc.c:4833 #, c-format msgid "Illegal operands: %%r_tls_dtpoff in %d-byte data field" msgstr "" -#: config/tc-sparc.c:4831 config/tc-vax.c:3317 +#: config/tc-sparc.c:4870 config/tc-vax.c:3317 #, c-format msgid "Illegal operands: Only %%r_%s%d allowed in %d-byte data fields" msgstr "" -#: config/tc-sparc.c:4839 config/tc-sparc.c:4870 config/tc-sparc.c:4879 +#: config/tc-sparc.c:4878 config/tc-sparc.c:4909 config/tc-sparc.c:4918 #: config/tc-vax.c:3325 config/tc-vax.c:3356 config/tc-vax.c:3365 #, c-format msgid "Illegal operands: %%r_%s%d requires arguments in ()" msgstr "" -#: config/tc-sparc.c:4888 config/tc-vax.c:3374 +#: config/tc-sparc.c:4927 config/tc-vax.c:3374 #, c-format msgid "Illegal operands: garbage after %%r_%s%d()" msgstr "" @@ -16198,10 +16302,6 @@ msgstr "" msgid "loading the same register in parallel operation" msgstr "" -#: config/tc-tic30.c:1387 -msgid "pc-relative " -msgstr "" - #: config/tc-tic30.c:1448 #, c-format msgid "Invalid character %s in opcode" @@ -16531,7 +16631,7 @@ msgstr "" #: config/tc-tic54x.c:233 #, c-format -msgid "C54x-specific command line options:\n" +msgid "C54x-specific command line options:\n" msgstr "" #: config/tc-tic54x.c:234 @@ -16685,7 +16785,7 @@ msgid "Unrecognized section '%s'" msgstr "" #: config/tc-tic54x.c:1841 -msgid "Current section is unitialized, section name required for .clink" +msgid "Current section is uninitialized, section name required for .clink" msgstr "" #: config/tc-tic54x.c:2042 @@ -16934,7 +17034,7 @@ msgstr "" #: config/tc-tic54x.c:4664 #, c-format -msgid "Invalid length (use 0 to %d" +msgid "Invalid length (use 0 to %d)" msgstr "" #: config/tc-tic54x.c:4674 @@ -17871,11 +17971,11 @@ msgid "condition sa cannot be used here" msgstr "" #: config/tc-v850.c:2831 -msgid "invalid cache oparation name" +msgid "invalid cache operation name" msgstr "" #: config/tc-v850.c:2836 -msgid "invalid pref oparation name" +msgid "invalid pref operation name" msgstr "" #: config/tc-v850.c:2841 @@ -17914,7 +18014,7 @@ msgstr "" msgid "displacement is too large" msgstr "" -#: config/tc-v850.c:2975 config/tc-xtensa.c:12941 +#: config/tc-v850.c:2975 config/tc-xtensa.c:12953 msgid "invalid operand" msgstr "" @@ -18138,11 +18238,11 @@ msgid "Length specification ignored. Address mode 9F used" msgstr "" #: config/tc-vax.c:3132 -msgid "Invalid operand: immediate value used as base address." +msgid "Invalid operand: immediate value used as base address." msgstr "" #: config/tc-vax.c:3134 -msgid "Invalid operand: immediate value used as address." +msgid "Invalid operand: immediate value used as address." msgstr "" #: config/tc-vax.c:3159 @@ -18159,13 +18259,92 @@ msgstr "" msgid "Bad call to MD_ATOF()" msgstr "" +#: config/tc-wasm32.c:117 +#, c-format +msgid "wasm32 assembler options:\n" +msgstr "" + +#: config/tc-wasm32.c:364 +msgid "unexpected negative constant" +msgstr "" + +#: config/tc-wasm32.c:426 +msgid "no function type on PLT reloc" +msgstr "" + +#: config/tc-wasm32.c:441 +msgid "couldn't find relocation to use" +msgstr "" + +#: config/tc-wasm32.c:513 +msgid "Not a function type" +msgstr "" + +#: config/tc-wasm32.c:529 +#, c-format +msgid "Unknown type %c\n" +msgstr "" + +#: config/tc-wasm32.c:551 config/tc-wasm32.c:577 +msgid "Unknown type" +msgstr "" + +#: config/tc-wasm32.c:625 +msgid "only single block types allowed" +msgstr "" + +#: config/tc-wasm32.c:635 +msgid "instruction does not take a block type" +msgstr "" + +#: config/tc-wasm32.c:652 +msgid "missing block type" +msgstr "" + +#: config/tc-wasm32.c:661 config/tc-wasm32.c:665 +msgid "missing alignment hint" +msgstr "" + +#: config/tc-wasm32.c:669 +msgid "missing offset" +msgstr "" + +#: config/tc-wasm32.c:675 +msgid "missing local index" +msgstr "" + +#: config/tc-wasm32.c:680 +msgid "missing break count" +msgstr "" + +#: config/tc-wasm32.c:685 +msgid "missing reserved current_memory/grow_memory argument" +msgstr "" + +#: config/tc-wasm32.c:689 +msgid "missing call argument" +msgstr "" + +#: config/tc-wasm32.c:693 +msgid "missing call signature" +msgstr "" + +#: config/tc-wasm32.c:695 +msgid "missing table index" +msgstr "" + +#: config/tc-wasm32.c:726 config/tc-z80.c:1951 read.c:3742 +#, c-format +msgid "junk at end of line, first unrecognized character is `%c'" +msgstr "" + #: config/tc-xc16x.c:218 #, c-format msgid " XC16X specific command line options:\n" msgstr "" #: config/tc-xgate.c:215 -msgid " architecture variant invalid" +msgid "architecture variant invalid" msgstr "" #: config/tc-xgate.c:370 @@ -18176,7 +18355,7 @@ msgid "" " -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" +" --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" @@ -18192,7 +18371,7 @@ msgid "opcode %s not found in opcode hash table" msgstr "" #: config/tc-xgate.c:511 -msgid "matching operands to opcode " +msgid "matching operands to opcode" msgstr "" #: config/tc-xgate.c:549 @@ -18330,7 +18509,7 @@ msgid "invalid auto-litpool-limit argument (range is 100-10000)" msgstr "" #: config/tc-xtensa.c:1190 -msgid "unmatched end directive" +msgid "unmatched .end directive" msgstr "" #: config/tc-xtensa.c:1219 @@ -18733,103 +18912,103 @@ msgstr "" msgid "loop target does not follow loop instruction in section" msgstr "" -#: config/tc-xtensa.c:9450 +#: config/tc-xtensa.c:9452 msgid "bad relaxation state" msgstr "" -#: config/tc-xtensa.c:9508 +#: config/tc-xtensa.c:9510 #, c-format msgid "fr_var (%ld) < length (%d)" msgstr "" -#: config/tc-xtensa.c:10244 +#: config/tc-xtensa.c:10256 msgid "jump target out of range; no usable trampoline found" msgstr "" -#: config/tc-xtensa.c:10368 +#: config/tc-xtensa.c:10380 msgid "invalid relaxation fragment result" msgstr "" -#: config/tc-xtensa.c:10450 +#: config/tc-xtensa.c:10462 msgid "unable to widen instruction" msgstr "" -#: config/tc-xtensa.c:10589 +#: config/tc-xtensa.c:10601 msgid "multiple literals in expansion" msgstr "" -#: config/tc-xtensa.c:10593 +#: config/tc-xtensa.c:10605 msgid "no registered fragment for literal" msgstr "" -#: config/tc-xtensa.c:10595 +#: config/tc-xtensa.c:10607 msgid "number of literal tokens != 1" msgstr "" -#: config/tc-xtensa.c:10724 config/tc-xtensa.c:10730 +#: config/tc-xtensa.c:10736 config/tc-xtensa.c:10742 #, c-format msgid "unresolved loop target symbol: %s" msgstr "" -#: config/tc-xtensa.c:10836 +#: config/tc-xtensa.c:10848 #, c-format msgid "invalid expression evaluation type %d" msgstr "" -#: config/tc-xtensa.c:10853 +#: config/tc-xtensa.c:10865 msgid "loop too long for LOOP instruction" msgstr "" -#: config/tc-xtensa.c:11177 config/tc-xtensa.c:11419 +#: config/tc-xtensa.c:11189 config/tc-xtensa.c:11431 msgid "" "literal pool location required for text-section-literals; specify with ." "literal_position" msgstr "" -#: config/tc-xtensa.c:11286 +#: config/tc-xtensa.c:11298 #, c-format msgid "fixes not all moved from %s" msgstr "" -#: config/tc-xtensa.c:12255 +#: config/tc-xtensa.c:12267 msgid "too many operands in instruction" msgstr "" -#: config/tc-xtensa.c:12465 +#: config/tc-xtensa.c:12477 msgid "invalid symbolic operand" msgstr "" -#: config/tc-xtensa.c:12526 +#: config/tc-xtensa.c:12538 msgid "operand number mismatch" msgstr "" -#: config/tc-xtensa.c:12530 +#: config/tc-xtensa.c:12542 #, c-format msgid "cannot encode opcode \"%s\" in the given format \"%s\"" msgstr "" -#: config/tc-xtensa.c:12555 +#: config/tc-xtensa.c:12567 #, c-format msgid "xtensa-isa failure: %s" msgstr "" -#: config/tc-xtensa.c:12632 +#: config/tc-xtensa.c:12644 msgid "invalid opcode" msgstr "" -#: config/tc-xtensa.c:12638 +#: config/tc-xtensa.c:12650 msgid "too few operands" msgstr "" -#: config/tc-xtensa.c:12688 +#: config/tc-xtensa.c:12700 msgid "multiple writes to the same register" msgstr "" -#: config/tc-xtensa.c:12802 config/tc-xtensa.c:12808 +#: config/tc-xtensa.c:12814 config/tc-xtensa.c:12820 msgid "out of memory" msgstr "" -#: config/tc-xtensa.c:12897 +#: config/tc-xtensa.c:12909 msgid "TLS relocation not allowed in FLIX bundle" msgstr "" @@ -18837,33 +19016,33 @@ msgstr "" #. relaxed in the front-end. If "record_fixup" is set, then this #. function is being called during back-end relaxation, so flag #. the unexpected behavior as an error. -#: config/tc-xtensa.c:12903 +#: config/tc-xtensa.c:12915 msgid "unexpected TLS relocation" msgstr "" -#: config/tc-xtensa.c:12947 +#: config/tc-xtensa.c:12959 msgid "symbolic operand not allowed" msgstr "" -#: config/tc-xtensa.c:12984 +#: config/tc-xtensa.c:12996 msgid "cannot decode instruction format" msgstr "" -#: config/tc-xtensa.c:13128 +#: config/tc-xtensa.c:13140 msgid "ignoring extra '-rename-section' delimiter ':'" msgstr "" -#: config/tc-xtensa.c:13133 +#: config/tc-xtensa.c:13145 #, c-format msgid "ignoring invalid '-rename-section' specification: '%s'" msgstr "" -#: config/tc-xtensa.c:13144 +#: config/tc-xtensa.c:13156 #, c-format msgid "section %s renamed multiple times" msgstr "" -#: config/tc-xtensa.c:13146 +#: config/tc-xtensa.c:13158 #, c-format msgid "multiple sections remapped to output section %s" msgstr "" @@ -18906,17 +19085,12 @@ msgstr "" msgid "parentheses ignored" msgstr "" -#: config/tc-z80.c:1951 read.c:3742 -#, c-format -msgid "junk at end of line, first unrecognized character is `%c'" -msgstr "" - #: config/tc-z80.c:1977 config/tc-z8k.c:1467 config/tc-z8k.c:1530 msgid "relative jump out of range" msgstr "" #: config/tc-z80.c:1994 -msgid "index offset out of range" +msgid "index offset out of range" msgstr "" #: config/tc-z80.c:2036 config/tc-z8k.c:1538 @@ -19063,16 +19237,11 @@ msgstr "" msgid "invalid configuration option '%s' in transition rule '%s'" msgstr "" -#: config/xtensa-relax.c:1675 +#: config/xtensa-relax.c:1675 config/xtensa-relax.c:1685 #, c-format msgid "opcode '%s': no bound opname '%s' for precondition in '%s'" msgstr "" -#: config/xtensa-relax.c:1685 -#, c-format -msgid "opcode '%s': no bound opname '%s' for precondition in %s" -msgstr "" - #: config/xtensa-relax.c:1692 #, c-format msgid "opcode '%s': precondition only contains constants in '%s'" @@ -19103,7 +19272,7 @@ msgstr "" #: config/xtensa-relax.c:1797 config/xtensa-relax.c:1827 #, c-format -msgid "opcode %s: unidentified operand '%s' in '%s'" +msgid "opcode '%s': unidentified operand '%s' in '%s'" msgstr "" #: config/xtensa-relax.c:1822 @@ -19113,7 +19282,7 @@ msgstr "" #: config/xtensa-relax.c:1833 #, c-format -msgid "opcode %s: could not parse operand '%s' in '%s'" +msgid "opcode '%s': could not parse operand '%s' in '%s'" msgstr "" #: config/xtensa-relax.c:1873 @@ -19141,119 +19310,119 @@ msgstr "" msgid "can't close `%s'" msgstr "" -#: dw2gencfi.c:318 read.c:2440 +#: dw2gencfi.c:319 read.c:2440 #, c-format msgid "bfd_set_section_flags: %s" msgstr "" -#: dw2gencfi.c:600 dw2gencfi.c:616 +#: dw2gencfi.c:601 dw2gencfi.c:617 #, c-format msgid "register save offset not a multiple of %u" msgstr "" -#: dw2gencfi.c:699 +#: dw2gencfi.c:700 msgid "CFI state restore without previous remember" msgstr "" -#: dw2gencfi.c:757 +#: dw2gencfi.c:758 msgid "missing separator" msgstr "" -#: dw2gencfi.c:806 +#: dw2gencfi.c:807 msgid "bad register expression" msgstr "" -#: dw2gencfi.c:827 dw2gencfi.c:957 dw2gencfi.c:995 dw2gencfi.c:1066 -#: dw2gencfi.c:1139 dw2gencfi.c:1374 +#: dw2gencfi.c:828 dw2gencfi.c:958 dw2gencfi.c:996 dw2gencfi.c:1067 +#: dw2gencfi.c:1140 dw2gencfi.c:1378 msgid "CFI instruction used without previous .cfi_startproc" msgstr "" -#: dw2gencfi.c:1020 +#: dw2gencfi.c:1021 msgid "invalid or unsupported encoding in .cfi_personality" msgstr "" -#: dw2gencfi.c:1027 +#: dw2gencfi.c:1028 msgid ".cfi_personality requires encoding and symbol arguments" msgstr "" -#: dw2gencfi.c:1050 +#: dw2gencfi.c:1051 msgid "wrong second argument to .cfi_personality" msgstr "" -#: dw2gencfi.c:1091 dw2gencfi.c:1167 +#: dw2gencfi.c:1092 dw2gencfi.c:1168 msgid "invalid or unsupported encoding in .cfi_lsda" msgstr "" -#: dw2gencfi.c:1098 +#: dw2gencfi.c:1099 msgid ".cfi_lsda requires encoding and symbol arguments" msgstr "" -#: dw2gencfi.c:1123 +#: dw2gencfi.c:1124 msgid "wrong second argument to .cfi_lsda" msgstr "" -#: dw2gencfi.c:1189 +#: dw2gencfi.c:1190 msgid "wrong third argument to .cfi_val_encoded_addr" msgstr "" -#: dw2gencfi.c:1276 +#: dw2gencfi.c:1280 msgid "inconsistent uses of .cfi_sections" msgstr "" -#: dw2gencfi.c:1287 +#: dw2gencfi.c:1291 msgid "previous CFI entry not closed (missing .cfi_endproc)" msgstr "" -#: dw2gencfi.c:1328 +#: dw2gencfi.c:1332 msgid ".cfi_endproc without corresponding .cfi_startproc" msgstr "" -#: dw2gencfi.c:1385 +#: dw2gencfi.c:1389 msgid "wrong argument to .cfi_personality_id" msgstr "" -#: dw2gencfi.c:1395 +#: dw2gencfi.c:1399 msgid ".cfi_fde_data without corresponding .cfi_startproc" msgstr "" -#: dw2gencfi.c:1504 +#: dw2gencfi.c:1508 msgid "unexpected .cfi_inline_lsda" msgstr "" -#: dw2gencfi.c:1511 +#: dw2gencfi.c:1515 msgid ".cfi_inline_lsda not valid for this frame" msgstr "" -#: dw2gencfi.c:1519 +#: dw2gencfi.c:1523 msgid ".cfi_inline_lsda seen for frame without .cfi_lsda" msgstr "" -#: dw2gencfi.c:1532 +#: dw2gencfi.c:1536 #, c-format msgid "Alignment too large: %d. assumed." msgstr "" -#: dw2gencfi.c:1536 +#: dw2gencfi.c:1540 msgid "Alignment negative: 0 assumed." msgstr "" -#: dw2gencfi.c:1562 +#: dw2gencfi.c:1566 msgid ".cfi_inline_lsda is not supported for this target" msgstr "" -#: dw2gencfi.c:1569 +#: dw2gencfi.c:1573 msgid ".cfi_fde_data is not supported for this target" msgstr "" -#: dw2gencfi.c:1576 +#: dw2gencfi.c:1580 msgid ".cfi_personality_id is not supported for this target" msgstr "" -#: dw2gencfi.c:2351 dw2gencfi.c:2506 +#: dw2gencfi.c:2356 dw2gencfi.c:2512 msgid "open CFI at the end of file; missing .cfi_endproc directive" msgstr "" -#: dw2gencfi.c:2532 +#: dw2gencfi.c:2539 msgid "CFI is not supported for this target" msgstr "" @@ -19303,7 +19472,7 @@ msgid "inserting \"%s\" into string hash table: %s" msgstr "" #: ecoff.c:1616 ecoff.c:1809 ecoff.c:1832 ecoff.c:1863 ecoff.c:2016 -#: ecoff.c:2127 +#: ecoff.c:2135 msgid "no current file pointer" msgstr "" @@ -19316,161 +19485,166 @@ msgstr "" msgid "inserting \"%s\" into tag hash table: %s" msgstr "" -#: ecoff.c:2200 +#: ecoff.c:2204 msgid "fake .file after real one" msgstr "" -#: ecoff.c:2289 +#: ecoff.c:2293 msgid "filename goes over one page boundary" msgstr "" -#: ecoff.c:2422 +#: ecoff.c:2426 msgid ".begin directive without a preceding .file directive" msgstr "" -#: ecoff.c:2429 +#: ecoff.c:2433 msgid ".begin directive without a preceding .ent directive" msgstr "" -#: ecoff.c:2459 +#: ecoff.c:2463 msgid ".bend directive without a preceding .file directive" msgstr "" -#: ecoff.c:2466 +#: ecoff.c:2470 msgid ".bend directive without a preceding .ent directive" msgstr "" -#: ecoff.c:2478 +#: ecoff.c:2482 msgid ".bend directive names unknown symbol" msgstr "" -#: ecoff.c:2520 +#: ecoff.c:2524 msgid ".def pseudo-op used inside of .def/.endef; ignored" msgstr "" -#: ecoff.c:2522 +#: ecoff.c:2526 msgid "empty symbol name in .def; ignored" msgstr "" -#: ecoff.c:2559 +#: ecoff.c:2563 msgid ".dim pseudo-op used outside of .def/.endef; ignored" msgstr "" -#: ecoff.c:2574 +#: ecoff.c:2578 msgid "badly formed .dim directive" msgstr "" -#: ecoff.c:2587 +#: ecoff.c:2591 msgid "too many .dim entries" msgstr "" -#: ecoff.c:2607 +#: ecoff.c:2611 msgid ".scl pseudo-op used outside of .def/.endef; ignored" msgstr "" -#: ecoff.c:2632 +#: ecoff.c:2636 msgid ".size pseudo-op used outside of .def/.endef; ignored" msgstr "" -#: ecoff.c:2647 +#: ecoff.c:2651 msgid "badly formed .size directive" msgstr "" -#: ecoff.c:2660 +#: ecoff.c:2664 msgid "too many .size entries" msgstr "" -#: ecoff.c:2682 +#: ecoff.c:2686 msgid ".type pseudo-op used outside of .def/.endef; ignored" msgstr "" #. 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:2700 +#: ecoff.c:2704 #, c-format msgid "the type of %s is too complex; it will be simplified" msgstr "" -#: ecoff.c:2711 +#: ecoff.c:2715 msgid "Unrecognized .type argument" msgstr "" -#: ecoff.c:2749 +#: ecoff.c:2753 msgid ".tag pseudo-op used outside of .def/.endef; ignored" msgstr "" -#: ecoff.c:2773 +#: ecoff.c:2777 msgid ".val pseudo-op used outside of .def/.endef; ignored" msgstr "" -#: ecoff.c:2781 +#: ecoff.c:2785 msgid ".val expression is too complex" msgstr "" -#: ecoff.c:2811 +#: ecoff.c:2815 msgid ".endef pseudo-op used before .def; ignored" msgstr "" -#: ecoff.c:2837 ecoff.c:2918 +#: ecoff.c:2841 ecoff.c:2922 msgid "bad COFF debugging information" msgstr "" -#: ecoff.c:2886 +#: ecoff.c:2890 #, c-format msgid "no tag specified for %s" msgstr "" -#: ecoff.c:2988 +#: ecoff.c:2992 msgid ".end directive without a preceding .file directive" msgstr "" -#: ecoff.c:3016 +#: ecoff.c:3020 msgid ".end directive names unknown symbol" msgstr "" -#: ecoff.c:3043 +#: ecoff.c:3051 msgid "second .ent directive found before .end directive" msgstr "" -#: ecoff.c:3113 +#: ecoff.c:3060 +#, c-format +msgid "%s directive has no name" +msgstr "" + +#: ecoff.c:3121 msgid "no way to handle .file within .ent/.end section" msgstr "" -#: ecoff.c:3230 +#: ecoff.c:3238 msgid ".loc before .file" msgstr "" -#: ecoff.c:3432 +#: ecoff.c:3440 #, c-format msgid ".stab%c is not supported" msgstr "" -#: ecoff.c:3442 +#: ecoff.c:3450 #, c-format msgid ".stab%c: ignoring non-zero other field" msgstr "" -#: ecoff.c:3476 +#: ecoff.c:3484 #, c-format msgid "" "line number (%d) for .stab%c directive cannot fit in index field (20 bits)" msgstr "" -#: ecoff.c:3510 +#: ecoff.c:3518 #, c-format msgid "illegal .stab%c directive, bad character" msgstr "" -#: ecoff.c:3969 ecoff.c:4158 ecoff.c:4183 +#: ecoff.c:3977 ecoff.c:4166 ecoff.c:4191 msgid ".begin/.bend in different segments" msgstr "" -#: ecoff.c:4679 +#: ecoff.c:4687 msgid "missing .end or .bend at end of file" msgstr "" -#: ecoff.c:5164 +#: ecoff.c:5172 msgid "GP prologue size exceeds field size, using 0 instead" msgstr "" @@ -19531,48 +19705,48 @@ msgstr "" msgid "Unary operator %c ignored because bad operand follows" msgstr "" -#: expr.c:1158 expr.c:1179 +#: expr.c:1162 expr.c:1193 msgid "syntax error in .startof. or .sizeof." msgstr "" -#: expr.c:1260 expr.c:1618 +#: expr.c:1274 expr.c:1640 #, c-format msgid "invalid use of operator \"%s\"" msgstr "" -#: expr.c:1802 +#: expr.c:1824 msgid "missing operand; zero assumed" msgstr "" -#: expr.c:1841 +#: expr.c:1863 msgid "left operand is a bignum; integer 0 assumed" msgstr "" -#: expr.c:1843 +#: expr.c:1865 msgid "left operand is a float; integer 0 assumed" msgstr "" -#: expr.c:1852 +#: expr.c:1874 msgid "right operand is a bignum; integer 0 assumed" msgstr "" -#: expr.c:1854 +#: expr.c:1876 msgid "right operand is a float; integer 0 assumed" msgstr "" -#: expr.c:1925 symbols.c:1395 +#: expr.c:1947 symbols.c:1395 msgid "division by zero" msgstr "" -#: expr.c:1931 +#: expr.c:1953 msgid "shift count" msgstr "" -#: expr.c:2052 +#: expr.c:2074 msgid "operation combines symbols in different segments" msgstr "" -#: expr.c:2373 +#: expr.c:2395 msgid "missing closing '\"'" msgstr "" @@ -19629,11 +19803,11 @@ msgstr "" msgid "Unable to allocate memory for new instructions\n" msgstr "" -#: listing.c:253 messages.c:154 messages.c:156 messages.c:159 +#: listing.c:253 messages.c:165 messages.c:167 messages.c:170 msgid "Warning: " msgstr "" -#: listing.c:259 messages.c:219 messages.c:221 messages.c:224 +#: listing.c:259 messages.c:230 messages.c:232 messages.c:235 msgid "Error: " msgstr "" @@ -19802,7 +19976,7 @@ msgstr "" #: macro.c:1304 #, c-format -msgid "Attempt to purge non-existant macro `%s'" +msgid "Attempt to purge non-existing macro `%s'" msgstr "" #: macro.c:1324 @@ -19813,58 +19987,48 @@ msgstr "" msgid "missing model parameter" msgstr "" -#: messages.c:80 +#: messages.c:91 #, c-format msgid "Assembler messages:\n" msgstr "" -#: messages.c:278 +#: messages.c:289 #, c-format msgid "Fatal error: " msgstr "" -#: messages.c:296 +#: messages.c:310 #, c-format -msgid "Internal error!\n" +msgid "Internal error (%s).\n" msgstr "" -#: messages.c:298 +#: messages.c:312 #, c-format -msgid "Assertion failure in %s at %s:%d.\n" -msgstr "" - -#: messages.c:301 -#, c-format -msgid "Assertion failure at %s:%d.\n" -msgstr "" - -#: messages.c:302 messages.c:319 -#, c-format -msgid "Please report this bug.\n" +msgid "Internal error in %s at %s:%d.\n" msgstr "" #: messages.c:314 #, c-format -msgid "Internal error, aborting at %s:%d in %s\n" +msgid "Internal error at %s:%d.\n" msgstr "" -#: messages.c:317 +#: messages.c:316 #, c-format -msgid "Internal error, aborting at %s:%d\n" +msgid "Please report this bug.\n" msgstr "" -#: messages.c:366 +#: messages.c:400 #, c-format msgid "%s out of domain (%d is not a multiple of %d)" msgstr "" -#: messages.c:384 +#: messages.c:418 #, c-format msgid "%s out of range (%d is not between %d and %d)" msgstr "" #. xgettext:c-format. -#: messages.c:407 +#: messages.c:441 #, c-format msgid "%s out of range (0x%s is not between 0x%s and 0x%s)" msgstr "" @@ -20216,115 +20380,115 @@ msgstr "" msgid "attempt to store float in section `%s'" msgstr "" -#: read.c:5392 +#: read.c:5400 #, c-format msgid "attempt to store non-empty string in section `%s'" msgstr "" -#: read.c:5454 +#: read.c:5462 msgid "strings must be placed into a section" msgstr "" -#: read.c:5517 +#: read.c:5525 msgid "expected <nn>" msgstr "" #. To be compatible with BSD 4.2 as: give the luser a linefeed!! -#: read.c:5556 read.c:5642 +#: read.c:5564 read.c:5650 msgid "unterminated string; newline inserted" msgstr "" -#: read.c:5656 +#: read.c:5664 msgid "bad escaped character in string" msgstr "" -#: read.c:5681 +#: read.c:5689 msgid "expected address expression" msgstr "" -#: read.c:5700 +#: read.c:5708 #, c-format msgid "symbol \"%s\" undefined; zero assumed" msgstr "" -#: read.c:5703 +#: read.c:5711 msgid "some symbol undefined; zero assumed" msgstr "" -#: read.c:5738 +#: read.c:5746 msgid "this string may not contain '\\0'" msgstr "" -#: read.c:5774 +#: read.c:5782 msgid "missing string" msgstr "" -#: read.c:5865 +#: read.c:5873 #, c-format msgid ".incbin count zero, ignoring `%s'" msgstr "" -#: read.c:5891 +#: read.c:5899 #, c-format msgid "file not found: %s" msgstr "" -#: read.c:5905 +#: read.c:5913 #, c-format msgid "seek to end of .incbin file failed `%s'" msgstr "" -#: read.c:5916 +#: read.c:5924 #, c-format msgid "skip (%ld) or count (%ld) invalid for file size (%ld)" msgstr "" -#: read.c:5923 +#: read.c:5931 #, c-format msgid "could not skip to %ld in file `%s'" msgstr "" -#: read.c:5932 +#: read.c:5940 #, c-format msgid "truncated file `%s', %ld of %ld bytes read" msgstr "" -#: read.c:6090 +#: read.c:6098 msgid "missing .func" msgstr "" -#: read.c:6107 +#: read.c:6115 msgid ".endfunc missing for previous .func" msgstr "" -#: read.c:6166 +#: read.c:6174 #, c-format msgid ".bundle_align_mode alignment too large (maximum %u)" msgstr "" -#: read.c:6171 +#: read.c:6179 msgid "cannot change .bundle_align_mode inside .bundle_lock" msgstr "" -#: read.c:6185 +#: read.c:6193 msgid ".bundle_lock is meaningless without .bundle_align_mode" msgstr "" -#: read.c:6206 +#: read.c:6214 msgid ".bundle_unlock without preceding .bundle_lock" msgstr "" -#: read.c:6219 +#: read.c:6227 #, c-format msgid ".bundle_lock sequence is %u bytes, but bundle size only %u" msgstr "" -#: read.c:6317 +#: read.c:6325 #, c-format msgid "missing closing `%c'" msgstr "" -#: read.c:6319 +#: read.c:6327 msgid "stray `\\'" msgstr "" @@ -20542,19 +20706,19 @@ msgstr "" msgid "padding added" msgstr "" -#: write.c:2721 +#: write.c:2722 msgid "attempt to move .org backwards" msgstr "" -#: write.c:2745 +#: write.c:2746 msgid ".space specifies non-absolute value" msgstr "" -#: write.c:2760 +#: write.c:2761 msgid ".space or .fill with negative value, ignored" msgstr "" -#: write.c:2831 +#: write.c:2832 #, c-format msgid "" "Infinite loop encountered whilst attempting to compute the addresses of " diff --git a/gas/testsuite/gas/wasm32/allinsn.d b/gas/testsuite/gas/wasm32/allinsn.d new file mode 100644 index 0000000..06124be --- /dev/null +++ b/gas/testsuite/gas/wasm32/allinsn.d @@ -0,0 +1,198 @@ +#as: +#objdump: -d +#name: allinsn + +.*: +file format .* + + +Disassembly of section .text: + +00000000 <.text>: + 0: 02 40 block\[\] + 2: 0c 00 br 0 + 4: 0d 00 br_if 0 + 6: 0e 01 01 01 br_table 1 1 + a: 10 00 call 0x0 + c: 11 00 00 call_indirect 0 0 + f: 1a drop + 10: 05 else + 11: 0b end + 12: 8b f32.abs + 13: 92 f32.add + 14: 8d f32.ceil + 15: 43 d0 0f 49 f32.const 3.141590118408203125 + 19: 40 + 1a: b2 f32.convert_s_i32 + 1b: b4 f32.convert_s_i64 + 1c: b3 f32.convert_u_i32 + 1d: b5 f32.convert_u_i64 + 1e: 98 f32.copysign + 1f: b6 f32.demote_f64 + 20: 95 f32.div + 21: 5b f32.eq + 22: 8e f32.floor + 23: 60 f32.ge + 24: 5e f32.gt + 25: 5f f32.le + 26: 2a 00 00 f32.load a=0 0 + 29: 5d f32.lt + 2a: 97 f32.max + 2b: 96 f32.min + 2c: 94 f32.mul + 2d: 5c f32.ne + 2e: 90 f32.nearest + 2f: 8c f32.neg + 30: be f32.reinterpret_i32 + 31: 91 f32.sqrt + 32: 38 00 00 f32.store a=0 0 + 35: 93 f32.sub + 36: 8f f32.trunc + 37: 99 f64.abs + 38: a0 f64.add + 39: 9b f64.ceil + 3a: 44 97 5f 4f f64.const 3.14158999999999976088e\+200 + 3e: fd bc 6a 90 + 42: 69 + 43: b7 f64.convert_s_i32 + 44: b9 f64.convert_s_i64 + 45: b8 f64.convert_u_i32 + 46: ba f64.convert_u_i64 + 47: a6 f64.copysign + 48: a3 f64.div + 49: 61 f64.eq + 4a: 9c f64.floor + 4b: 66 f64.ge + 4c: 64 f64.gt + 4d: 65 f64.le + 4e: 2b 00 00 f64.load a=0 0 + 51: 63 f64.lt + 52: a5 f64.max + 53: a4 f64.min + 54: a2 f64.mul + 55: 62 f64.ne + 56: 9e f64.nearest + 57: 9a f64.neg + 58: bb f64.promote_f32 + 59: bf f64.reinterpret_i64 + 5a: 9f f64.sqrt + 5b: 39 00 00 f64.store a=0 0 + 5e: a1 f64.sub + 5f: 9d f64.trunc + 60: 23 00 get_global 0 <\$got> + 62: 20 00 get_local 0 <\$dpc> + 64: 6a i32.add + 65: 71 i32.and + 66: 67 i32.clz + 67: 41 ef fd b6 i32.const 3735928559 + 6b: f5 0d + 6d: 68 i32.ctz + 6e: 6d i32.div_s + 6f: 6e i32.div_u + 70: 46 i32.eq + 71: 45 i32.eqz + 72: 4e i32.ge_s + 73: 4f i32.ge_u + 74: 4a i32.gt_s + 75: 4b i32.gt_u + 76: 4c i32.le_s + 77: 4d i32.le_u + 78: 28 00 00 i32.load a=0 0 + 7b: 2e 00 00 i32.load16_s a=0 0 + 7e: 2f 00 00 i32.load16_u a=0 0 + 81: 2c 00 00 i32.load8_s a=0 0 + 84: 2d 00 00 i32.load8_u a=0 0 + 87: 48 i32.lt_s + 88: 49 i32.lt_u + 89: 6c i32.mul + 8a: 47 i32.ne + 8b: 72 i32.or + 8c: 69 i32.popcnt + 8d: bc i32.reinterpret_f32 + 8e: 6f i32.rem_s + 8f: 70 i32.rem_u + 90: 77 i32.rotl + 91: 78 i32.rotr + 92: 74 i32.shl + 93: 75 i32.shr_s + 94: 76 i32.shr_u + 95: 36 00 00 i32.store a=0 0 + 98: 3b 00 00 i32.store16 a=0 0 + 9b: 3a 00 00 i32.store8 a=0 0 + 9e: 6b i32.sub + 9f: a8 i32.trunc_s_f32 + a0: aa i32.trunc_s_f64 + a1: a9 i32.trunc_u_f32 + a2: ab i32.trunc_u_f64 + a3: a7 i32.wrap_i64 + a4: 73 i32.xor + a5: 7c i64.add + a6: 83 i64.and + a7: 79 i64.clz + a8: 42 ef fd b6 i64.const -2401053088876216593 + ac: f5 fd dd ef + b0: d6 5e + b2: 7a i64.ctz + b3: 7f i64.div_s + b4: 80 i64.div_u + b5: 51 i64.eq + b6: 50 i64.eqz + b7: ac i64.extend_s_i32 + b8: ad i64.extend_u_i32 + b9: 59 i64.ge_s + ba: 5a i64.ge_u + bb: 55 i64.gt_s + bc: 56 i64.gt_u + bd: 57 i64.le_s + be: 58 i64.le_u + bf: 29 00 00 i64.load a=0 0 + c2: 32 00 00 i64.load16_s a=0 0 + c5: 33 00 00 i64.load16_u a=0 0 + c8: 34 00 00 i64.load32_s a=0 0 + cb: 35 00 00 i64.load32_u a=0 0 + ce: 30 00 00 i64.load8_s a=0 0 + d1: 31 00 00 i64.load8_u a=0 0 + d4: 53 i64.lt_s + d5: 54 i64.lt_u + d6: 7e i64.mul + d7: 52 i64.ne + d8: 84 i64.or + d9: 7b i64.popcnt + da: bd i64.reinterpret_f64 + db: 81 i64.rem_s + dc: 82 i64.rem_u + dd: 89 i64.rotl + de: 8a i64.rotr + df: 86 i64.shl + e0: 87 i64.shr_s + e1: 88 i64.shr_u + e2: 37 00 00 i64.store a=0 0 + e5: 3d 00 00 i64.store16 a=0 0 + e8: 3e 00 00 i64.store32 a=0 0 + eb: 3c 00 00 i64.store8 a=0 0 + ee: 7d i64.sub + ef: ae i64.trunc_s_f32 + f0: b0 i64.trunc_s_f64 + f1: af i64.trunc_u_f32 + f2: b1 i64.trunc_u_f64 + f3: 85 i64.xor + f4: 04 7f if\[i\] + f6: 03 7e loop\[l\] + f8: 01 nop + f9: 0f return + fa: 1b select + fb: 24 00 set_global 0 <\$got> + fd: 21 00 set_local 0 <\$dpc> + ff: 60 f32.ge + 100: 08 .byte 08 + + 101: 7f i64.div_s + 102: 7e i64.mul + 103: 7c i64.add + 104: 7d i64.sub + 105: 7d i64.sub + 106: 7c i64.add + 107: 7e i64.mul + 108: 7f i64.div_s + 109: 00 unreachable + 10a: 22 00 tee_local 0 <\$dpc> + ... diff --git a/gas/testsuite/gas/wasm32/allinsn.s b/gas/testsuite/gas/wasm32/allinsn.s new file mode 100644 index 0000000..c2714b3 --- /dev/null +++ b/gas/testsuite/gas/wasm32/allinsn.s @@ -0,0 +1,171 @@ + block[] + br 0 + br_if 0 + br_table 1 1 1 + call 0 + call_indirect 0 0 + drop + else + end + f32.abs + f32.add + f32.ceil + f32.const 3.14159 + f32.convert_s/i32 + f32.convert_s/i64 + f32.convert_u/i32 + f32.convert_u/i64 + f32.copysign + f32.demote/f64 + f32.div + f32.eq + f32.floor + f32.ge + f32.gt + f32.le + f32.load a=0 0 + f32.lt + f32.max + f32.min + f32.mul + f32.ne + f32.nearest + f32.neg + f32.reinterpret/i32 + f32.sqrt + f32.store a=0 0 + f32.sub + f32.trunc + f64.abs + f64.add + f64.ceil + f64.const 3.14159e200 + f64.convert_s/i32 + f64.convert_s/i64 + f64.convert_u/i32 + f64.convert_u/i64 + f64.copysign + f64.div + f64.eq + f64.floor + f64.ge + f64.gt + f64.le + f64.load a=0 0 + f64.lt + f64.max + f64.min + f64.mul + f64.ne + f64.nearest + f64.neg + f64.promote/f32 + f64.reinterpret/i64 + f64.sqrt + f64.store a=0 0 + f64.sub + f64.trunc + get_global 0 + get_local 0 + i32.add + i32.and + i32.clz + i32.const 0xdeadbeef + i32.ctz + i32.div_s + i32.div_u + i32.eq + i32.eqz + i32.ge_s + i32.ge_u + i32.gt_s + i32.gt_u + i32.le_s + i32.le_u + i32.load a=0 0 + i32.load16_s a=0 0 + i32.load16_u a=0 0 + i32.load8_s a=0 0 + i32.load8_u a=0 0 + i32.lt_s + i32.lt_u + i32.mul + i32.ne + i32.or + i32.popcnt + i32.reinterpret/f32 + i32.rem_s + i32.rem_u + i32.rotl + i32.rotr + i32.shl + i32.shr_s + i32.shr_u + i32.store a=0 0 + i32.store16 a=0 0 + i32.store8 a=0 0 + i32.sub + i32.trunc_s/f32 + i32.trunc_s/f64 + i32.trunc_u/f32 + i32.trunc_u/f64 + i32.wrap/i64 + i32.xor + i64.add + i64.and + i64.clz + i64.const 0xdeadbeefdeadbeef + i64.ctz + i64.div_s + i64.div_u + i64.eq + i64.eqz + i64.extend_s/i32 + i64.extend_u/i32 + i64.ge_s + i64.ge_u + i64.gt_s + i64.gt_u + i64.le_s + i64.le_u + i64.load a=0 0 + i64.load16_s a=0 0 + i64.load16_u a=0 0 + i64.load32_s a=0 0 + i64.load32_u a=0 0 + i64.load8_s a=0 0 + i64.load8_u a=0 0 + i64.lt_s + i64.lt_u + i64.mul + i64.ne + i64.or + i64.popcnt + i64.reinterpret/f64 + i64.rem_s + i64.rem_u + i64.rotl + i64.rotr + i64.shl + i64.shr_s + i64.shr_u + i64.store a=0 0 + i64.store16 a=0 0 + i64.store32 a=0 0 + i64.store8 a=0 0 + i64.sub + i64.trunc_s/f32 + i64.trunc_s/f64 + i64.trunc_u/f32 + i64.trunc_u/f64 + i64.xor + if[i] + loop[l] + nop + return + select + set_global 0 + set_local 0 + signature FvildffdliE + tee_local 0 + unreachable diff --git a/gas/testsuite/gas/wasm32/illegal-10.l b/gas/testsuite/gas/wasm32/illegal-10.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-10.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-10.s b/gas/testsuite/gas/wasm32/illegal-10.s new file mode 100644 index 0000000..201d3ae --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-10.s @@ -0,0 +1 @@ + br_if -2 diff --git a/gas/testsuite/gas/wasm32/illegal-11.l b/gas/testsuite/gas/wasm32/illegal-11.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-11.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-11.s b/gas/testsuite/gas/wasm32/illegal-11.s new file mode 100644 index 0000000..d08f159 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-11.s @@ -0,0 +1 @@ + br_table 0 0 0 diff --git a/gas/testsuite/gas/wasm32/illegal-12.l b/gas/testsuite/gas/wasm32/illegal-12.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-12.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-12.s b/gas/testsuite/gas/wasm32/illegal-12.s new file mode 100644 index 0000000..58a6a9e --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-12.s @@ -0,0 +1 @@ + br_table 0 1 2 diff --git a/gas/testsuite/gas/wasm32/illegal-13.l b/gas/testsuite/gas/wasm32/illegal-13.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-13.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-13.s b/gas/testsuite/gas/wasm32/illegal-13.s new file mode 100644 index 0000000..1bfe729 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-13.s @@ -0,0 +1 @@ + br_table 2 0 diff --git a/gas/testsuite/gas/wasm32/illegal-14.l b/gas/testsuite/gas/wasm32/illegal-14.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-14.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-14.s b/gas/testsuite/gas/wasm32/illegal-14.s new file mode 100644 index 0000000..ef458f1 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-14.s @@ -0,0 +1 @@ + br_table diff --git a/gas/testsuite/gas/wasm32/illegal-15.l b/gas/testsuite/gas/wasm32/illegal-15.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-15.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-15.s b/gas/testsuite/gas/wasm32/illegal-15.s new file mode 100644 index 0000000..8a79ff3 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-15.s @@ -0,0 +1 @@ + br_table[i] diff --git a/gas/testsuite/gas/wasm32/illegal-16.l b/gas/testsuite/gas/wasm32/illegal-16.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-16.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-16.s b/gas/testsuite/gas/wasm32/illegal-16.s new file mode 100644 index 0000000..d32b771 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-16.s @@ -0,0 +1 @@ + call 0 1 diff --git a/gas/testsuite/gas/wasm32/illegal-17.l b/gas/testsuite/gas/wasm32/illegal-17.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-17.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-17.s b/gas/testsuite/gas/wasm32/illegal-17.s new file mode 100644 index 0000000..ec2d050 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-17.s @@ -0,0 +1 @@ + call[i] 0 diff --git a/gas/testsuite/gas/wasm32/illegal-18.l b/gas/testsuite/gas/wasm32/illegal-18.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-18.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-18.s b/gas/testsuite/gas/wasm32/illegal-18.s new file mode 100644 index 0000000..32fbe67 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-18.s @@ -0,0 +1 @@ + drop 3 diff --git a/gas/testsuite/gas/wasm32/illegal-19.l b/gas/testsuite/gas/wasm32/illegal-19.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-19.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-19.s b/gas/testsuite/gas/wasm32/illegal-19.s new file mode 100644 index 0000000..9a80193 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-19.s @@ -0,0 +1 @@ + else[i] diff --git a/gas/testsuite/gas/wasm32/illegal-2.l b/gas/testsuite/gas/wasm32/illegal-2.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-2.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-2.s b/gas/testsuite/gas/wasm32/illegal-2.s new file mode 100644 index 0000000..584c467 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-2.s @@ -0,0 +1 @@ + block[ii] diff --git a/gas/testsuite/gas/wasm32/illegal-20.l b/gas/testsuite/gas/wasm32/illegal-20.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-20.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-20.s b/gas/testsuite/gas/wasm32/illegal-20.s new file mode 100644 index 0000000..39d4d4c --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-20.s @@ -0,0 +1 @@ + end[i] diff --git a/gas/testsuite/gas/wasm32/illegal-21.l b/gas/testsuite/gas/wasm32/illegal-21.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-21.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-21.s b/gas/testsuite/gas/wasm32/illegal-21.s new file mode 100644 index 0000000..d51ac99 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-21.s @@ -0,0 +1 @@ + f32.abs 0 diff --git a/gas/testsuite/gas/wasm32/illegal-22.l b/gas/testsuite/gas/wasm32/illegal-22.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-22.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-24.l b/gas/testsuite/gas/wasm32/illegal-24.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-24.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-24.s b/gas/testsuite/gas/wasm32/illegal-24.s new file mode 100644 index 0000000..db6d201 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-24.s @@ -0,0 +1 @@ + f32.demote_f32 diff --git a/gas/testsuite/gas/wasm32/illegal-25.l b/gas/testsuite/gas/wasm32/illegal-25.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-25.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-25.s b/gas/testsuite/gas/wasm32/illegal-25.s new file mode 100644 index 0000000..b956386 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-25.s @@ -0,0 +1 @@ + f32.load 0 a=0 diff --git a/gas/testsuite/gas/wasm32/illegal-3.l b/gas/testsuite/gas/wasm32/illegal-3.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-3.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-3.s b/gas/testsuite/gas/wasm32/illegal-3.s new file mode 100644 index 0000000..253bc2c --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-3.s @@ -0,0 +1 @@ + block[li] diff --git a/gas/testsuite/gas/wasm32/illegal-4.l b/gas/testsuite/gas/wasm32/illegal-4.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-4.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-4.s b/gas/testsuite/gas/wasm32/illegal-4.s new file mode 100644 index 0000000..1571475 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-4.s @@ -0,0 +1 @@ + block[q] diff --git a/gas/testsuite/gas/wasm32/illegal-5.l b/gas/testsuite/gas/wasm32/illegal-5.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-5.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-5.s b/gas/testsuite/gas/wasm32/illegal-5.s new file mode 100644 index 0000000..17cc4bb --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-5.s @@ -0,0 +1 @@ + block 3 diff --git a/gas/testsuite/gas/wasm32/illegal-6.l b/gas/testsuite/gas/wasm32/illegal-6.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-6.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-6.s b/gas/testsuite/gas/wasm32/illegal-6.s new file mode 100644 index 0000000..ff7d1fc --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-6.s @@ -0,0 +1 @@ + block[i] 3 diff --git a/gas/testsuite/gas/wasm32/illegal-7.l b/gas/testsuite/gas/wasm32/illegal-7.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-7.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-7.s b/gas/testsuite/gas/wasm32/illegal-7.s new file mode 100644 index 0000000..f3de667 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-7.s @@ -0,0 +1 @@ + br diff --git a/gas/testsuite/gas/wasm32/illegal-8.l b/gas/testsuite/gas/wasm32/illegal-8.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-8.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-8.s b/gas/testsuite/gas/wasm32/illegal-8.s new file mode 100644 index 0000000..9282602 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-8.s @@ -0,0 +1 @@ + br 0 1 diff --git a/gas/testsuite/gas/wasm32/illegal-9.l b/gas/testsuite/gas/wasm32/illegal-9.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-9.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal-9.s b/gas/testsuite/gas/wasm32/illegal-9.s new file mode 100644 index 0000000..ef1c2d6 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal-9.s @@ -0,0 +1 @@ + br -1 diff --git a/gas/testsuite/gas/wasm32/illegal.l b/gas/testsuite/gas/wasm32/illegal.l new file mode 100644 index 0000000..4eb2cd8 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal.l @@ -0,0 +1,3 @@ +#... +.*Error.* +#pass diff --git a/gas/testsuite/gas/wasm32/illegal.s b/gas/testsuite/gas/wasm32/illegal.s new file mode 100644 index 0000000..dfbdea9 --- /dev/null +++ b/gas/testsuite/gas/wasm32/illegal.s @@ -0,0 +1 @@ + block[ii] diff --git a/gas/testsuite/gas/wasm32/reloc.d b/gas/testsuite/gas/wasm32/reloc.d new file mode 100644 index 0000000..9317e6e --- /dev/null +++ b/gas/testsuite/gas/wasm32/reloc.d @@ -0,0 +1,18 @@ +#as: +#objdump: -dr +#name: reloc + +.*: +file format .* + +Disassembly of section .text: + +00000000 <.text>: + 0: 41 80 80 80 i32.const 0 + 4: 80 00 + 1: R_ASMJS_LEB128_PLT f + 6: 41 80 80 80 i32.const 0 + a: 80 00 + 7: R_ASMJS_LEB128_GOT x + c: 41 80 80 80 i32.const 0 + 10: 80 00 + d: R_ASMJS_LEB128_GOT_CODE f diff --git a/gas/testsuite/gas/wasm32/reloc.s b/gas/testsuite/gas/wasm32/reloc.s new file mode 100644 index 0000000..8cdfd58 --- /dev/null +++ b/gas/testsuite/gas/wasm32/reloc.s @@ -0,0 +1,3 @@ + i32.const f@plt + i32.const x@got + i32.const f@gotcode diff --git a/gas/testsuite/gas/wasm32/wasm32.exp b/gas/testsuite/gas/wasm32/wasm32.exp new file mode 100644 index 0000000..e6d1819 --- /dev/null +++ b/gas/testsuite/gas/wasm32/wasm32.exp @@ -0,0 +1,58 @@ +# Expect script for wasm32 tests. +# Copyright (C) 2017 Free Software Foundation, Inc. +# +# This file is part of the GNU Binutils. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, +# MA 02110-1301, USA. + +# wasm32 assembler testsuite. + +if [istarget wasm32-*-*] { + # no disassembler support yet + setup_xfail "wasm32-*-*" + run_dump_test "allinsn" + # no GOT/PLT relocs yet. + setup_xfail "wasm32-*-*" + run_dump_test "reloc" + run_list_test "illegal" + run_list_test "illegal-2" + run_list_test "illegal-3" + run_list_test "illegal-4" + run_list_test "illegal-5" + run_list_test "illegal-6" + run_list_test "illegal-7" + run_list_test "illegal-8" + run_list_test "illegal-9" + run_list_test "illegal-10" + setup_xfail "wasm32-*-*" + run_list_test "illegal-11" + setup_xfail "wasm32-*-*" + run_list_test "illegal-12" + setup_xfail "wasm32-*-*" + run_list_test "illegal-13" + run_list_test "illegal-14" + run_list_test "illegal-15" + run_list_test "illegal-16" + run_list_test "illegal-17" + run_list_test "illegal-18" + run_list_test "illegal-19" + run_list_test "illegal-20" + run_list_test "illegal-21" + run_list_test "illegal-22" + # illegal-23 has become legal + run_list_test "illegal-24" + run_list_test "illegal-25" +} diff --git a/include/ChangeLog b/include/ChangeLog index 7695774..7b88042 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2017-03-30 Pip Cet <pipcet@gmail.com> + + * opcode/wasm.h: New file to support wasm32 architecture. + * elf/wasm32.h: Add R_WASM32_32 relocation. + 2017-03-29 Alan Modra <amodra@gmail.com> * opcode/ppc.h (PPC_OPCODE_RAW): Define. diff --git a/include/elf/wasm32.h b/include/elf/wasm32.h index 38e6c2e..45ea9a1 100644 --- a/include/elf/wasm32.h +++ b/include/elf/wasm32.h @@ -23,6 +23,8 @@ /* Relocation types. */ START_RELOC_NUMBERS (elf_wasm32_reloc_type) + RELOC_NUMBER (R_WASM32_NONE, 0) + RELOC_NUMBER (R_WASM32_32, 1) END_RELOC_NUMBERS (R_WASM32_max = 1) #endif /* _ELF_WASM32_H */ diff --git a/include/opcode/wasm.h b/include/opcode/wasm.h new file mode 100644 index 0000000..5fa8a10 --- /dev/null +++ b/include/opcode/wasm.h @@ -0,0 +1,226 @@ +/* WebAssembly assembler/disassembler support. + Copyright (C) 2017 Free Software Foundation, Inc. + + This file is part of GAS, the GNU assembler. + + GAS is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. + + GAS 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 GAS; see the file COPYING3. If not, write to the Free + Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ + +/* WebAssembly opcodes. Each opcode invokes the WASM_OPCODE macro + with the following arguments: + + 1. Code byte. + 2. Mnemonic. + 3. Input type. + 4. Output type. + 5. Opcode class. + 6. Signedness information. +*/ + +WASM_OPCODE (0x00, "unreachable", void, void, special, agnostic) +WASM_OPCODE (0x01, "nop", void, void, special, agnostic) +WASM_OPCODE (0x02, "block", void, void, typed, agnostic) +WASM_OPCODE (0x03, "loop", void, void, typed, agnostic) +WASM_OPCODE (0x04, "if", void, void, typed, agnostic) +WASM_OPCODE (0x05, "else", void, void, special, agnostic) +WASM_OPCODE (0x0b, "end", void, void, special, agnostic) +WASM_OPCODE (0x0c, "br", void, void, break, agnostic) +WASM_OPCODE (0x0d, "br_if", void, void, break_if, agnostic) +WASM_OPCODE (0x0e, "br_table", void, void, break_table, agnostic) +WASM_OPCODE (0x0f, "return", void, void, return, agnostic) + +WASM_OPCODE (0x10, "call", any, any, call, agnostic) +WASM_OPCODE (0x11, "call_indirect", any, any, call_indirect, agnostic) + +WASM_OPCODE (0x1a, "drop", any, any, drop, agnostic) +WASM_OPCODE (0x1b, "select", any, any, select, agnostic) + +WASM_OPCODE (0x20, "get_local", any, any, get_local, agnostic) +WASM_OPCODE (0x21, "set_local", any, any, set_local, agnostic) +WASM_OPCODE (0x22, "tee_local", any, any, tee_local, agnostic) +WASM_OPCODE (0x23, "get_global", any, any, get_local, agnostic) +WASM_OPCODE (0x24, "set_global", any, any, set_local, agnostic) + +WASM_OPCODE (0x28, "i32.load", i32, i32, load, agnostic) +WASM_OPCODE (0x29, "i64.load", i32, i64, load, agnostic) +WASM_OPCODE (0x2a, "f32.load", i32, f32, load, agnostic) +WASM_OPCODE (0x2b, "f64.load", i32, f64, load, agnostic) +WASM_OPCODE (0x2c, "i32.load8_s", i32, i32, load, signed) +WASM_OPCODE (0x2d, "i32.load8_u", i32, i32, load, unsigned) +WASM_OPCODE (0x2e, "i32.load16_s", i32, i32, load, signed) +WASM_OPCODE (0x2f, "i32.load16_u", i32, i32, load, unsigned) +WASM_OPCODE (0x30, "i64.load8_s", i32, i64, load, signed) +WASM_OPCODE (0x31, "i64.load8_u", i32, i64, load, unsigned) +WASM_OPCODE (0x32, "i64.load16_s", i32, i64, load, signed) +WASM_OPCODE (0x33, "i64.load16_u", i32, i64, load, unsigned) +WASM_OPCODE (0x34, "i64.load32_s", i32, i64, load, signed) +WASM_OPCODE (0x35, "i64.load32_u", i32, i64, load, unsigned) +WASM_OPCODE (0x36, "i32.store", i32, void, store, agnostic) +WASM_OPCODE (0x37, "i64.store", i64, void, store, agnostic) +WASM_OPCODE (0x38, "f32.store", f32, void, store, agnostic) +WASM_OPCODE (0x39, "f64.store", f64, void, store, agnostic) +WASM_OPCODE (0x3a, "i32.store8", i32, void, store, agnostic) +WASM_OPCODE (0x3b, "i32.store16", i32, void, store, agnostic) +WASM_OPCODE (0x3c, "i64.store8", i64, void, store, agnostic) +WASM_OPCODE (0x3d, "i64.store16", i64, void, store, agnostic) +WASM_OPCODE (0x3e, "i64.store32", i64, void, store, agnostic) + +WASM_OPCODE (0x3f, "current_memory", void, i32, current_memory, agnostic) +WASM_OPCODE (0x40, "grow_memory", void, i32, grow_memory, agnostic) + +WASM_OPCODE (0x41, "i32.const", i32, i32, constant_i32, agnostic) +WASM_OPCODE (0x42, "i64.const", i64, i64, constant_i64, agnostic) +WASM_OPCODE (0x43, "f32.const", f32, f32, constant_f32, agnostic) +WASM_OPCODE (0x44, "f64.const", f64, f64, constant_f64, agnostic) + +WASM_OPCODE (0x45, "i32.eqz", i32, i32, eqz, agnostic) +WASM_OPCODE (0x46, "i32.eq", i32, i32, relational, agnostic) +WASM_OPCODE (0x47, "i32.ne", i32, i32, relational, agnostic) +WASM_OPCODE (0x48, "i32.lt_s", i32, i32, relational, signed) +WASM_OPCODE (0x49, "i32.lt_u", i32, i32, relational, unsigned) +WASM_OPCODE (0x4a, "i32.gt_s", i32, i32, relational, signed) +WASM_OPCODE (0x4b, "i32.gt_u", i32, i32, relational, unsigned) +WASM_OPCODE (0x4c, "i32.le_s", i32, i32, relational, signed) +WASM_OPCODE (0x4d, "i32.le_u", i32, i32, relational, unsigned) +WASM_OPCODE (0x4e, "i32.ge_s", i32, i32, relational, signed) +WASM_OPCODE (0x4f, "i32.ge_u", i32, i32, relational, unsigned) + +WASM_OPCODE (0x50, "i64.eqz", i64, i32, eqz, agnostic) +WASM_OPCODE (0x51, "i64.eq", i64, i32, relational, agnostic) +WASM_OPCODE (0x52, "i64.ne", i64, i32, relational, agnostic) +WASM_OPCODE (0x53, "i64.lt_s", i64, i32, relational, signed) +WASM_OPCODE (0x54, "i64.lt_u", i64, i32, relational, unsigned) +WASM_OPCODE (0x55, "i64.gt_s", i64, i32, relational, signed) +WASM_OPCODE (0x56, "i64.gt_u", i64, i32, relational, unsigned) +WASM_OPCODE (0x57, "i64.le_s", i64, i32, relational, signed) +WASM_OPCODE (0x58, "i64.le_u", i64, i32, relational, unsigned) +WASM_OPCODE (0x59, "i64.ge_s", i64, i32, relational, signed) +WASM_OPCODE (0x5a, "i64.ge_u", i64, i32, relational, unsigned) + +WASM_OPCODE (0x5b, "f32.eq", f32, i32, relational, floating) +WASM_OPCODE (0x5c, "f32.ne", f32, i32, relational, floating) +WASM_OPCODE (0x5d, "f32.lt", f32, i32, relational, floating) +WASM_OPCODE (0x5e, "f32.gt", f32, i32, relational, floating) +WASM_OPCODE (0x5f, "f32.le", f32, i32, relational, floating) +WASM_OPCODE (0x60, "f32.ge", f32, i32, relational, floating) + +WASM_OPCODE (0x61, "f64.eq", f64, i32, relational, floating) +WASM_OPCODE (0x62, "f64.ne", f64, i32, relational, floating) +WASM_OPCODE (0x63, "f64.lt", f64, i32, relational, floating) +WASM_OPCODE (0x64, "f64.gt", f64, i32, relational, floating) +WASM_OPCODE (0x65, "f64.le", f64, i32, relational, floating) +WASM_OPCODE (0x66, "f64.ge", f64, i32, relational, floating) + +WASM_OPCODE (0x67, "i32.clz", i32, i32, unary, agnostic) +WASM_OPCODE (0x68, "i32.ctz", i32, i32, unary, agnostic) +WASM_OPCODE (0x69, "i32.popcnt", i32, i32, unary, agnostic) + +WASM_OPCODE (0x6a, "i32.add", i32, i32, binary, agnostic) +WASM_OPCODE (0x6b, "i32.sub", i32, i32, binary, agnostic) +WASM_OPCODE (0x6c, "i32.mul", i32, i32, binary, agnostic) +WASM_OPCODE (0x6d, "i32.div_s", i32, i32, binary, signed) +WASM_OPCODE (0x6e, "i32.div_u", i32, i32, binary, unsigned) +WASM_OPCODE (0x6f, "i32.rem_s", i32, i32, binary, signed) +WASM_OPCODE (0x70, "i32.rem_u", i32, i32, binary, unsigned) +WASM_OPCODE (0x71, "i32.and", i32, i32, binary, agnostic) +WASM_OPCODE (0x72, "i32.or", i32, i32, binary, agnostic) +WASM_OPCODE (0x73, "i32.xor", i32, i32, binary, agnostic) +WASM_OPCODE (0x74, "i32.shl", i32, i32, binary, agnostic) +WASM_OPCODE (0x75, "i32.shr_s", i32, i32, binary, signed) +WASM_OPCODE (0x76, "i32.shr_u", i32, i32, binary, unsigned) +WASM_OPCODE (0x77, "i32.rotl", i32, i32, binary, agnostic) +WASM_OPCODE (0x78, "i32.rotr", i32, i32, binary, agnostic) + +WASM_OPCODE (0x79, "i64.clz", i64, i64, unary, agnostic) +WASM_OPCODE (0x7a, "i64.ctz", i64, i64, unary, agnostic) +WASM_OPCODE (0x7b, "i64.popcnt", i64, i64, unary, agnostic) + +WASM_OPCODE (0x7c, "i64.add", i64, i64, binary, agnostic) +WASM_OPCODE (0x7d, "i64.sub", i64, i64, binary, agnostic) +WASM_OPCODE (0x7e, "i64.mul", i64, i64, binary, agnostic) +WASM_OPCODE (0x7f, "i64.div_s", i64, i64, binary, signed) +WASM_OPCODE (0x80, "i64.div_u", i64, i64, binary, unsigned) +WASM_OPCODE (0x81, "i64.rem_s", i64, i64, binary, signed) +WASM_OPCODE (0x82, "i64.rem_u", i64, i64, binary, unsigned) +WASM_OPCODE (0x83, "i64.and", i64, i64, binary, agnostic) +WASM_OPCODE (0x84, "i64.or", i64, i64, binary, agnostic) +WASM_OPCODE (0x85, "i64.xor", i64, i64, binary, agnostic) +WASM_OPCODE (0x86, "i64.shl", i64, i64, binary, agnostic) +WASM_OPCODE (0x87, "i64.shr_s", i64, i64, binary, signed) +WASM_OPCODE (0x88, "i64.shr_u", i64, i64, binary, unsigned) +WASM_OPCODE (0x89, "i64.rotl", i64, i64, binary, agnostic) +WASM_OPCODE (0x8a, "i64.rotr", i64, i64, binary, agnostic) + +WASM_OPCODE (0x8b, "f32.abs", f32, f32, unary, floating) +WASM_OPCODE (0x8c, "f32.neg", f32, f32, unary, floating) +WASM_OPCODE (0x8d, "f32.ceil", f32, f32, unary, floating) +WASM_OPCODE (0x8e, "f32.floor", f32, f32, unary, floating) +WASM_OPCODE (0x8f, "f32.trunc", f32, f32, unary, floating) +WASM_OPCODE (0x90, "f32.nearest", f32, f32, unary, floating) +WASM_OPCODE (0x91, "f32.sqrt", f32, f32, unary, floating) +WASM_OPCODE (0x92, "f32.add", f32, f32, binary, floating) +WASM_OPCODE (0x93, "f32.sub", f32, f32, binary, floating) +WASM_OPCODE (0x94, "f32.mul", f32, f32, binary, floating) +WASM_OPCODE (0x95, "f32.div", f32, f32, binary, floating) +WASM_OPCODE (0x96, "f32.min", f32, f32, binary, floating) +WASM_OPCODE (0x97, "f32.max", f32, f32, binary, floating) +WASM_OPCODE (0x98, "f32.copysign", f32, f32, binary, floating) + +WASM_OPCODE (0x99, "f64.abs", f64, f64, unary, floating) +WASM_OPCODE (0x9a, "f64.neg", f64, f64, unary, floating) +WASM_OPCODE (0x9b, "f64.ceil", f64, f64, unary, floating) +WASM_OPCODE (0x9c, "f64.floor", f64, f64, unary, floating) +WASM_OPCODE (0x9d, "f64.trunc", f64, f64, unary, floating) +WASM_OPCODE (0x9e, "f64.nearest", f64, f64, unary, floating) +WASM_OPCODE (0x9f, "f64.sqrt", f64, f64, unary, floating) +WASM_OPCODE (0xa0, "f64.add", f64, f64, binary, floating) +WASM_OPCODE (0xa1, "f64.sub", f64, f64, binary, floating) +WASM_OPCODE (0xa2, "f64.mul", f64, f64, binary, floating) +WASM_OPCODE (0xa3, "f64.div", f64, f64, binary, floating) +WASM_OPCODE (0xa4, "f64.min", f64, f64, binary, floating) +WASM_OPCODE (0xa5, "f64.max", f64, f64, binary, floating) +WASM_OPCODE (0xa6, "f64.copysign", f64, f64, binary, floating) + +WASM_OPCODE (0xa7, "i32.wrap/i64", i64, i32, conv, agnostic) +WASM_OPCODE (0xa8, "i32.trunc_s/f32", f32, i32, conv, signed) +WASM_OPCODE (0xa9, "i32.trunc_u/f32", f32, i32, conv, unsigned) +WASM_OPCODE (0xaa, "i32.trunc_s/f64", f64, i32, conv, signed) +WASM_OPCODE (0xab, "i32.trunc_u/f64", f64, i32, conv, unsigned) +WASM_OPCODE (0xac, "i64.extend_s/i32", i32, i64, conv, signed) +WASM_OPCODE (0xad, "i64.extend_u/i32", i32, i64, conv, unsigned) +WASM_OPCODE (0xae, "i64.trunc_s/f32", f32, i64, conv, signed) +WASM_OPCODE (0xaf, "i64.trunc_u/f32", f32, i64, conv, unsigned) +WASM_OPCODE (0xb0, "i64.trunc_s/f64", f64, i64, conv, signed) +WASM_OPCODE (0xb1, "i64.trunc_u/f64", f64, i64, conv, unsigned) + +WASM_OPCODE (0xb2, "f32.convert_s/i32", i32, f32, conv, signed) +WASM_OPCODE (0xb3, "f32.convert_u/i32", i32, f32, conv, unsigned) +WASM_OPCODE (0xb4, "f32.convert_s/i64", i64, f32, conv, signed) +WASM_OPCODE (0xb5, "f32.convert_u/i64", i64, f32, conv, unsigned) +WASM_OPCODE (0xb6, "f32.demote/f64", f64, f32, conv, floating) +WASM_OPCODE (0xb7, "f64.convert_s/i32", i32, f64, conv, signed) +WASM_OPCODE (0xb8, "f64.convert_u/i32", i32, f64, conv, unsigned) +WASM_OPCODE (0xb9, "f64.convert_s/i64", i64, f64, conv, signed) +WASM_OPCODE (0xba, "f64.convert_u/i64", i64, f64, conv, unsigned) +WASM_OPCODE (0xbb, "f64.promote/f32", f32, f64, conv, floating) + +WASM_OPCODE (0xbc, "i32.reinterpret/f32", f32, i32, conv, agnostic) +WASM_OPCODE (0xbd, "i64.reinterpret/f64", f64, i64, conv, agnostic) +WASM_OPCODE (0xbe, "f32.reinterpret/i32", i32, f32, conv, agnostic) +WASM_OPCODE (0xbf, "f64.reinterpret/i64", i64, f64, conv, agnostic) + +/* This isn't, strictly speaking, an opcode, but is treated as such by + the assembler. */ +WASM_OPCODE (0x60, "signature", void, void, signature, agnostic) diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index c6c2cee..07262aa 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,9 @@ +2017-03-30 Pip Cet <pipcet@gmail.com> + + * configure.ac: Add (empty) bfd_wasm32_arch target. + * configure: Regenerate + * po/opcodes.pot: Regenerate. + 2017-03-29 Sheldon Lobo <sheldon.lobo@oracle.com> Add support for missing SPARC ASIs from UA2005, UA2007, OSA2011, & diff --git a/opcodes/configure b/opcodes/configure index d9e8aff..ea26b91 100755 --- a/opcodes/configure +++ b/opcodes/configure @@ -12724,6 +12724,7 @@ if test x${all_targets} = xfalse ; then bfd_vax_arch) ta="$ta vax-dis.lo" ;; bfd_visium_arch) ta="$ta visium-dis.lo visium-opc.lo" ;; bfd_w65_arch) ta="$ta w65-dis.lo" ;; + bfd_wasm32_arch) ;; bfd_we32k_arch) ;; bfd_xc16x_arch) ta="$ta xc16x-asm.lo xc16x-desc.lo xc16x-dis.lo xc16x-ibld.lo xc16x-opc.lo" using_cgen=yes ;; bfd_xgate_arch) ta="$ta xgate-dis.lo xgate-opc.lo" ;; diff --git a/opcodes/configure.ac b/opcodes/configure.ac index 617a86c..ca98292 100644 --- a/opcodes/configure.ac +++ b/opcodes/configure.ac @@ -348,6 +348,7 @@ if test x${all_targets} = xfalse ; then bfd_vax_arch) ta="$ta vax-dis.lo" ;; bfd_visium_arch) ta="$ta visium-dis.lo visium-opc.lo" ;; bfd_w65_arch) ta="$ta w65-dis.lo" ;; + bfd_wasm32_arch) ;; bfd_we32k_arch) ;; bfd_xc16x_arch) ta="$ta xc16x-asm.lo xc16x-desc.lo xc16x-dis.lo xc16x-ibld.lo xc16x-opc.lo" using_cgen=yes ;; bfd_xgate_arch) ta="$ta xgate-dis.lo xgate-opc.lo" ;; diff --git a/opcodes/po/opcodes.pot b/opcodes/po/opcodes.pot index e64a678..b62fc95 100644 --- a/opcodes/po/opcodes.pot +++ b/opcodes/po/opcodes.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2017-02-08 13:38-0600\n" +"POT-Creation-Date: 2017-03-29 17:08+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -18,12 +18,12 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #. Invalid option. -#: aarch64-dis.c:81 arc-dis.c:769 arm-dis.c:6158 +#: aarch64-dis.c:81 arc-dis.c:769 arm-dis.c:6128 #, c-format msgid "Unrecognised disassembler option: %s\n" msgstr "" -#: aarch64-dis.c:3200 +#: aarch64-dis.c:3217 #, c-format msgid "" "\n" @@ -31,225 +31,233 @@ msgid "" "with the -M switch (multiple options should be separated by commas):\n" msgstr "" -#: aarch64-dis.c:3204 +#: aarch64-dis.c:3221 #, c-format msgid "" "\n" " no-aliases Don't print instruction aliases.\n" msgstr "" -#: aarch64-dis.c:3207 +#: aarch64-dis.c:3224 #, c-format msgid "" "\n" " aliases Do print instruction aliases.\n" msgstr "" -#: aarch64-dis.c:3211 +#: aarch64-dis.c:3228 #, c-format msgid "" "\n" " debug_dump Temp switch for debug trace.\n" msgstr "" -#: aarch64-dis.c:3215 mips-dis.c:2477 mips-dis.c:2485 mips-dis.c:2487 +#: aarch64-dis.c:3232 mips-dis.c:2477 mips-dis.c:2485 mips-dis.c:2487 #: riscv-dis.c:506 #, c-format msgid "\n" msgstr "" -#: aarch64-opc.c:1303 +#: aarch64-opc.c:1306 msgid "immediate value" msgstr "" -#: aarch64-opc.c:1313 +#: aarch64-opc.c:1316 msgid "immediate offset" msgstr "" -#: aarch64-opc.c:1323 +#: aarch64-opc.c:1326 msgid "register number" msgstr "" -#: aarch64-opc.c:1333 +#: aarch64-opc.c:1336 msgid "register element index" msgstr "" -#: aarch64-opc.c:1343 +#: aarch64-opc.c:1346 msgid "shift amount" msgstr "" -#: aarch64-opc.c:1355 +#: aarch64-opc.c:1358 msgid "multiplier" msgstr "" -#: aarch64-opc.c:1428 +#: aarch64-opc.c:1431 msgid "reg pair must start from even reg" msgstr "" -#: aarch64-opc.c:1434 +#: aarch64-opc.c:1437 msgid "reg pair must be contiguous" msgstr "" -#: aarch64-opc.c:1448 +#: aarch64-opc.c:1451 msgid "extraneous register" msgstr "" -#: aarch64-opc.c:1454 +#: aarch64-opc.c:1457 msgid "missing register" msgstr "" -#: aarch64-opc.c:1465 +#: aarch64-opc.c:1468 msgid "stack pointer register expected" msgstr "" +#: aarch64-opc.c:1491 +msgid "z0-z15 expected" +msgstr "" + #: aarch64-opc.c:1492 +msgid "z0-z7 expected" +msgstr "" + +#: aarch64-opc.c:1518 msgid "invalid register list" msgstr "" -#: aarch64-opc.c:1506 +#: aarch64-opc.c:1532 msgid "p0-p7 expected" msgstr "" -#: aarch64-opc.c:1532 aarch64-opc.c:1540 +#: aarch64-opc.c:1558 aarch64-opc.c:1566 msgid "unexpected address writeback" msgstr "" -#: aarch64-opc.c:1551 +#: aarch64-opc.c:1577 msgid "address writeback expected" msgstr "" -#: aarch64-opc.c:1597 +#: aarch64-opc.c:1623 msgid "negative or unaligned offset expected" msgstr "" -#: aarch64-opc.c:1624 +#: aarch64-opc.c:1650 msgid "invalid register offset" msgstr "" -#: aarch64-opc.c:1646 +#: aarch64-opc.c:1672 msgid "invalid post-increment amount" msgstr "" -#: aarch64-opc.c:1662 aarch64-opc.c:2132 +#: aarch64-opc.c:1688 aarch64-opc.c:2165 msgid "invalid shift amount" msgstr "" -#: aarch64-opc.c:1675 +#: aarch64-opc.c:1701 msgid "invalid extend/shift operator" msgstr "" -#: aarch64-opc.c:1721 aarch64-opc.c:1955 aarch64-opc.c:1990 aarch64-opc.c:2009 -#: aarch64-opc.c:2017 aarch64-opc.c:2088 aarch64-opc.c:2262 aarch64-opc.c:2362 -#: aarch64-opc.c:2375 +#: aarch64-opc.c:1747 aarch64-opc.c:1986 aarch64-opc.c:2021 aarch64-opc.c:2040 +#: aarch64-opc.c:2048 aarch64-opc.c:2119 aarch64-opc.c:2295 aarch64-opc.c:2395 +#: aarch64-opc.c:2408 msgid "immediate out of range" msgstr "" -#: aarch64-opc.c:1743 aarch64-opc.c:1785 aarch64-opc.c:1829 aarch64-opc.c:1863 +#: aarch64-opc.c:1769 aarch64-opc.c:1811 aarch64-opc.c:1860 aarch64-opc.c:1894 msgid "invalid addressing mode" msgstr "" -#: aarch64-opc.c:1821 +#: aarch64-opc.c:1852 msgid "index register xzr is not allowed" msgstr "" -#: aarch64-opc.c:1943 aarch64-opc.c:1965 aarch64-opc.c:2165 aarch64-opc.c:2173 -#: aarch64-opc.c:2239 aarch64-opc.c:2268 +#: aarch64-opc.c:1974 aarch64-opc.c:1996 aarch64-opc.c:2198 aarch64-opc.c:2206 +#: aarch64-opc.c:2272 aarch64-opc.c:2301 msgid "invalid shift operator" msgstr "" -#: aarch64-opc.c:1949 +#: aarch64-opc.c:1980 msgid "shift amount must be 0 or 12" msgstr "" -#: aarch64-opc.c:1972 +#: aarch64-opc.c:2003 msgid "shift amount must be a multiple of 16" msgstr "" -#: aarch64-opc.c:1984 +#: aarch64-opc.c:2015 msgid "negative immediate value not allowed" msgstr "" -#: aarch64-opc.c:2099 +#: aarch64-opc.c:2130 msgid "immediate zero expected" msgstr "" -#: aarch64-opc.c:2112 +#: aarch64-opc.c:2144 msgid "rotate expected to be 0, 90, 180 or 270" msgstr "" -#: aarch64-opc.c:2121 +#: aarch64-opc.c:2154 msgid "rotate expected to be 90 or 270" msgstr "" -#: aarch64-opc.c:2181 +#: aarch64-opc.c:2214 msgid "shift is not permitted" msgstr "" -#: aarch64-opc.c:2206 +#: aarch64-opc.c:2239 msgid "invalid value for immediate" msgstr "" -#: aarch64-opc.c:2231 +#: aarch64-opc.c:2264 msgid "shift amount must be 0 or 16" msgstr "" -#: aarch64-opc.c:2252 +#: aarch64-opc.c:2285 msgid "floating-point immediate expected" msgstr "" -#: aarch64-opc.c:2286 +#: aarch64-opc.c:2319 msgid "no shift amount allowed for 8-bit constants" msgstr "" -#: aarch64-opc.c:2296 +#: aarch64-opc.c:2329 msgid "shift amount must be 0 or 8" msgstr "" -#: aarch64-opc.c:2309 +#: aarch64-opc.c:2342 msgid "immediate too big for element size" msgstr "" -#: aarch64-opc.c:2316 +#: aarch64-opc.c:2349 msgid "invalid arithmetic immediate" msgstr "" -#: aarch64-opc.c:2330 +#: aarch64-opc.c:2363 msgid "floating-point value must be 0.5 or 1.0" msgstr "" -#: aarch64-opc.c:2340 +#: aarch64-opc.c:2373 msgid "floating-point value must be 0.5 or 2.0" msgstr "" -#: aarch64-opc.c:2350 +#: aarch64-opc.c:2383 msgid "floating-point value must be 0.0 or 1.0" msgstr "" -#: aarch64-opc.c:2381 +#: aarch64-opc.c:2414 msgid "invalid replicated MOV immediate" msgstr "" -#: aarch64-opc.c:2495 +#: aarch64-opc.c:2528 msgid "extend operator expected" msgstr "" -#: aarch64-opc.c:2508 +#: aarch64-opc.c:2541 msgid "missing extend operator" msgstr "" -#: aarch64-opc.c:2514 +#: aarch64-opc.c:2547 msgid "'LSL' operator not allowed" msgstr "" -#: aarch64-opc.c:2535 +#: aarch64-opc.c:2568 msgid "W register expected" msgstr "" -#: aarch64-opc.c:2546 +#: aarch64-opc.c:2579 msgid "shift operator expected" msgstr "" -#: aarch64-opc.c:2553 +#: aarch64-opc.c:2586 msgid "'ROR' operator not allowed" msgstr "" @@ -312,190 +320,205 @@ msgstr "" msgid " fpud Recognize double precision FPU instructions.\n" msgstr "" -#: arc-opc.c:40 arc-opc.c:60 arc-opc.c:86 +#: arc-opc.c:41 arc-opc.c:64 arc-opc.c:90 msgid "LP_COUNT register cannot be used as destination register" msgstr "" -#: arc-opc.c:84 +#: arc-opc.c:88 msgid "cannot use odd number destination register" msgstr "" -#: arc-opc.c:97 +#: arc-opc.c:101 msgid "cannot use odd number source register" msgstr "" -#: arc-opc.c:110 +#: arc-opc.c:114 msgid "operand is not zero" msgstr "" -#: arc-opc.c:170 +#: arc-opc.c:173 msgid "Register R30 is a limm indicator" msgstr "" -#: arc-opc.c:189 +#: arc-opc.c:192 msgid "Register must be R0" msgstr "" -#: arc-opc.c:207 +#: arc-opc.c:210 msgid "Register must be R1" msgstr "" -#: arc-opc.c:224 +#: arc-opc.c:227 msgid "Register must be R2" msgstr "" -#: arc-opc.c:241 +#: arc-opc.c:244 msgid "Register must be R3" msgstr "" -#: arc-opc.c:258 +#: arc-opc.c:261 msgid "Register must be SP" msgstr "" -#: arc-opc.c:275 +#: arc-opc.c:278 msgid "Register must be GP" msgstr "" -#: arc-opc.c:292 +#: arc-opc.c:295 msgid "Register must be PCL" msgstr "" -#: arc-opc.c:309 +#: arc-opc.c:312 msgid "Register must be BLINK" msgstr "" -#: arc-opc.c:326 +#: arc-opc.c:329 msgid "Register must be ILINK1" msgstr "" -#: arc-opc.c:343 +#: arc-opc.c:346 msgid "Register must be ILINK2" msgstr "" #. ARC NPS400 Support: See comment near head of file. -#: arc-opc.c:374 arc-opc.c:411 arc-opc.c:448 arc-opc.c:692 +#: arc-opc.c:377 arc-opc.c:415 arc-opc.c:453 arc-opc.c:703 msgid "Register must be either r0-r3 or r12-r15" msgstr "" -#: arc-opc.c:498 +#: arc-opc.c:504 msgid "Accepted values are from -1 to 6" msgstr "" -#: arc-opc.c:526 +#: arc-opc.c:533 msgid "First register of the range should be r13" msgstr "" -#: arc-opc.c:531 +#: arc-opc.c:535 msgid "Last register of the range doesn't fit" msgstr "" -#: arc-opc.c:552 +#: arc-opc.c:555 msgid "Invalid register number, should be fp" msgstr "" -#: arc-opc.c:574 +#: arc-opc.c:577 msgid "Invalid register number, should be blink" msgstr "" -#: arc-opc.c:596 +#: arc-opc.c:599 msgid "Invalid register number, should be pcl" msgstr "" -#: arc-opc.c:740 +#: arc-opc.c:751 msgid "Invalid size, should be 1, 2, 4, or 8" msgstr "" -#: arc-opc.c:785 +#: arc-opc.c:796 msgid "invalid immediate, must be 1, 2, or 4" msgstr "" -#: arc-opc.c:823 +#: arc-opc.c:835 msgid "invalid value for CMEM ld/st immediate" msgstr "" -#: arc-opc.c:850 +#: arc-opc.c:862 +msgid "Invalid position, should be 0, 16, 32, 48 or 64." +msgstr "" + +#: arc-opc.c:896 +msgid "Invalid position, should be 16, 32, 64 or 128." +msgstr "" + +#: arc-opc.c:918 +msgid "Invalid size value must be on range 1-64." +msgstr "" + +#: arc-opc.c:949 msgid "Invalid position, should be 0, 8, 16, or 24" msgstr "" -#: arc-opc.c:875 +#: arc-opc.c:974 msgid "Invalid size, value must be " msgstr "" -#: arc-opc.c:949 +#: arc-opc.c:1048 msgid "value out of range 1 - 256" msgstr "" -#: arc-opc.c:958 +#: arc-opc.c:1057 msgid "value must be power of 2" msgstr "" -#: arc-opc.c:1011 +#: arc-opc.c:1110 msgid "Value must be in the range 0 to 28" msgstr "" -#: arc-opc.c:1032 +#: arc-opc.c:1132 msgid "Value must be in the range 1 to " msgstr "" -#: arc-opc.c:1062 +#: arc-opc.c:1162 msgid "Value must be in the range 0 to 240" msgstr "" -#: arc-opc.c:1064 +#: arc-opc.c:1164 msgid "Value must be a multiple of 16" msgstr "" -#: arc-opc.c:1084 +#: arc-opc.c:1184 msgid "Invalid address type for operand" msgstr "" -#: arc-opc.c:1118 +#: arc-opc.c:1218 msgid "Value must be in the range 0 to 31" msgstr "" -#: arm-dis.c:3202 +#: arc-opc.c:1243 +msgid "Invalid position, should be 0,4, 8,...124." +msgstr "" + +#: arm-dis.c:3198 msgid "Select raw register names" msgstr "" -#: arm-dis.c:3204 +#: arm-dis.c:3200 msgid "Select register names used by GCC" msgstr "" -#: arm-dis.c:3206 +#: arm-dis.c:3202 msgid "Select register names used in ARM's ISA documentation" msgstr "" -#: arm-dis.c:3208 -msgid "Select register names used in the APCS" +#: arm-dis.c:3204 +msgid "Assume all insns are Thumb insns" msgstr "" -#: arm-dis.c:3210 -msgid "Select register names used in the ATPCS" +#: arm-dis.c:3205 +msgid "Examine preceding label to determine an insn's type" msgstr "" -#: arm-dis.c:3212 -msgid "Select special register names used in the ATPCS" +#: arm-dis.c:3206 +msgid "Select register names used in the APCS" msgstr "" -#. All non "reg-names-* options must be listed last. -#: arm-dis.c:3216 -msgid "Assume all insns are Thumb insns" +#: arm-dis.c:3208 +msgid "Select register names used in the ATPCS" msgstr "" -#: arm-dis.c:3217 -msgid "Examine preceding label to determine an insn's type" +#: arm-dis.c:3210 +msgid "Select special register names used in the ATPCS" msgstr "" -#: arm-dis.c:3638 +#: arm-dis.c:3608 msgid "<illegal precision>" msgstr "" -#: arm-dis.c:6151 +#: arm-dis.c:6121 #, c-format msgid "Unrecognised register name set: %s\n" msgstr "" -#: arm-dis.c:6855 +#: arm-dis.c:6825 #, c-format msgid "" "\n" @@ -790,11 +813,11 @@ msgstr "" msgid "%02x\t\t*unknown*" msgstr "" -#: i386-dis.c:12200 +#: i386-dis.c:12276 msgid "<internal disassembler error>" msgstr "" -#: i386-dis.c:12492 +#: i386-dis.c:12568 #, c-format msgid "" "\n" @@ -803,145 +826,145 @@ msgid "" "with the -M switch (multiple options should be separated by commas):\n" msgstr "" -#: i386-dis.c:12496 +#: i386-dis.c:12572 #, c-format msgid " x86-64 Disassemble in 64bit mode\n" msgstr "" -#: i386-dis.c:12497 +#: i386-dis.c:12573 #, c-format msgid " i386 Disassemble in 32bit mode\n" msgstr "" -#: i386-dis.c:12498 +#: i386-dis.c:12574 #, c-format msgid " i8086 Disassemble in 16bit mode\n" msgstr "" -#: i386-dis.c:12499 +#: i386-dis.c:12575 #, c-format msgid " att Display instruction in AT&T syntax\n" msgstr "" -#: i386-dis.c:12500 +#: i386-dis.c:12576 #, c-format msgid " intel Display instruction in Intel syntax\n" msgstr "" -#: i386-dis.c:12501 +#: i386-dis.c:12577 #, c-format msgid "" " att-mnemonic\n" " Display instruction in AT&T mnemonic\n" msgstr "" -#: i386-dis.c:12503 +#: i386-dis.c:12579 #, c-format msgid "" " intel-mnemonic\n" " Display instruction in Intel mnemonic\n" msgstr "" -#: i386-dis.c:12505 +#: i386-dis.c:12581 #, c-format msgid " addr64 Assume 64bit address size\n" msgstr "" -#: i386-dis.c:12506 +#: i386-dis.c:12582 #, c-format msgid " addr32 Assume 32bit address size\n" msgstr "" -#: i386-dis.c:12507 +#: i386-dis.c:12583 #, c-format msgid " addr16 Assume 16bit address size\n" msgstr "" -#: i386-dis.c:12508 +#: i386-dis.c:12584 #, c-format msgid " data32 Assume 32bit data size\n" msgstr "" -#: i386-dis.c:12509 +#: i386-dis.c:12585 #, c-format msgid " data16 Assume 16bit data size\n" msgstr "" -#: i386-dis.c:12510 +#: i386-dis.c:12586 #, c-format msgid " suffix Always display instruction suffix in AT&T syntax\n" msgstr "" -#: i386-dis.c:12511 +#: i386-dis.c:12587 #, c-format msgid " amd64 Display instruction in AMD64 ISA\n" msgstr "" -#: i386-dis.c:12512 +#: i386-dis.c:12588 #, c-format msgid " intel64 Display instruction in Intel64 ISA\n" msgstr "" -#: i386-dis.c:13063 +#: i386-dis.c:13139 msgid "64-bit address is disabled" msgstr "" -#: i386-gen.c:679 ia64-gen.c:306 +#: i386-gen.c:682 ia64-gen.c:306 #, c-format msgid "%s: Error: " msgstr "" -#: i386-gen.c:843 +#: i386-gen.c:846 #, c-format msgid "%s: %d: Unknown bitfield: %s\n" msgstr "" -#: i386-gen.c:845 +#: i386-gen.c:848 #, c-format msgid "Unknown bitfield: %s\n" msgstr "" -#: i386-gen.c:904 +#: i386-gen.c:907 #, c-format msgid "%s: %d: Missing `)' in bitfield: %s\n" msgstr "" -#: i386-gen.c:1175 +#: i386-gen.c:1178 #, c-format msgid "can't find i386-opc.tbl for reading, errno = %s\n" msgstr "" -#: i386-gen.c:1306 +#: i386-gen.c:1309 #, c-format msgid "can't find i386-reg.tbl for reading, errno = %s\n" msgstr "" -#: i386-gen.c:1383 +#: i386-gen.c:1386 #, c-format msgid "can't create i386-init.h, errno = %s\n" msgstr "" -#: i386-gen.c:1473 ia64-gen.c:2829 +#: i386-gen.c:1476 ia64-gen.c:2829 #, c-format msgid "unable to change directory to \"%s\", errno = %s\n" msgstr "" -#: i386-gen.c:1485 i386-gen.c:1488 +#: i386-gen.c:1488 i386-gen.c:1491 #, c-format msgid "CpuMax != %d!\n" msgstr "" -#: i386-gen.c:1492 +#: i386-gen.c:1495 #, c-format msgid "%d unused bits in i386_cpu_flags.\n" msgstr "" -#: i386-gen.c:1499 +#: i386-gen.c:1502 #, c-format msgid "%d unused bits in i386_operand_type.\n" msgstr "" -#: i386-gen.c:1513 +#: i386-gen.c:1516 #, c-format msgid "can't create i386-tbl.h, errno = %s\n" msgstr "" @@ -1433,12 +1456,12 @@ msgstr "" msgid "$<undefined>" msgstr "" -#: ppc-dis.c:347 +#: ppc-dis.c:359 #, c-format msgid "warning: ignoring unknown -M%s option\n" msgstr "" -#: ppc-dis.c:793 +#: ppc-dis.c:810 #, c-format msgid "" "\n" @@ -1446,71 +1469,71 @@ msgid "" "the -M switch:\n" msgstr "" -#: ppc-opc.c:982 ppc-opc.c:1005 ppc-opc.c:1030 ppc-opc.c:1059 +#: ppc-opc.c:990 ppc-opc.c:1013 ppc-opc.c:1038 ppc-opc.c:1067 msgid "invalid register" msgstr "" -#: ppc-opc.c:1307 ppc-opc.c:1337 +#: ppc-opc.c:1315 ppc-opc.c:1345 msgid "invalid conditional option" msgstr "" -#: ppc-opc.c:1309 ppc-opc.c:1339 +#: ppc-opc.c:1317 ppc-opc.c:1347 msgid "invalid counter access" msgstr "" -#: ppc-opc.c:1341 +#: ppc-opc.c:1349 msgid "attempt to set y bit when using + or - modifier" msgstr "" -#: ppc-opc.c:1431 +#: ppc-opc.c:1439 msgid "invalid mask field" msgstr "" -#: ppc-opc.c:1454 +#: ppc-opc.c:1462 msgid "invalid mfcr mask" msgstr "" -#: ppc-opc.c:1528 ppc-opc.c:1552 +#: ppc-opc.c:1536 ppc-opc.c:1576 msgid "illegal L operand value" msgstr "" -#: ppc-opc.c:1558 +#: ppc-opc.c:1582 msgid "incompatible L operand value" msgstr "" -#: ppc-opc.c:1581 ppc-opc.c:1616 +#: ppc-opc.c:1626 ppc-opc.c:1661 msgid "illegal bitmask" msgstr "" -#: ppc-opc.c:1703 +#: ppc-opc.c:1748 msgid "address register in load range" msgstr "" -#: ppc-opc.c:1756 +#: ppc-opc.c:1814 msgid "index register in load range" msgstr "" -#: ppc-opc.c:1772 ppc-opc.c:1828 +#: ppc-opc.c:1843 ppc-opc.c:1924 msgid "source and target register operands must be different" msgstr "" -#: ppc-opc.c:1787 +#: ppc-opc.c:1871 msgid "invalid register operand when updating" msgstr "" -#: ppc-opc.c:1878 +#: ppc-opc.c:1987 msgid "illegal immediate value" msgstr "" -#: ppc-opc.c:2025 +#: ppc-opc.c:2134 msgid "invalid sprg number" msgstr "" -#: ppc-opc.c:2062 +#: ppc-opc.c:2171 msgid "invalid tbr number" msgstr "" -#: ppc-opc.c:2206 +#: ppc-opc.c:2315 msgid "invalid constant" msgstr "" |