From cfb8c0921c8ab3be8e5e48ec31e472742c2d4104 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 25 Oct 2011 11:18:16 +0000 Subject: bfd: * Makefile.am (ALL_MACHINES): Add cpu-epiphany.lo . (ALL_MACHINES_CFILES): Add cpu-epiphany.c . (BFD32_BACKENDS): Add elf32-epiphany.lo . (BFD32_BACKENDS_CFILES): Add elf32-epiphany.c . * Makefile.in, bfd-in2.h, configure, libbfd.h: Regenerate. * archures.c (bfd_arch_epiphany): Add. (bfd_mach_epiphany16, bfd_mach_epiphany32): Define. (bfd_epiphany_arch): Declare. (bfd_archures_list): Add &bfd_epiphany_arch. * config.bfd (epiphany-*-elf): New target case. * configure.in (bfd_elf32_epiphany_vec): New target vector case. * reloc.c (BFD_RELOC_EPIPHANY_SIMM8): New relocation. (BFD_RELOC_EPIPHANY_SIMM24, BFD_RELOC_EPIPHANY_HIGH): Likewise. (BFD_RELOC_EPIPHANY_LOW, BFD_RELOC_EPIPHANY_SIMM11): Likewise. (BFD_RELOC_EPIPHANY_IMM11, BFD_RELOC_EPIPHANY_IMM8): Likewise. * targets.c (bfd_elf32_epiphany_vec): Declare. (_bfd_target_vector): Add bfd_elf32_epiphany_vec. * po/SRC-POTFILES.in, po/bfd.pot: Regenerate. * cpu-epiphany.c, elf32-epiphany.c: New files. binutils: * readelf.c (include "elf/epiphany.h") (guess_is_rela, dump_relocation): Handle EM_ADAPTEVA_EPIPHANY. (get_machine_name, is_32bit_abs_reloc, is_32bit_pcrel_reloc): Likewise. (is_16bit_abs_reloc, is_none_reloc): Likewise. * po/binutils.pot: Regenerate. cpu: * cpu/epiphany.cpu, cpu/epiphany.opc: New files. gas: * NEWS: Mention addition of Adapteva Epiphany support. * config/tc-epiphany.c, config/tc-epiphany.h: New files. * Makefile.am (TARGET_CPU_CFILES): Add config/tc-epiphany.c . (TARGET_CPU_HFILES): Add config/tc-epiphany.h . * Makefile.in, configure, doc/Makefile.in, po/POTFILES.in: Regenerate. * configure.in: Also set using_cgen for epiphany. * configure.tgt: Handle epiphany. * doc/Makefile.am (CPU_DOCS): Add c-epiphany.texi . * doc/all.texi: Set EPIPHANY. * doc/as.texinfo: Add EPIPHANY-specific text. * doc/c-epiphany.texi: New file. * po/gas.pot: Regenerate. gas/testsuite: * gas/epiphany: New directory. include: * dis-asm.h (print_insn_epiphany): Declare. * elf/epiphany.h: New file. * elf/common.h (EM_ADAPTEVA_EPIPHANY): Define. ld: * NEWS: Mention addition of Adapteva Epiphany support. * Makefile.am (ALL_EMULATION_SOURCES): Add eelf32epiphany.c . (eelf32epiphany.c): New rule. * Makefile.in: Regenerate. * configure.tgt: Handle epiphany-*-elf. * po/ld.pot: Regenerate. * testsuite/ld-srec/srec.exp: xfail epiphany. * emulparams/elf32epiphany.sh: New file. opcodes: * Makefile.am (HFILES): Add epiphany-desc.h and epiphany-opc.h . (TARGET_LIBOPCODES_CFILES): Add epiphany-asm.c, epiphany-desc.c, epiphany-dis.c, epiphany-ibld.c and epiphany-opc.c . (CLEANFILES): Add stamp-epiphany. (EPIPHANY_DEPS): Set. Make CGEN-generated Epiphany files depend on it. (stamp-epiphany): New rule. * Makefile.in, configure, po/POTFILES.in, po/opcodes.pot: Regenerate. * configure.in: Handle bfd_epiphany_arch. * disassemble.c (ARCH_epiphany): Define. (disassembler): Handle bfd_arch_epiphany. * epiphany-asm.c, epiphany-desc.c, epiphany-desc.h: New files. * epiphany-dis.c, epiphany-ibld.c, epiphany-opc.c: Likewise. * epiphany-opc.h: Likewise. --- gas/ChangeLog | 19 + gas/Makefile.am | 2 + gas/Makefile.in | 17 + gas/NEWS | 2 + gas/config/tc-epiphany.c | 1110 +++++++++++ gas/config/tc-epiphany.h | 102 + gas/configure | 2 +- gas/configure.in | 2 +- gas/configure.tgt | 3 + gas/doc/Makefile.am | 3 +- gas/doc/Makefile.in | 3 +- gas/doc/all.texi | 1 + gas/doc/as.texinfo | 28 + gas/doc/c-epiphany.texi | 67 + gas/po/POTFILES.in | 2 + gas/po/gas.pot | 3030 +++++++++++++++++------------- gas/testsuite/ChangeLog | 18 + gas/testsuite/gas/epiphany/addr-syntax.d | 15 + gas/testsuite/gas/epiphany/addr-syntax.s | 9 + gas/testsuite/gas/epiphany/allinsn.d | 1400 ++++++++++++++ gas/testsuite/gas/epiphany/allinsn.exp | 11 + gas/testsuite/gas/epiphany/allinsn.s | 1563 +++++++++++++++ gas/testsuite/gas/epiphany/badpostmod.s | 14 + gas/testsuite/gas/epiphany/badrelax.d | 12 + gas/testsuite/gas/epiphany/badrelax.s | 5 + gas/testsuite/gas/epiphany/branch_lit.d | 11 + gas/testsuite/gas/epiphany/branch_lit.s | 1 + gas/testsuite/gas/epiphany/regression.d | 300 +++ gas/testsuite/gas/epiphany/regression.s | 240 +++ gas/testsuite/gas/epiphany/sample.d | 221 +++ gas/testsuite/gas/epiphany/sample.s | 123 ++ 31 files changed, 7003 insertions(+), 1333 deletions(-) create mode 100755 gas/config/tc-epiphany.c create mode 100755 gas/config/tc-epiphany.h create mode 100644 gas/doc/c-epiphany.texi create mode 100644 gas/testsuite/gas/epiphany/addr-syntax.d create mode 100644 gas/testsuite/gas/epiphany/addr-syntax.s create mode 100644 gas/testsuite/gas/epiphany/allinsn.d create mode 100644 gas/testsuite/gas/epiphany/allinsn.exp create mode 100644 gas/testsuite/gas/epiphany/allinsn.s create mode 100644 gas/testsuite/gas/epiphany/badpostmod.s create mode 100644 gas/testsuite/gas/epiphany/badrelax.d create mode 100644 gas/testsuite/gas/epiphany/badrelax.s create mode 100644 gas/testsuite/gas/epiphany/branch_lit.d create mode 100644 gas/testsuite/gas/epiphany/branch_lit.s create mode 100644 gas/testsuite/gas/epiphany/regression.d create mode 100644 gas/testsuite/gas/epiphany/regression.s create mode 100644 gas/testsuite/gas/epiphany/sample.d create mode 100755 gas/testsuite/gas/epiphany/sample.s (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 41972b2..a82fe62 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,22 @@ +2011-10-25 Joern Rennecke + + * NEWS: Mention addition of Adapteva Epiphany support. + * config/tc-epiphany.c: New file. + * config/tc-epiphany.h: New file. + * Makefile.am (TARGET_CPU_CFILES): Add config/tc-epiphany.c . + (TARGET_CPU_HFILES): Add config/tc-epiphany.h . + * configure.in: Also set using_cgen for epiphany. + * configure.tgt: Handle epiphany. + * doc/Makefile.am (CPU_DOCS): Add c-epiphany.texi . + * doc/all.texi: Set EPIPHANY. + * doc/as.texinfo: Add EPIPHANY-specific text. + * doc/c-epiphany.texi: New file. + * po/gas.pot: Regenerate. + * Makefile.in: Regenerate. + * configure: Regenerate. + * doc/Makefile.in: Regenerate. + * po/POTFILES.in: Regenerate. + 2011-10-24 Maciej W. Rozycki * config/tc-mips.c (move_register): Fix formatting. diff --git a/gas/Makefile.am b/gas/Makefile.am index 8074903..4bd21b3 100644 --- a/gas/Makefile.am +++ b/gas/Makefile.am @@ -118,6 +118,7 @@ TARGET_CPU_CFILES = \ config/tc-d10v.c \ config/tc-d30v.c \ config/tc-dlx.c \ + config/tc-epiphany.c \ config/tc-fr30.c \ config/tc-frv.c \ config/tc-h8300.c \ @@ -184,6 +185,7 @@ TARGET_CPU_HFILES = \ config/tc-d10v.h \ config/tc-d30v.h \ config/tc-dlx.h \ + config/tc-epiphany.h \ config/tc-fr30.h \ config/tc-frv.h \ config/tc-h8300.h \ diff --git a/gas/Makefile.in b/gas/Makefile.in index ddd42d7..ccc7db7 100644 --- a/gas/Makefile.in +++ b/gas/Makefile.in @@ -385,6 +385,7 @@ TARGET_CPU_CFILES = \ config/tc-d10v.c \ config/tc-d30v.c \ config/tc-dlx.c \ + config/tc-epiphany.c \ config/tc-fr30.c \ config/tc-frv.c \ config/tc-h8300.c \ @@ -451,6 +452,7 @@ TARGET_CPU_HFILES = \ config/tc-d10v.h \ config/tc-d30v.h \ config/tc-dlx.h \ + config/tc-epiphany.h \ config/tc-fr30.h \ config/tc-frv.h \ config/tc-h8300.h \ @@ -796,6 +798,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-d10v.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-d30v.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-dlx.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-epiphany.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-fr30.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-frv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tc-h8300.Po@am__quote@ @@ -1027,6 +1030,20 @@ tc-dlx.obj: config/tc-dlx.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-dlx.obj `if test -f 'config/tc-dlx.c'; then $(CYGPATH_W) 'config/tc-dlx.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-dlx.c'; fi` +tc-epiphany.o: config/tc-epiphany.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-epiphany.o -MD -MP -MF $(DEPDIR)/tc-epiphany.Tpo -c -o tc-epiphany.o `test -f 'config/tc-epiphany.c' || echo '$(srcdir)/'`config/tc-epiphany.c +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-epiphany.Tpo $(DEPDIR)/tc-epiphany.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-epiphany.c' object='tc-epiphany.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-epiphany.o `test -f 'config/tc-epiphany.c' || echo '$(srcdir)/'`config/tc-epiphany.c + +tc-epiphany.obj: config/tc-epiphany.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-epiphany.obj -MD -MP -MF $(DEPDIR)/tc-epiphany.Tpo -c -o tc-epiphany.obj `if test -f 'config/tc-epiphany.c'; then $(CYGPATH_W) 'config/tc-epiphany.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-epiphany.c'; fi` +@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-epiphany.Tpo $(DEPDIR)/tc-epiphany.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config/tc-epiphany.c' object='tc-epiphany.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-epiphany.obj `if test -f 'config/tc-epiphany.c'; then $(CYGPATH_W) 'config/tc-epiphany.c'; else $(CYGPATH_W) '$(srcdir)/config/tc-epiphany.c'; fi` + tc-fr30.o: config/tc-fr30.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT tc-fr30.o -MD -MP -MF $(DEPDIR)/tc-fr30.Tpo -c -o tc-fr30.o `test -f 'config/tc-fr30.c' || echo '$(srcdir)/'`config/tc-fr30.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/tc-fr30.Tpo $(DEPDIR)/tc-fr30.Po diff --git a/gas/NEWS b/gas/NEWS index e2c1ce1..60a7dd0 100644 --- a/gas/NEWS +++ b/gas/NEWS @@ -1,5 +1,7 @@ -*- text -*- +* Add support for the Adapteva EPIPHANY architecture. + Changes in 2.22: * Add support for the Tilera TILEPRO and TILE-Gx architectures. diff --git a/gas/config/tc-epiphany.c b/gas/config/tc-epiphany.c new file mode 100755 index 0000000..f4fed25 --- /dev/null +++ b/gas/config/tc-epiphany.c @@ -0,0 +1,1110 @@ +/* tc-epiphany.c -- Assembler for the Adapteva EPIPHANY + Copyright 2011 Free Software Foundation, Inc. + Contributed by Embecosm on behalf of Adapteva, 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 "subsegs.h" +#include "symcat.h" +#include "opcodes/epiphany-desc.h" +#include "opcodes/epiphany-opc.h" +#include "cgen.h" +#include "elf/common.h" +#include "elf/epiphany.h" +#include "dwarf2dbg.h" +#include "libbfd.h" + +/* Structure to hold all of the different components describing + an individual instruction. */ +typedef struct +{ + const CGEN_INSN * insn; + const CGEN_INSN * orig_insn; + CGEN_FIELDS fields; +#if CGEN_INT_INSN_P + CGEN_INSN_INT buffer [1]; +#define INSN_VALUE(buf) (*(buf)) +#else + unsigned char buffer [CGEN_MAX_INSN_SIZE]; +#define INSN_VALUE(buf) (buf) +#endif + char * addr; + fragS * frag; + int num_fixups; + fixS * fixups [GAS_CGEN_MAX_FIXUPS]; + int indices [MAX_OPERAND_INSTANCES]; +} +epiphany_insn; + +const char comment_chars[] = ";"; +const char line_comment_chars[] = "#"; +const char line_separator_chars[] = "`"; +const char EXP_CHARS[] = "eE"; +const char FLT_CHARS[] = "fFdD"; + +/* Flag to detect when switching to code section where insn alignment is + implied. */ +static bfd_boolean force_code_align = FALSE; + +static void +epiphany_elf_section_rtn (int i) +{ + obj_elf_section (i); + + if (force_code_align) + { + /* The s_align_ptwo function expects that we are just after a .align + directive and it will either try and read the align value or stop + if end of line so we must fake it out so it thinks we are at the + end of the line. */ + char *old_input_line_pointer = input_line_pointer; + + input_line_pointer = "\n"; + s_align_ptwo (1); + force_code_align = FALSE; + + /* Restore. */ + input_line_pointer = old_input_line_pointer; + } +} + +static void +epiphany_elf_section_text (int i) +{ + char *old_input_line_pointer; + + obj_elf_text (i); + + /* The s_align_ptwo function expects that we are just after a .align + directive and it will either try and read the align value or stop if + end of line so we must fake it out so it thinks we are at the end of + the line. */ + old_input_line_pointer = input_line_pointer; + input_line_pointer = "\n"; + s_align_ptwo (1); + force_code_align = FALSE; + /* Restore. */ + input_line_pointer = old_input_line_pointer; +} + +/* The target specific pseudo-ops which we support. */ +const pseudo_typeS md_pseudo_table[] = +{ + { "text", epiphany_elf_section_text, 0 }, + { "sect", epiphany_elf_section_rtn, 0 }, + /* .word should be 32 bits. */ + { "word", cons, 4 }, + { "cpu", s_ignore, 0 }, + { "thumb_func", s_ignore, 0 }, + { "code", s_ignore, 0 }, + { NULL, NULL, 0 } +}; + + + +enum options +{ + OPTION_CPU_EPIPHANY = OPTION_MD_BASE, + OPTION_CPU_EPIPHANY16 +}; + +struct option md_longopts[] = +{ + { "mepiphany ", no_argument, NULL, OPTION_CPU_EPIPHANY }, + { "mepiphany16", no_argument, NULL, OPTION_CPU_EPIPHANY16 }, + { NULL, no_argument, NULL, 0 }, +}; + +size_t md_longopts_size = sizeof (md_longopts); + +const char * md_shortopts = ""; + +int +md_parse_option (int c ATTRIBUTE_UNUSED, char * arg ATTRIBUTE_UNUSED) +{ + return 0; /* No target-specific options. */ +} + +void +md_show_usage (FILE * stream) +{ + fprintf (stream, _("EPIPHANY specific command line options:\n")); +} + + +void +md_begin (void) +{ + /* Initialize the `cgen' interface. */ + + /* Set the machine number and endian. */ + gas_cgen_cpu_desc = epiphany_cgen_cpu_open (CGEN_CPU_OPEN_MACHS, + bfd_mach_epiphany32, + CGEN_CPU_OPEN_ENDIAN, + CGEN_ENDIAN_LITTLE, + CGEN_CPU_OPEN_END); + epiphany_cgen_init_asm (gas_cgen_cpu_desc); + + /* This is a callback from cgen to gas to parse operands. */ + cgen_set_parse_operand_fn (gas_cgen_cpu_desc, gas_cgen_parse_operand); + + /* Set the machine type. */ + bfd_default_set_arch_mach (stdoutput, bfd_arch_epiphany, bfd_mach_epiphany32); +} + +valueT +md_section_align (segT segment, valueT size) +{ + int align = bfd_get_section_alignment (stdoutput, segment); + + return ((size + (1 << align) - 1) & (-1 << align)); +} + + +/* Functions concerning relocs. */ + +long +md_pcrel_from (fixS *fixP ATTRIBUTE_UNUSED) +{ + abort (); +} + +/* Write a value out to the object file, using the appropriate endianness. */ + +void +md_number_to_chars (char * buf, valueT val, int n) +{ + number_to_chars_littleendian (buf, val, n); +} + +int +epiphany_elf_section_flags (int flags, + int attr ATTRIBUTE_UNUSED, + int type ATTRIBUTE_UNUSED) +{ + /* This is used to detect when the section changes to an executable section. + This function is called by the elf section processing. When we note an + executable section specifier we set an internal flag to denote when + word alignment should be forced. */ + if (flags & SEC_CODE) + force_code_align = TRUE; + + return flags; +} + +/* Non-zero if we are generating PIC code. */ +int pic_code; + +/* Epiphany er_flags. */ +static int epiphany_flags = 0; + +/* Relocations against symbols are done in two + parts, with a HI relocation and a LO relocation. Each relocation + has only 16 bits of space to store an addend. This means that in + order for the linker to handle carries correctly, it must be able + to locate both the HI and the LO relocation. This means that the + relocations must appear in order in the relocation table. + + In order to implement this, we keep track of each unmatched HI + relocation. We then sort them so that they immediately precede the + corresponding LO relocation. */ + +struct epiphany_hi_fixup +{ + /* Next HI fixup. */ + struct epiphany_hi_fixup *next; + + /* This fixup. */ + fixS *fixp; + + /* The section this fixup is in. */ + segT seg; +}; + + +#define GOT_NAME "_GLOBAL_OFFSET_TABLE_" +static symbolS * GOT_symbol; + +static inline bfd_boolean +epiphany_PIC_related_p (symbolS *sym) +{ + expressionS *exp; + + if (! sym) + return FALSE; + + if (sym == GOT_symbol) + return TRUE; + + exp = symbol_get_value_expression (sym); + + return (exp->X_op == O_PIC_reloc + || exp->X_md == BFD_RELOC_EPIPHANY_SIMM24 + || exp->X_md == BFD_RELOC_EPIPHANY_SIMM8 + || epiphany_PIC_related_p (exp->X_add_symbol) + || epiphany_PIC_related_p (exp->X_op_symbol)); +} + +/* Perform target dependent relocations that are done at compile time. + There aren't very many of these. */ + +void +epiphany_apply_fix (fixS *fixP, valueT *valP, segT seg) +{ + if (fixP->fx_addsy == (symbolS *) NULL) + fixP->fx_done = 1; + + if (((int) fixP->fx_r_type < (int) BFD_RELOC_UNUSED) + && fixP->fx_done) + { + /* Install EPIPHANY-dependent relocations HERE because nobody else + will. */ + char *where = fixP->fx_frag->fr_literal + fixP->fx_where; + unsigned char *insn = (unsigned char *)where; + valueT value = * valP; + + switch (fixP->fx_r_type) + { + default: + break; + + case BFD_RELOC_NONE: + return; + + case BFD_RELOC_EPIPHANY_SIMM11: + where[0] = where[0] | ((value & 1) << 7); + where[1] = where[1] | ((value & 6) >> 1); + where[2] = (value >> 3) & 0xff; + return; + + case BFD_RELOC_EPIPHANY_IMM11: + where[0] = where[0] | ((value & 1) << 7); + where[1] = where[1] | ((value & 6) >> 1); + where[2] = (value >> 3) & 0xff; + return; + + case BFD_RELOC_EPIPHANY_SIMM8: + md_number_to_chars (where+1, value>>1, 1); + return; + + case BFD_RELOC_EPIPHANY_SIMM24: + md_number_to_chars (where+1, value>>1, 3); + return; + + case BFD_RELOC_EPIPHANY_HIGH: + value >>= 16; + /* fall thru */ + case BFD_RELOC_EPIPHANY_LOW: + value = (((value & 0xff) << 5) | insn[0]) + | (insn[1] << 8) + | ((value & 0xff00) << 12) + | (insn[2] << 16); + md_number_to_chars (where, value, 3); + return; + } + } + + /* Just do the default if we can't special case. */ + return gas_cgen_md_apply_fix (fixP, valP, seg); +} + + +/* This is called from HANDLE_ALIGN in write.c. Fill in the contents + of an rs_align_code fragment. 0x01a2 is 16-bit pattern for a "nop". */ + +static const unsigned char nop_pattern[] = { 0xa2, 0x01 }; + +void +epiphany_handle_align (fragS *fragp) +{ + int bytes, fix; + char *p; + + if (fragp->fr_type != rs_align_code) + return; + + bytes = fragp->fr_next->fr_address - fragp->fr_address - fragp->fr_fix; + p = fragp->fr_literal + fragp->fr_fix; + fix = 0; + + if (bytes & 1) + { + fix = 1; + *p++ = 0; + bytes--; + } + + if (bytes & 2) + { + memcpy (p, nop_pattern, 2); + p += 2; + bytes -= 2; + fix += 2; + } + fragp->fr_fix += fix; +} + +/* Read a comma separated incrementing list of register names + and form a bit mask of upto 15 registers 0..14. */ + +static const char * +parse_reglist (const char * s, int * mask) +{ + int regmask = 0; + + while (*s) + { + long value; + + while (*s == ' ') + ++s; + + /* Parse a list with "," or "}" as limiters. */ + const char *errmsg + = cgen_parse_keyword (gas_cgen_cpu_desc, &s, + &epiphany_cgen_opval_gr_names, &value); + if (errmsg) + return errmsg; + + if (value > 15) + return _("register number too large for push/pop"); + + regmask |= 1 << value; + if (regmask < *mask) + return _("register is out of order"); + *mask |= regmask; + + while (*s==' ') + ++s; + + if (*s == '}') + return NULL; + else if (*s++ == ',') + continue; + else + return _("bad register list"); + } + + return _("malformed reglist in push/pop"); +} + + +void +md_assemble (char *str) +{ + epiphany_insn insn; + char *errmsg = 0; + const char * pperr = 0; + int regmask=0, push=0, pop=0; + + memset (&insn, 0, sizeof (insn)); + + /* Special-case push/pop instruction macros. */ + if (0 == strncmp (str, "push {", 6)) + { + char * s = str + 6; + push = 1; + pperr = parse_reglist (s, ®mask); + } + else if (0 == strncmp (str, "pop {", 5)) + { + char * s = str + 5; + pop = 1; + pperr = parse_reglist (s, ®mask); + } + + if (pperr) + { + as_bad ("%s", pperr); + return; + } + + if (push && regmask) + { + char buff[20]; + int i,p ATTRIBUTE_UNUSED; + + md_assemble ("mov r15,4"); + md_assemble ("sub sp,sp,r15"); + + for (i = 0, p = 1; i <= 15; ++i, regmask >>= 1) + { + if (regmask == 1) + sprintf (buff, "str r%d,[sp]", i); /* Last one. */ + else if (regmask & 1) + sprintf (buff, "str r%d,[sp],-r15", i); + else + continue; + md_assemble (buff); + } + return; + } + else if (pop && regmask) + { + char buff[20]; + int i,p; + + md_assemble ("mov r15,4"); + + for (i = 15, p = 1 << 15; i >= 0; --i, p >>= 1) + if (regmask & p) + { + sprintf (buff, "ldr r%d,[sp],+r15", i); + md_assemble (buff); + } + return; + } + + /* Initialize GAS's cgen interface for a new instruction. */ + gas_cgen_init_parse (); + + insn.insn = epiphany_cgen_assemble_insn + (gas_cgen_cpu_desc, str, &insn.fields, insn.buffer, & errmsg); + + if (!insn.insn) + { + as_bad ("%s", errmsg); + return; + } + + if (CGEN_INSN_BITSIZE (insn.insn) == 32) + { + /* Doesn't really matter what we pass for RELAX_P here. */ + gas_cgen_finish_insn (insn.insn, insn.buffer, + CGEN_FIELDS_BITSIZE (&insn.fields), 1, NULL); + } + else + { + if (CGEN_INSN_BITSIZE (insn.insn) != 16) + abort (); + + insn.orig_insn = insn.insn; + + gas_cgen_finish_insn (insn.orig_insn, insn.buffer, + CGEN_FIELDS_BITSIZE (&insn.fields), + 1 /* relax_p */, NULL); + } + + /* Checks for behavioral restrictions on LD/ST instructions. */ +#define DISPMOD _("destination register modified by displacement-post-modified address") +#define LDSTODD _("ldrd/strd requires even:odd register pair") + + /* Helper macros for spliting apart instruction fields. */ +#define ADDR_POST_MODIFIED(i) (((i) >> 25) & 0x1) +#define ADDR_SIZE(i) (((i) >> 5) & 3) +#define ADDR_LOADSTORE(i) (((i) >> 4) & 0x1) + + switch (insn.buffer[0] & 0xf) + { + /* Post-modify registers cannot be destinations. */ + case OP4_LDSTR16P: + { + if (ADDR_LOADSTORE (insn.buffer[0]) == OP_LOAD) + if (insn.fields.f_rd == insn.fields.f_rn /* Postmodify dest. */ + || (insn.fields.f_rd+1 == insn.fields.f_rn + && ADDR_SIZE (insn.buffer[0]) == OPW_DOUBLE)) + { + as_bad ("%s", DISPMOD); + return; + } + if ((insn.fields.f_rd & 1) /* Odd-numbered register... */ + && insn.fields.f_wordsize == OPW_DOUBLE) /* ...and 64 bit transfer. */ + { + as_bad ("%s", LDSTODD); + return; + } + break; + } + + case OP4_LDSTRP: + { + if (ADDR_LOADSTORE (insn.buffer[0]) == OP_LOAD) /* A load. */ + if (insn.fields.f_rd6 == insn.fields.f_rn6 /* Postmodify dest. */ + /* Check for regpair postindexed. */ + || (insn.fields.f_rd6 + 1 == insn.fields.f_rn6 + && ADDR_SIZE (insn.buffer[0]) == OPW_DOUBLE)) + { + as_bad ("%s", DISPMOD); + return; + } + if ((insn.fields.f_rd6 & 1) && ADDR_SIZE (insn.buffer[0]) == OPW_DOUBLE) + /* Lsb of RD odd and 64 bit transfer. */ + { + as_bad ("%s", LDSTODD); + return; + } + break; + } + + case OP4_LDSTR16X: + case OP4_LDSTR16D: + { + /* Check for unaligned load/store double. */ + if ((insn.fields.f_rd & 1) && ADDR_SIZE (insn.buffer[0]) == OPW_DOUBLE) + /* Lsb of RD odd and 64 bit transfer. */ + { + as_bad ("%s", LDSTODD); + return; + } + break; + } + + case OP4_LDSTRD: + { + /* Check for load to post-modified register. */ + if (ADDR_LOADSTORE (insn.buffer[0]) == OP_LOAD /* A load. */ + && ADDR_POST_MODIFIED (insn.buffer[0]) == PMOD_POST /* Post-mod. */ + && (insn.fields.f_rd6 == insn.fields.f_rn6 + || (insn.fields.f_rd6+1 == insn.fields.f_rn6 + && ADDR_SIZE (insn.buffer[0]) == OPW_DOUBLE))) + { + as_bad ("%s", DISPMOD); + return; + } + } + /* fall-thru. */ + + case OP4_LDSTRX: + { + /* Check for unaligned load/store double. */ + if ((insn.fields.f_rd6 & 1) && ADDR_SIZE (insn.buffer[0]) == OPW_DOUBLE) + { + as_bad ("%s", LDSTODD); + return; + } + break; + } + + default: + break; + } +} + +/* The syntax in the manual says constants begin with '#'. + We just ignore it. */ + +void +md_operand (expressionS *expressionP) +{ + if (*input_line_pointer == '#') + { + input_line_pointer++; + expression (expressionP); + } +} + +symbolS * +md_undefined_symbol (char *name ATTRIBUTE_UNUSED) +{ + return NULL; +} + +/* Interface to relax_segment. */ + +/* FIXME: Build table by hand, get it working, then machine generate. */ + +const relax_typeS md_relax_table[] = +{ + /* The fields are: + 1) most positive reach of this state, + 2) most negative reach of this state, + 3) how many bytes this mode will add to the size of the current frag + 4) which index into the table to try if we can't fit into this one. */ + + /* The first entry must be unused because an `rlx_more' value of zero ends + each list. */ + {1, 1, 0, EPIPHANY_RELAX_NONE}, + {0, 0, 0, EPIPHANY_RELAX_NONE}, /* Also a dummy entry to indicate we need to expand codes. */ + + /* The displacement used by GAS is from the end of the 2 byte insn, + so we subtract 2 from the following. */ + /* 16 bit insn, 8 bit disp -> +127 words, -128 words. */ + {0x00000100 - 1 - 2, -0x00000100 - 2, 0, EPIPHANY_RELAX_BRANCH_LONG }, + /* 32 bit insn, 24 bit disp -> 25 bit range. */ + {0x01000000 - 1 - 2, -0x01000000 - 2, 2, EPIPHANY_RELAX_NONE }, + + /* addi/subi 3 bits -4..+3. */ + { 3, -4,0, EPIPHANY_RELAX_ARITH_SIMM11 }, + /* addi/subi 11 bits. */ + { 1023, -1024,2, EPIPHANY_RELAX_NONE }, + + /* mov r,imm8. */ + { 255, 0,0, EPIPHANY_RELAX_MOV_IMM16 }, + /* mov r,imm16. */ + { 65535, 0,2, EPIPHANY_RELAX_NONE }, + + /* ld/st rd,[rn,imm3]. */ + { 7, 0,0, EPIPHANY_RELAX_LDST_IMM11}, + /* ld/st rd,[rn,imm11]. */ + { 2047, 0,2, EPIPHANY_RELAX_NONE } + +}; + +static const EPIPHANY_RELAX_TYPES relax_insn[] = +{ + EPIPHANY_RELAX_BRANCH_SHORT, /* OP4_BRANCH16 */ + EPIPHANY_RELAX_NONE, /* OP4_LDSTR16X */ + EPIPHANY_RELAX_NONE, /* OP4_FLOW16 */ + EPIPHANY_RELAX_ARITH_SIMM3, /* OP4_IMM16 - special */ + EPIPHANY_RELAX_LDST_IMM3, /* OP4_LDSTR16D */ + EPIPHANY_RELAX_NONE, /* OP4_LDSTR126P */ + EPIPHANY_RELAX_NONE, /* OP4_LSHIFT16 */ + EPIPHANY_RELAX_NONE, /* OP4_DSP16 */ + EPIPHANY_RELAX_BRANCH_LONG, /* OP4_BRANCH */ + EPIPHANY_RELAX_NONE, /* OP4_LDSTRX */ + EPIPHANY_RELAX_NONE, /* OP4_ALU16 */ + EPIPHANY_RELAX_ARITH_SIMM11, /* OP4_IMM32 - special */ + EPIPHANY_RELAX_LDST_IMM11, /* OP4_LDSTRD */ + EPIPHANY_RELAX_NONE, /* OP4_LDSTRP */ + EPIPHANY_RELAX_NONE, /* OP4_ASHIFT16 */ + EPIPHANY_RELAX_NONE /* OP4_MISC */ +}; + +long +epiphany_relax_frag (segT segment, fragS *fragP, long stretch) +{ + /* Address of branch insn. */ + long address ATTRIBUTE_UNUSED = fragP->fr_address + fragP->fr_fix - 2; + long growth = 0; + + if (fragP->fr_subtype == EPIPHANY_RELAX_NEED_RELAXING) + { + EPIPHANY_RELAX_TYPES subtype = relax_insn [*fragP->fr_opcode & 0xf]; + + /* Special cases add/sub vs mov immediates. */ + if (subtype == EPIPHANY_RELAX_ARITH_SIMM3) + { + if ((*fragP->fr_opcode & 0x10) == 0) + subtype = EPIPHANY_RELAX_MOV_IMM8; + } + else if (subtype == EPIPHANY_RELAX_ARITH_SIMM11) + { + if ((*fragP->fr_opcode & 0x10) == 0) + subtype = EPIPHANY_RELAX_MOV_IMM16; + } + + /* Remember refinements for the future. */ + fragP->fr_subtype = subtype; + } + + growth = relax_frag (segment, fragP, stretch); + + return growth; +} + +/* Return an initial guess of the length by which a fragment must grow to + hold a branch to reach its destination. + Also updates fr_type/fr_subtype as necessary. + + Called just before doing relaxation. + Any symbol that is now undefined will not become defined. + The guess for fr_var is ACTUALLY the growth beyond fr_fix. + Whatever we do to grow fr_fix or fr_var contributes to our returned value. + Although it may not be explicit in the frag, pretend fr_var starts + with a 0 value. */ + +int +md_estimate_size_before_relax (fragS *fragP, segT segment) +{ + /* The only thing we have to handle here are symbols outside of the + current segment. They may be undefined or in a different segment in + which case linker scripts may place them anywhere. + However, we can't finish the fragment here and emit the reloc as insn + alignment requirements may move the insn about. */ + if (S_GET_SEGMENT (fragP->fr_symbol) != segment + || S_IS_EXTERNAL (fragP->fr_symbol) + || S_IS_WEAK (fragP->fr_symbol)) + { + /* The symbol is undefined in this segment. Change the + relaxation subtype to the max allowable and leave all further + handling to md_convert_frag. */ + + EPIPHANY_RELAX_TYPES subtype; + /* We haven't relaxed this at all, so the relaxation type may be + completely wrong. Set the subtype correctly. */ + epiphany_relax_frag (segment, fragP, 0); + subtype = fragP->fr_subtype; + + switch (subtype) + { + case EPIPHANY_RELAX_LDST_IMM3: + subtype = EPIPHANY_RELAX_LDST_IMM11; + break; + case EPIPHANY_RELAX_BRANCH_SHORT: + subtype = EPIPHANY_RELAX_BRANCH_LONG; + break; + case EPIPHANY_RELAX_MOV_IMM8: + subtype = EPIPHANY_RELAX_MOV_IMM16; + break; + case EPIPHANY_RELAX_ARITH_SIMM3: + subtype = EPIPHANY_RELAX_ARITH_SIMM11; + break; + + default: + break; + } + + fragP->fr_subtype = subtype; + + { + const CGEN_INSN *insn; + int i; + + /* Update the recorded insn. */ + + for (i = 0, insn = fragP->fr_cgen.insn; i < 4; i++, insn++) + { + if ((strcmp (CGEN_INSN_MNEMONIC (insn), + CGEN_INSN_MNEMONIC (fragP->fr_cgen.insn)) + == 0) + && CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_RELAXED)) + break; + } + + if (i == 4) + abort (); + + fragP->fr_cgen.insn = insn; + } + } + + return md_relax_table[fragP->fr_subtype].rlx_length; +} + +/* *FRAGP has been relaxed to its final size, and now needs to have + the bytes inside it modified to conform to the new size. + + Called after relaxation is finished. + fragP->fr_type == rs_machine_dependent. + fragP->fr_subtype is the subtype of what the address relaxed to. */ + +void +md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, + segT sec, + fragS *fragP) +{ + char *opcode; + char *displacement; + int target_address; + int opcode_address; + int extension; + int addend; + int opindx = -1; + + opcode = fragP->fr_opcode; + + /* Address opcode resides at in file space. */ + opcode_address = fragP->fr_address + fragP->fr_fix - 2; + extension = 0; + displacement = &opcode[1]; + + /* Set up any addend necessary for branches. */ + if (S_GET_SEGMENT (fragP->fr_symbol) != sec + || S_IS_EXTERNAL (fragP->fr_symbol) + || S_IS_WEAK (fragP->fr_symbol)) + { + /* Symbol must be resolved by linker. */ + if (fragP->fr_offset & 1) + as_warn (_("Addend to unresolved symbol not on word boundary.")); + addend = 0; + } + else + { + /* Address we want to reach in file space. */ + target_address = S_GET_VALUE (fragP->fr_symbol) + fragP->fr_offset; + addend = (target_address - (opcode_address & -2)); + } + + /* Do all the housekeeping for frag conversions. */ + switch (fragP->fr_subtype) + { + case EPIPHANY_RELAX_ARITH_SIMM11: + *opcode |= OP4_IMM32; + displacement = &opcode[0]; + extension += 3; + + addend + = (((addend & 0x7) << 7) + | opcode[0] + | ((addend & 0x7f8) << 13) + | (opcode[1] << 8) + | (opcode[2] << 16)); + + opindx = EPIPHANY_OPERAND_SIMM11; + break; + + case EPIPHANY_RELAX_BRANCH_LONG: + /* Branches differ only in low nibble of instruction being 8 not 0. + 24 bit displacement goes to bytes 1..3 . */ + *opcode |= OP4_BRANCH; + extension += 2; + + addend >>= 1; /* Convert to word offset. */ + opindx = EPIPHANY_OPERAND_SIMM24; + break; + + case EPIPHANY_RELAX_MOV_IMM16: + *opcode |= OP4_IMM32; + extension += 3; + + addend + = (((addend & 0xff00) << 12) + | (opcode[2] << 16) + | ((addend & 0x00ff) << 5) + | (opcode[1] << 8) + | opcode[0]); + displacement = &opcode[0]; + opindx = EPIPHANY_OPERAND_IMM16; + break; + + case EPIPHANY_RELAX_LDST_IMM11: + *opcode |= OP4_LDSTRD; + displacement = &opcode[0]; + extension += 3; + + if (addend < 0) + /* Convert twos-complement address value to sign-magnitude. */ + addend = (-addend & 0x7ff) | 0x800; + + addend + = (((addend & 0x7) << 5) + | opcode[0] + | ((addend & 0xff8) << 13) + | (opcode[1] << 8) + | (opcode[2] << 16)); + + opindx = EPIPHANY_OPERAND_DISP11; + break; + + case EPIPHANY_RELAX_ARITH_SIMM3: + addend = ((addend & 7) << 5) | opcode[0]; + opindx = EPIPHANY_OPERAND_SIMM3; + break; + + case EPIPHANY_RELAX_LDST_IMM3: + addend = ((addend & 7) << 5) | opcode[0]; + opindx = EPIPHANY_OPERAND_DISP3; + + case EPIPHANY_RELAX_BRANCH_SHORT: + addend >>= 1; /* Convert to a word offset. */ + displacement = & opcode[1]; + opindx = EPIPHANY_OPERAND_SIMM8; + break; + + case EPIPHANY_RELAX_MOV_IMM8: + addend + = (((addend & 0xff) << 5) + | opcode[0] + | (opcode[1] << 8)); + opindx = EPIPHANY_OPERAND_IMM8; + break; + + case EPIPHANY_RELAX_NONE: + case EPIPHANY_RELAX_NEED_RELAXING: + default: /* Anything else? */ + as_bad ("unrecognized fragment subtype"); + break; + } + + /* Create a relocation for symbols that must be resolved by the linker. + Otherwise output the completed insn. */ + + if (S_GET_SEGMENT (fragP->fr_symbol) != sec + || S_IS_EXTERNAL (fragP->fr_symbol) + || S_IS_WEAK (fragP->fr_symbol)) + { + fixS *fixP; + const CGEN_OPERAND *operand + = cgen_operand_lookup_by_num (gas_cgen_cpu_desc, opindx); + bfd_reloc_code_real_type reloc_type; + + gas_assert (fragP->fr_cgen.insn != 0); + + reloc_type = md_cgen_lookup_reloc (fragP->fr_cgen.insn, operand, NULL); + + fixP = gas_cgen_record_fixup (fragP, + /* Offset of insn in frag. */ + (opcode - fragP->fr_literal), + fragP->fr_cgen.insn, + CGEN_INSN_BITSIZE (fragP->fr_cgen.insn) / 8, + operand, + reloc_type, + fragP->fr_symbol, fragP->fr_offset); + fixP->fx_r_type = fixP->fx_cgen.opinfo; + } + + md_number_to_chars (displacement, (valueT) addend, extension + 1); + + fragP->fr_fix += (extension & -2); /* 0,2 or 4 bytes added. */ +} + + +/* Functions concerning relocs. */ + +/* The location from which a PC relative jump should be calculated, + given a PC relative reloc. */ + +long +md_pcrel_from_section (fixS *fixP, segT sec) +{ + if (fixP->fx_addsy != (symbolS *) NULL + && (!S_IS_DEFINED (fixP->fx_addsy) + || (S_GET_SEGMENT (fixP->fx_addsy) != sec) + || S_IS_EXTERNAL (fixP->fx_addsy) + || S_IS_WEAK (fixP->fx_addsy))) + return 0; + + return fixP->fx_frag->fr_address + fixP->fx_where; +} + +/* Return the bfd reloc type for OPERAND of INSN at fixup FIXP. + Returns BFD_RELOC_NONE if no reloc type can be found. + *FIXP may be modified if desired. */ + +bfd_reloc_code_real_type +md_cgen_lookup_reloc (const CGEN_INSN *insn ATTRIBUTE_UNUSED, + const CGEN_OPERAND *operand, + fixS *fixP ATTRIBUTE_UNUSED) +{ + switch (operand->type) + { + case EPIPHANY_OPERAND_SIMM11: + return BFD_RELOC_EPIPHANY_SIMM11; + case EPIPHANY_OPERAND_DISP11: + return BFD_RELOC_EPIPHANY_IMM11; + + case EPIPHANY_OPERAND_SIMM8: + return BFD_RELOC_EPIPHANY_SIMM8; + case EPIPHANY_OPERAND_SIMM24: + return BFD_RELOC_EPIPHANY_SIMM24; + + case EPIPHANY_OPERAND_IMM8: + return BFD_RELOC_EPIPHANY_IMM8; + + case EPIPHANY_OPERAND_IMM16: + if (0 == strcmp ("movt", CGEN_INSN_MNEMONIC (insn))) + return BFD_RELOC_EPIPHANY_HIGH; + else if (0 == strcmp ("mov", CGEN_INSN_MNEMONIC (insn))) + return BFD_RELOC_EPIPHANY_LOW; + else + as_bad ("unknown imm16 operand"); + /* fall-thru */ + + default: + break; + } + return BFD_RELOC_NONE; +} + + +/* Turn a string in input_line_pointer into a floating point constant + of type TYPE, and store the appropriate bytes in *LITP. The number + of LITTLENUMS emitted is stored in *SIZEP. An error message is + returned, or NULL on OK. */ + +/* Equal to MAX_PRECISION in atof-ieee.c. */ +#define MAX_LITTLENUMS 6 + +char * +md_atof (int type, char *litP, int *sizeP) +{ + return ieee_md_atof (type, litP, sizeP, FALSE); +} + +/* Return true if can adjust the reloc to be relative to its section + (such as .data) instead of relative to some symbol. */ + +bfd_boolean +epiphany_fix_adjustable (fixS *fixP) +{ + bfd_reloc_code_real_type reloc_type; + + if ((int) fixP->fx_r_type >= (int) BFD_RELOC_UNUSED) + { + const CGEN_INSN *insn = fixP->fx_cgen.insn; + int opindex = (int) fixP->fx_r_type - (int) BFD_RELOC_UNUSED; + const CGEN_OPERAND *operand = + cgen_operand_lookup_by_num (gas_cgen_cpu_desc, opindex); + + reloc_type = md_cgen_lookup_reloc (insn, operand, fixP); + } + else + reloc_type = fixP->fx_r_type; + + if (fixP->fx_addsy == NULL) + return TRUE; + + /* Prevent all adjustments to global symbols. */ + if (S_IS_EXTERNAL (fixP->fx_addsy)) + return FALSE; + + if (S_IS_WEAK (fixP->fx_addsy)) + return FALSE; + + if (pic_code + && (reloc_type == BFD_RELOC_EPIPHANY_SIMM24 + || reloc_type == BFD_RELOC_EPIPHANY_SIMM8 + || reloc_type == BFD_RELOC_EPIPHANY_HIGH + || reloc_type == BFD_RELOC_EPIPHANY_LOW)) + return FALSE; + + /* Since we don't use partial_inplace, we must not reduce symbols in + mergable sections to their section symbol. */ + if ((S_GET_SEGMENT (fixP->fx_addsy)->flags & SEC_MERGE) != 0) + return FALSE; + + return TRUE; +} + +void +epiphany_elf_final_processing (void) +{ + elf_elfheader (stdoutput)->e_flags |= epiphany_flags; +} + +int +epiphany_cgen_parse_fix_exp (int opinfo, expressionS *exp ATTRIBUTE_UNUSED) +{ + LITTLENUM_TYPE words[2]; + + switch (opinfo) + { + case BFD_RELOC_EPIPHANY_LOW: + case BFD_RELOC_EPIPHANY_HIGH: + break; + default: + return opinfo; + } + + /* Doing a %LOW or %HIGH. */ + switch (exp->X_op) + { + default: + return opinfo; + case O_big: /* Bignum. */ + if (exp->X_add_number > 0) /* Integer value too large. */ + return opinfo; + } + + /* Convert to SP number. */ + gen_to_words (words, 2, 8L); + exp->X_add_number = words[1] | (words[0] << 16); + exp->X_op = O_constant; + return opinfo; +} diff --git a/gas/config/tc-epiphany.h b/gas/config/tc-epiphany.h new file mode 100755 index 0000000..25e453a --- /dev/null +++ b/gas/config/tc-epiphany.h @@ -0,0 +1,102 @@ +/* tc-epiphany.h -- Header file for tc-epiphany.c. + Copyright 2011 Free Software Foundation, Inc. + Contributed by Embecosm on behalf of Adapteva, 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_EPIPHANY + +#define LISTING_HEADER "EPIPHANY GAS " + +/* The target BFD architecture. */ +#define TARGET_ARCH bfd_arch_epiphany + +#define TARGET_FORMAT "elf32-epiphany" + +/* Permit temporary numeric labels. */ +#define LOCAL_LABELS_FB 1 + +/* .-foo gets turned into PC relative relocs. */ +#define DIFF_EXPR_OK + +/* We don't need to handle .word strangely. */ +#define WORKING_DOT_WORD + +#define LITERAL_PREFIXDOLLAR_HEX +#define LITERAL_PREFIXPERCENT_BIN +#define DOUBLESLASH_LINE_COMMENTS + +#define GAS_CGEN_PCREL_R_TYPE(R_TYPE) gas_cgen_pcrel_r_type (R_TYPE) + +/* Values passed to md_apply_fix don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +#define tc_fix_adjustable(FIX) epiphany_fix_adjustable (FIX) +extern bfd_boolean epiphany_fix_adjustable (struct fix *); + +extern long md_pcrel_from_section (struct fix *, segT); +#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP,SEC) + +#define TC_HANDLES_FX_DONE + +#define elf_tc_final_processing epiphany_elf_final_processing +extern void epiphany_elf_final_processing (void); + +#define md_elf_section_flags epiphany_elf_section_flags +extern int epiphany_elf_section_flags (int, int, int); + +#define md_operand(x) epiphany_cgen_md_operand (x) +extern void epiphany_cgen_md_operand (expressionS *); + +/* Values passed to md_apply_fix don't include the symbol value. */ +#define MD_APPLY_SYM_VALUE(FIX) 0 + +#define TC_CGEN_MAX_RELAX(insn, len) 4 + +#define O_PIC_reloc O_md1 + +#define TC_CGEN_PARSE_FIX_EXP(opinfo, exp) \ + epiphany_cgen_parse_fix_exp (opinfo, exp) +extern int epiphany_cgen_parse_fix_exp (int, expressionS *); + +#define HANDLE_ALIGN(f) epiphany_handle_align (f) +extern void epiphany_handle_align (fragS *); + +#define TARGET_FORMAT "elf32-epiphany" + +#define md_relax_frag epiphany_relax_frag + +extern long epiphany_relax_frag (segT, fragS *, long); + +/* If you don't define md_relax_frag, md_cgen_record_fixup_exp + but do have TC_GENERIC_RELAX_TABLE gas will do the relaxation for you. + + If we have to add support for %LO and %HI relocations, we probably need + to define the fixup_exp function to generate fancier relocations. */ + +/* For 8 vs 24 bit branch selection. */ +extern const struct relax_type md_relax_table[]; +#define TC_GENERIC_RELAX_TABLE md_relax_table + +#define tc_gen_reloc gas_cgen_tc_gen_reloc + + +#define md_apply_fix epiphany_apply_fix +#include "write.h" + +extern void epiphany_apply_fix (fixS *fixP, valueT *valP, segT seg); diff --git a/gas/configure b/gas/configure index b70b86e..51c4200 100755 --- a/gas/configure +++ b/gas/configure @@ -12143,7 +12143,7 @@ _ACEOF fi ;; - fr30 | ip2k | iq2000 | lm32 | m32r | openrisc) + epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | openrisc) using_cgen=yes ;; diff --git a/gas/configure.in b/gas/configure.in index ea6df79..e7dab2e 100644 --- a/gas/configure.in +++ b/gas/configure.in @@ -305,7 +305,7 @@ changequote([,])dnl fi ;; - fr30 | ip2k | iq2000 | lm32 | m32r | openrisc) + epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | openrisc) using_cgen=yes ;; diff --git a/gas/configure.tgt b/gas/configure.tgt index a171a32..d98610a 100644 --- a/gas/configure.tgt +++ b/gas/configure.tgt @@ -38,6 +38,7 @@ case ${cpu} in cr16*) cpu_type=cr16 endian=little ;; crisv32) cpu_type=cris arch=crisv32 ;; crx*) cpu_type=crx endian=little ;; + epiphany*) cpu_type=epiphany endian=little ;; fido) cpu_type=m68k ;; hppa*) cpu_type=hppa ;; i[3-7]86) cpu_type=i386 arch=i386;; @@ -141,6 +142,8 @@ case ${generic_target} in d30v-*-*) fmt=elf ;; dlx-*-*) fmt=elf ;; + epiphany-*-*) fmt=elf ;; + fr30-*-*) fmt=elf ;; frv-*-*linux*) fmt=elf em=linux;; frv-*-*) fmt=elf ;; diff --git a/gas/doc/Makefile.am b/gas/doc/Makefile.am index 87017fc..f115ae2 100644 --- a/gas/doc/Makefile.am +++ b/gas/doc/Makefile.am @@ -35,8 +35,9 @@ CPU_DOCS = \ c-avr.texi \ c-bfin.texi \ c-cr16.texi \ - c-d10v.texi \ c-cris.texi \ + c-d10v.texi \ + c-epiphany.texi \ c-h8300.texi \ c-hppa.texi \ c-i370.texi \ diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in index d7d0247..93a9f62 100644 --- a/gas/doc/Makefile.in +++ b/gas/doc/Makefile.in @@ -275,8 +275,9 @@ CPU_DOCS = \ c-avr.texi \ c-bfin.texi \ c-cr16.texi \ - c-d10v.texi \ c-cris.texi \ + c-d10v.texi \ + c-epiphany.texi \ c-h8300.texi \ c-hppa.texi \ c-i370.texi \ diff --git a/gas/doc/all.texi b/gas/doc/all.texi index 6f935ad..2be9c72 100644 --- a/gas/doc/all.texi +++ b/gas/doc/all.texi @@ -35,6 +35,7 @@ @set CRIS @set D10V @set D30V +@set EPIPHANY @set H8/300 @set HPPA @set I370 diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo index 8ed62a4..362c10b 100644 --- a/gas/doc/as.texinfo +++ b/gas/doc/as.texinfo @@ -307,6 +307,11 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. @emph{Target D30V options:} [@b{-O}|@b{-n}|@b{-N}] @end ifset +@ifset EPIPHANY + +@emph{Target EPIPHANY options:} + [@b{-mepiphany}|@b{-mepiphany16}] +@end ifset @ifset H8 @emph{Target H8/300 options:} @@ -843,6 +848,22 @@ Warn when a nop after a 32-bit multiply instruction is generated. @end ifset @c man end +@ifset EPIPHANY +The following options are available when @value{AS} is configured for the +Adapteva EPIPHANY series. + +@table @gcctabopt + +@item -mepiphany +Specifies that the both 32 and 16 bit instructions are allowed. This is the +default behavior. + +@item -mepiphany16 +Restricts the permitted instructions to just the 16 bit set. + +@end table +@end ifset + @ifset I80386 @ifclear man @@ -6849,6 +6870,9 @@ subject, see the hardware manufacturer's manual. @ifset D30V * D30V-Dependent:: D30V Dependent Features @end ifset +@ifset EPIPHANY +* Epiphany-Dependent:: EPIPHANY Dependent Features +@end ifset @ifset H8/300 * H8/300-Dependent:: Renesas H8/300 Dependent Features @end ifset @@ -7025,6 +7049,10 @@ family. @include c-d30v.texi @end ifset +@ifset EPIPHANY +@include c-epiphany.texi +@end ifset + @ifset H8/300 @include c-h8300.texi @end ifset diff --git a/gas/doc/c-epiphany.texi b/gas/doc/c-epiphany.texi new file mode 100644 index 0000000..c0b0222 --- /dev/null +++ b/gas/doc/c-epiphany.texi @@ -0,0 +1,67 @@ +@c Copyright 2011 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 Epiphany-Dependent +@chapter Epiphany Dependent Features +@end ifset +@ifclear GENERIC +@node Machine Dependencies +@chapter Epiphany Dependent Features +@end ifclear + +@cindex Epiphany support +@menu +* Epiphany Options:: Options +* Epiphany Syntax:: Epiphany Syntax +@end menu + +@node Epiphany Options +@section Options + +@cindex Epiphany options +@cindex options, Epiphany +@code{@value{AS}} has two additional command-line options for the Epiphany +architecture. + +@c man begin OPTIONS +@table @gcctabopt + +@cindex @code{-mepiphany} command line option, Epiphany +@item -mepiphany +Specifies that the both 32 and 16 bit instructions are allowed. This is the +default behavior. + +@cindex @code{-mepiphany16} command line option, Epiphany +@item -mepiphany16 +Restricts the permitted instructions to just the 16 bit set. +@end table +@c man end + +@node Epiphany Syntax +@section Epiphany Syntax +@menu +* Epiphany-Chars:: Special Characters +@end menu + +@node Epiphany-Chars +@subsection Special Characters + +@cindex line comment character, Epiphany +@cindex Epiphany line comment character +The presence of a @samp{;} on a line indicates the start +of a comment that extends to the end of the current line. + +If a @samp{#} appears as the first character of a line then the whole +line is treated as a comment, but in this case the line could also be +a logical line number directive (@pxref{Comments}) or a preprocessor +control command (@pxref{Preprocessing}). + +@cindex line separator, Epiphany +@cindex statement separator, Epiphany +@cindex Epiphany line separator +The @samp{`} character can be used to separate statements on the same +line. diff --git a/gas/po/POTFILES.in b/gas/po/POTFILES.in index 754a392..784fa77 100644 --- a/gas/po/POTFILES.in +++ b/gas/po/POTFILES.in @@ -59,6 +59,8 @@ config/tc-d30v.c config/tc-d30v.h config/tc-dlx.c config/tc-dlx.h +config/tc-epiphany.c +config/tc-epiphany.h config/tc-fr30.c config/tc-fr30.h config/tc-frv.c diff --git a/gas/po/gas.pot b/gas/po/gas.pot index 50451b4..f1eec3b 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: 2011-06-02 14:30+0100\n" +"POT-Creation-Date: 2011-10-25 12:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -455,7 +455,7 @@ msgstr "" msgid "%s: data size %ld\n" msgstr "" -#: as.c:1289 +#: as.c:1292 #, c-format msgid "%d warnings, treating warnings as errors" msgstr "" @@ -473,9 +473,9 @@ msgstr "" msgid "failed sanity check" msgstr "" -#: cgen.c:113 config/tc-alpha.c:2104 config/tc-alpha.c:2128 +#: cgen.c:113 config/tc-alpha.c:2101 config/tc-alpha.c:2125 #: config/tc-arc.c:1684 config/tc-d10v.c:552 config/tc-d30v.c:538 -#: config/tc-mn10200.c:1100 config/tc-mn10300.c:1751 config/tc-ppc.c:2617 +#: config/tc-mn10200.c:1101 config/tc-mn10300.c:1751 config/tc-ppc.c:2617 #: config/tc-ppc.c:2768 config/tc-ppc.c:2910 config/tc-ppc.c:2921 #: config/tc-s390.c:1250 config/tc-s390.c:1364 config/tc-s390.c:1493 #: config/tc-v850.c:2229 config/tc-v850.c:2300 config/tc-v850.c:2346 @@ -484,7 +484,7 @@ msgid "too many fixups" msgstr "" #: cgen.c:400 cgen.c:420 config/tc-arc.c:1665 config/tc-d10v.c:463 -#: config/tc-d30v.c:454 config/tc-i370.c:2125 config/tc-mn10200.c:1042 +#: config/tc-d30v.c:454 config/tc-i370.c:2125 config/tc-mn10200.c:1043 #: config/tc-mn10300.c:1676 config/tc-ppc.c:2656 config/tc-s390.c:1221 #: config/tc-v850.c:2337 config/tc-v850.c:2371 config/tc-v850.c:2411 #: config/tc-v850.c:2622 config/tc-z80.c:417 @@ -494,7 +494,7 @@ msgstr "" #: cgen.c:424 config/tc-arc.c:1667 config/tc-avr.c:632 config/tc-d10v.c:465 #: config/tc-d30v.c:456 config/tc-h8300.c:500 config/tc-i370.c:2127 #: config/tc-mcore.c:662 config/tc-microblaze.c:579 config/tc-mmix.c:488 -#: config/tc-mn10200.c:1045 config/tc-mn10300.c:1679 config/tc-msp430.c:452 +#: config/tc-mn10200.c:1046 config/tc-mn10300.c:1679 config/tc-msp430.c:452 #: config/tc-or32.c:307 config/tc-ppc.c:2658 config/tc-s390.c:1239 #: config/tc-sh.c:1387 config/tc-sh64.c:2213 config/tc-v850.c:2341 #: config/tc-v850.c:2375 config/tc-v850.c:2415 config/tc-v850.c:2625 @@ -511,18 +511,19 @@ msgid "operand mask overflow" msgstr "" #. We can't actually support subtracting a symbol. -#: cgen.c:886 config/tc-arc.c:1249 config/tc-arm.c:1645 config/tc-arm.c:9058 -#: config/tc-arm.c:9110 config/tc-arm.c:9357 config/tc-arm.c:10157 -#: config/tc-arm.c:11248 config/tc-arm.c:11288 config/tc-arm.c:11616 -#: config/tc-arm.c:11655 config/tc-avr.c:1165 config/tc-cris.c:4047 -#: config/tc-d10v.c:1511 config/tc-d30v.c:1915 config/tc-mips.c:4694 -#: config/tc-msp430.c:1936 config/tc-ppc.c:6102 config/tc-spu.c:957 -#: config/tc-spu.c:981 config/tc-v850.c:3084 config/tc-xstormy16.c:483 -#: config/tc-xtensa.c:5833 config/tc-xtensa.c:11830 +#: cgen.c:886 config/tc-arc.c:1249 config/tc-arm.c:1649 config/tc-arm.c:9195 +#: config/tc-arm.c:9247 config/tc-arm.c:9494 config/tc-arm.c:10301 +#: config/tc-arm.c:11396 config/tc-arm.c:11436 config/tc-arm.c:11776 +#: config/tc-arm.c:11815 config/tc-avr.c:1165 config/tc-cris.c:4047 +#: config/tc-d10v.c:1511 config/tc-d30v.c:1915 config/tc-mips.c:5697 +#: config/tc-msp430.c:1936 config/tc-ppc.c:6072 config/tc-spu.c:957 +#: config/tc-spu.c:981 config/tc-tilegx.c:1421 config/tc-tilepro.c:1268 +#: config/tc-v850.c:3084 config/tc-xstormy16.c:483 config/tc-xtensa.c:5833 +#: config/tc-xtensa.c:11830 msgid "expression too complex" msgstr "" -#: cgen.c:982 config/tc-arc.c:1310 config/tc-ppc.c:6227 config/tc-s390.c:2135 +#: cgen.c:982 config/tc-arc.c:1310 config/tc-ppc.c:6197 config/tc-s390.c:2135 #: config/tc-v850.c:3131 config/tc-xstormy16.c:537 msgid "unresolved expression that must be resolved" msgstr "" @@ -532,7 +533,7 @@ msgstr "" msgid "internal error: can't install fix for reloc type %d (`%s')" msgstr "" -#: cgen.c:1037 +#: cgen.c:1060 msgid "relocation is not supported" msgstr "" @@ -612,7 +613,7 @@ msgstr "" msgid "Infinities are not supported by this target\n" msgstr "" -#: config/atof-ieee.c:784 config/atof-vax.c:450 config/tc-arm.c:1036 +#: config/atof-ieee.c:784 config/atof-vax.c:450 config/tc-arm.c:1040 #: config/tc-ia64.c:11435 config/tc-tic30.c:1259 config/tc-tic4x.c:2598 msgid "Unrecognized or unsupported floating point constant" msgstr "" @@ -637,8 +638,8 @@ msgstr "" msgid "Inserting \"%s\" into structure table failed: %s" msgstr "" -#: config/obj-coff.c:219 config/obj-coff.c:1695 config/tc-ppc.c:5147 -#: config/tc-tic54x.c:4008 read.c:2795 +#: config/obj-coff.c:219 config/obj-coff.c:1701 config/obj-macho.c:202 +#: config/tc-ppc.c:5147 config/tc-tic54x.c:4008 read.c:2795 #, c-format msgid "error setting flags for \"%s\": %s" msgstr "" @@ -732,22 +733,22 @@ msgstr "" #. STYP_INFO #. STYP_LIB #. STYP_OVER -#: config/obj-coff.c:1661 +#: config/obj-coff.c:1667 #, c-format msgid "unsupported section attribute '%c'" msgstr "" -#: config/obj-coff.c:1665 config/tc-ppc.c:5129 +#: config/obj-coff.c:1671 config/tc-ppc.c:5129 #, c-format msgid "unknown section attribute '%c'" msgstr "" -#: config/obj-coff.c:1707 +#: config/obj-coff.c:1713 config/obj-macho.c:216 #, c-format msgid "Ignoring changed section attributes for %s" msgstr "" -#: config/obj-coff.c:1847 +#: config/obj-coff.c:1853 #, c-format msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n" msgstr "" @@ -760,7 +761,7 @@ msgstr "" msgid "Can't set register masks" msgstr "" -#: config/obj-elf.c:334 config/tc-sparc.c:3949 config/tc-v850.c:503 +#: config/obj-elf.c:334 config/tc-sparc.c:4092 config/tc-v850.c:503 #, c-format msgid "bad .common segment %s" msgstr "" @@ -815,130 +816,173 @@ msgstr "" msgid "missing name" msgstr "" -#: config/obj-elf.c:1032 +#: config/obj-elf.c:1030 msgid "invalid merge entity size" msgstr "" -#: config/obj-elf.c:1039 +#: config/obj-elf.c:1037 msgid "entity size for SHF_MERGE not specified" msgstr "" -#: config/obj-elf.c:1045 +#: config/obj-elf.c:1043 msgid "? section flag ignored with G present" msgstr "" -#: config/obj-elf.c:1064 +#: config/obj-elf.c:1062 msgid "group name for SHF_GROUP not specified" msgstr "" -#: config/obj-elf.c:1087 +#: config/obj-elf.c:1085 msgid "character following name is not '#'" msgstr "" -#: config/obj-elf.c:1207 +#: config/obj-elf.c:1204 msgid ".previous without corresponding .section; ignored" msgstr "" -#: config/obj-elf.c:1233 +#: config/obj-elf.c:1230 msgid ".popsection without corresponding .pushsection; ignored" msgstr "" -#: config/obj-elf.c:1279 +#: config/obj-elf.c:1276 msgid "expected comma after name in .symver" msgstr "" -#: config/obj-elf.c:1303 +#: config/obj-elf.c:1300 #, c-format msgid "missing version name in `%s' for symbol `%s'" msgstr "" -#: config/obj-elf.c:1314 +#: config/obj-elf.c:1311 #, c-format msgid "multiple versions [`%s'|`%s'] for symbol `%s'" msgstr "" -#: config/obj-elf.c:1351 +#: config/obj-elf.c:1348 #, c-format msgid "expected `%s' to have already been set for .vtable_inherit" msgstr "" -#: config/obj-elf.c:1361 +#: config/obj-elf.c:1358 msgid "expected comma after name in .vtable_inherit" msgstr "" -#: config/obj-elf.c:1414 +#: config/obj-elf.c:1411 msgid "expected comma after name in .vtable_entry" msgstr "" -#: config/obj-elf.c:1537 +#: config/obj-elf.c:1534 msgid "expected quoted string" msgstr "" -#: config/obj-elf.c:1557 +#: config/obj-elf.c:1554 #, c-format msgid "expected comma after name `%s' in .size directive" msgstr "" -#: config/obj-elf.c:1566 +#: config/obj-elf.c:1563 msgid "missing expression in .size directive" msgstr "" -#: config/obj-elf.c:1690 +#: config/obj-elf.c:1687 #, c-format msgid "symbol '%s' is already defined" msgstr "" -#: config/obj-elf.c:1710 config/obj-elf.c:1722 +#: config/obj-elf.c:1707 config/obj-elf.c:1719 #, c-format msgid "symbol type \"%s\" is supported only by GNU targets" msgstr "" -#: config/obj-elf.c:1733 +#: config/obj-elf.c:1730 #, c-format msgid "unrecognized symbol type \"%s\"" msgstr "" -#: config/obj-elf.c:1903 config/obj-elf.c:1906 +#: config/obj-elf.c:1900 config/obj-elf.c:1903 #, c-format msgid ".size expression for %s does not evaluate to a constant" msgstr "" -#: config/obj-elf.c:1938 +#: config/obj-elf.c:1935 #, c-format msgid "" "invalid attempt to declare external version name as default in symbol `%s'" msgstr "" -#: config/obj-elf.c:1999 ecoff.c:3608 +#: config/obj-elf.c:1996 ecoff.c:3608 #, c-format msgid "symbol `%s' can not be both weak and common" msgstr "" -#: config/obj-elf.c:2116 +#: config/obj-elf.c:2113 #, c-format msgid "assuming all members of group `%s' are COMDAT" msgstr "" -#: config/obj-elf.c:2128 +#: config/obj-elf.c:2125 #, c-format msgid "can't create group: %s" msgstr "" -#: config/obj-elf.c:2267 +#: config/obj-elf.c:2264 #, c-format msgid "failed to set up debugging information: %s" msgstr "" -#: config/obj-elf.c:2287 +#: config/obj-elf.c:2284 #, c-format msgid "can't start writing .mdebug section: %s" msgstr "" -#: config/obj-elf.c:2295 +#: config/obj-elf.c:2292 #, c-format msgid "could not write .mdebug section: %s" msgstr "" +#: config/obj-evax.c:129 +#, c-format +msgid "no entry symbol for global function '%s'" +msgstr "" + +#: config/obj-macho.c:77 +msgid "missing segment name" +msgstr "" + +#: config/obj-macho.c:89 +msgid "missing comma after segment name" +msgstr "" + +#: config/obj-macho.c:98 +msgid "missing section name" +msgstr "" + +#: config/obj-macho.c:114 +msgid "missing section type name" +msgstr "" + +#: config/obj-macho.c:124 +#, c-format +msgid "unknown or invalid section type '%s'" +msgstr "" + +#: config/obj-macho.c:140 +msgid "missing section attribute identifier" +msgstr "" + +#: config/obj-macho.c:149 +#, c-format +msgid "unknown or invalid section attribute '%s'" +msgstr "" + +#: config/obj-macho.c:161 +msgid "unexpected sizeof_stub expression" +msgstr "" + +#: config/obj-macho.c:166 +msgid "missing sizeof_stub expression" +msgstr "" + #: config/obj-som.c:58 msgid "Only one .compiler pseudo-op per file!" msgstr "" @@ -978,247 +1022,248 @@ msgstr "" msgid "attaching copyright header %s: %s" msgstr "" -#: config/tc-alpha.c:656 +#: config/tc-alpha.c:655 #, c-format msgid "No !literal!%ld was found" msgstr "" -#: config/tc-alpha.c:663 +#: config/tc-alpha.c:662 #, c-format msgid "No !tlsgd!%ld was found" msgstr "" -#: config/tc-alpha.c:670 +#: config/tc-alpha.c:669 #, c-format msgid "No !tlsldm!%ld was found" msgstr "" -#: config/tc-alpha.c:679 +#: config/tc-alpha.c:678 #, c-format msgid "No ldah !gpdisp!%ld was found" msgstr "" -#: config/tc-alpha.c:729 +#: config/tc-alpha.c:728 #, c-format msgid "too many !literal!%ld for %s" msgstr "" -#: config/tc-alpha.c:759 +#: config/tc-alpha.c:758 #, c-format msgid "No lda !gpdisp!%ld was found" msgstr "" #. Only support one relocation op per insn. -#: config/tc-alpha.c:918 +#: config/tc-alpha.c:917 msgid "More than one relocation op per insn" msgstr "" -#: config/tc-alpha.c:934 +#: config/tc-alpha.c:933 msgid "No relocation operand" msgstr "" -#: config/tc-alpha.c:944 +#: config/tc-alpha.c:943 #, c-format msgid "Unknown relocation operand: !%s" msgstr "" -#: config/tc-alpha.c:954 +#: config/tc-alpha.c:953 #, c-format msgid "no sequence number after !%s" msgstr "" -#: config/tc-alpha.c:964 +#: config/tc-alpha.c:963 #, c-format msgid "!%s does not use a sequence number" msgstr "" -#: config/tc-alpha.c:974 +#: config/tc-alpha.c:973 #, c-format msgid "Bad sequence number: !%s!%s" msgstr "" -#: config/tc-alpha.c:1189 config/tc-alpha.c:3364 +#: config/tc-alpha.c:1188 config/tc-alpha.c:3361 #, c-format msgid "inappropriate arguments for opcode `%s'" msgstr "" -#: config/tc-alpha.c:1191 config/tc-alpha.c:3366 +#: config/tc-alpha.c:1190 config/tc-alpha.c:3363 #, c-format msgid "opcode `%s' not supported for target %s" msgstr "" -#: config/tc-alpha.c:1195 config/tc-alpha.c:3370 config/tc-avr.c:1441 +#: config/tc-alpha.c:1194 config/tc-alpha.c:3367 config/tc-avr.c:1441 #: config/tc-msp430.c:1828 #, c-format msgid "unknown opcode `%s'" msgstr "" -#: config/tc-alpha.c:1276 config/tc-alpha.c:1537 +#: config/tc-alpha.c:1275 config/tc-alpha.c:1534 msgid "overflow in literal (.lita) table" msgstr "" -#: config/tc-alpha.c:1283 config/tc-alpha.c:1307 config/tc-alpha.c:1550 -#: config/tc-alpha.c:2237 config/tc-alpha.c:2282 config/tc-alpha.c:2351 -#: config/tc-alpha.c:2434 config/tc-alpha.c:2659 config/tc-alpha.c:2757 +#: config/tc-alpha.c:1282 config/tc-alpha.c:1306 config/tc-alpha.c:1547 +#: config/tc-alpha.c:2234 config/tc-alpha.c:2279 config/tc-alpha.c:2348 +#: config/tc-alpha.c:2431 config/tc-alpha.c:2656 config/tc-alpha.c:2754 msgid "macro requires $at register while noat in effect" msgstr "" -#: config/tc-alpha.c:1285 config/tc-alpha.c:1309 config/tc-alpha.c:1552 +#: config/tc-alpha.c:1284 config/tc-alpha.c:1308 config/tc-alpha.c:1549 msgid "macro requires $at while $at in use" msgstr "" -#: config/tc-alpha.c:1495 +#: config/tc-alpha.c:1493 msgid "bignum invalid; zero assumed" msgstr "" -#: config/tc-alpha.c:1497 +#: config/tc-alpha.c:1495 msgid "floating point number invalid; zero assumed" msgstr "" -#: config/tc-alpha.c:1502 +#: config/tc-alpha.c:1500 msgid "can't handle expression" msgstr "" -#: config/tc-alpha.c:1543 +#: config/tc-alpha.c:1540 msgid "overflow in literal (.lit8) table" msgstr "" -#: config/tc-alpha.c:1840 +#: config/tc-alpha.c:1837 #, c-format msgid "too many ldah insns for !gpdisp!%ld" msgstr "" -#: config/tc-alpha.c:1842 config/tc-alpha.c:1854 +#: config/tc-alpha.c:1839 config/tc-alpha.c:1851 #, c-format msgid "both insns for !gpdisp!%ld must be in the same section" msgstr "" -#: config/tc-alpha.c:1852 +#: config/tc-alpha.c:1849 #, c-format msgid "too many lda insns for !gpdisp!%ld" msgstr "" -#: config/tc-alpha.c:1908 +#: config/tc-alpha.c:1905 #, c-format msgid "too many lituse insns for !lituse_tlsgd!%ld" msgstr "" -#: config/tc-alpha.c:1911 +#: config/tc-alpha.c:1908 #, c-format msgid "too many lituse insns for !lituse_tlsldm!%ld" msgstr "" -#: config/tc-alpha.c:1928 +#: config/tc-alpha.c:1925 #, c-format msgid "duplicate !tlsgd!%ld" msgstr "" -#: config/tc-alpha.c:1930 +#: config/tc-alpha.c:1927 #, c-format msgid "sequence number in use for !tlsldm!%ld" msgstr "" -#: config/tc-alpha.c:1944 +#: config/tc-alpha.c:1941 #, c-format msgid "duplicate !tlsldm!%ld" msgstr "" -#: config/tc-alpha.c:1946 +#: config/tc-alpha.c:1943 #, c-format msgid "sequence number in use for !tlsgd!%ld" msgstr "" -#: config/tc-alpha.c:2001 config/tc-arc.c:292 config/tc-mn10200.c:856 +#: config/tc-alpha.c:1998 config/tc-arc.c:292 config/tc-mn10200.c:857 #: config/tc-mn10300.c:1148 config/tc-ppc.c:1730 config/tc-s390.c:638 +#: config/tc-tilegx.c:408 config/tc-tilegx.c:471 config/tc-tilepro.c:369 msgid "operand" msgstr "" -#: config/tc-alpha.c:2140 +#: config/tc-alpha.c:2137 msgid "invalid relocation for instruction" msgstr "" -#: config/tc-alpha.c:2154 +#: config/tc-alpha.c:2151 msgid "invalid relocation for field" msgstr "" -#: config/tc-alpha.c:2985 +#: config/tc-alpha.c:2982 msgid "can not resolve expression" msgstr "" -#: config/tc-alpha.c:3524 config/tc-i370.c:1055 config/tc-microblaze.c:185 +#: config/tc-alpha.c:3516 config/tc-i370.c:1055 config/tc-microblaze.c:185 #: config/tc-ppc.c:2055 config/tc-ppc.c:4892 #, c-format msgid ".COMMon length (%ld.) <0! Ignored." msgstr "" -#: config/tc-alpha.c:3535 config/tc-sparc.c:3820 config/tc-v850.c:298 +#: config/tc-alpha.c:3527 config/tc-sparc.c:3963 config/tc-v850.c:298 msgid "Ignoring attempt to re-define symbol" msgstr "" -#: config/tc-alpha.c:3627 config/tc-ppc.c:4929 config/tc-sparc.c:3828 +#: config/tc-alpha.c:3619 config/tc-ppc.c:4929 config/tc-sparc.c:3971 #, c-format msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld." msgstr "" -#: config/tc-alpha.c:3730 ecoff.c:3064 +#: config/tc-alpha.c:3722 ecoff.c:3064 msgid ".ent directive has no name" msgstr "" -#: config/tc-alpha.c:3738 +#: config/tc-alpha.c:3730 msgid "nested .ent directives" msgstr "" -#: config/tc-alpha.c:3783 ecoff.c:3015 +#: config/tc-alpha.c:3775 ecoff.c:3015 msgid ".end directive has no name" msgstr "" -#: config/tc-alpha.c:3792 +#: config/tc-alpha.c:3784 msgid ".end directive without matching .ent" msgstr "" -#: config/tc-alpha.c:3794 +#: config/tc-alpha.c:3786 msgid ".end directive names different symbol than .ent" msgstr "" -#: config/tc-alpha.c:3837 ecoff.c:3150 +#: config/tc-alpha.c:3829 ecoff.c:3150 msgid ".fmask outside of .ent" msgstr "" -#: config/tc-alpha.c:3839 config/tc-score.c:5601 ecoff.c:3214 +#: config/tc-alpha.c:3831 config/tc-score.c:5598 ecoff.c:3214 msgid ".mask outside of .ent" msgstr "" -#: config/tc-alpha.c:3847 ecoff.c:3157 +#: config/tc-alpha.c:3839 ecoff.c:3157 msgid "bad .fmask directive" msgstr "" -#: config/tc-alpha.c:3849 ecoff.c:3221 +#: config/tc-alpha.c:3841 ecoff.c:3221 msgid "bad .mask directive" msgstr "" -#: config/tc-alpha.c:3882 config/tc-mips.c:15469 config/tc-score.c:5743 +#: config/tc-alpha.c:3874 config/tc-mips.c:18816 config/tc-score.c:5740 #: ecoff.c:3178 msgid ".frame outside of .ent" msgstr "" -#: config/tc-alpha.c:3893 ecoff.c:3189 +#: config/tc-alpha.c:3885 ecoff.c:3189 msgid "bad .frame directive" msgstr "" -#: config/tc-alpha.c:3927 +#: config/tc-alpha.c:3919 msgid ".prologue directive without a preceding .ent directive" msgstr "" -#: config/tc-alpha.c:3945 +#: config/tc-alpha.c:3937 #, c-format msgid "Invalid argument %d to .prologue." msgstr "" -#: config/tc-alpha.c:4036 +#: config/tc-alpha.c:4028 msgid "ECOFF debugging is disabled." msgstr "" -#: config/tc-alpha.c:4050 +#: config/tc-alpha.c:4042 msgid ".ent directive without matching .end" msgstr "" @@ -1239,126 +1284,134 @@ msgstr "" msgid "unknown section attribute %s" msgstr "" -#: config/tc-alpha.c:4389 +#: config/tc-alpha.c:4370 +msgid "previous .ent not closed by a .end" +msgstr "" + +#: config/tc-alpha.c:4391 msgid ".ent directive has no symbol" msgstr "" -#: config/tc-alpha.c:4418 +#: config/tc-alpha.c:4416 msgid ".handler directive has no name" msgstr "" -#: config/tc-alpha.c:4447 +#: config/tc-alpha.c:4445 msgid "Bad .frame directive 1./2. param" msgstr "" -#: config/tc-alpha.c:4459 +#: config/tc-alpha.c:4457 msgid "Bad .frame directive 3./4. param" msgstr "" -#: config/tc-alpha.c:4497 +#: config/tc-alpha.c:4494 msgid ".pdesc directive not in link (.link) section" msgstr "" -#: config/tc-alpha.c:4505 +#: config/tc-alpha.c:4501 msgid ".pdesc directive has no entry symbol" msgstr "" +#: config/tc-alpha.c:4512 +msgid ".pdesc has a bad entry symbol" +msgstr "" + #: config/tc-alpha.c:4523 -msgid ".pdesc has no matching .ent" +msgid ".pdesc doesn't match with last .ent" msgstr "" -#: config/tc-alpha.c:4541 +#: config/tc-alpha.c:4538 msgid "No comma after .pdesc " msgstr "" -#: config/tc-alpha.c:4561 +#: config/tc-alpha.c:4558 msgid "unknown procedure kind" msgstr "" -#: config/tc-alpha.c:4673 +#: config/tc-alpha.c:4653 msgid ".name directive not in link (.link) section" msgstr "" -#: config/tc-alpha.c:4681 +#: config/tc-alpha.c:4661 msgid ".name directive has no symbol" msgstr "" -#: config/tc-alpha.c:4716 +#: config/tc-alpha.c:4695 msgid "No symbol after .linkage" msgstr "" -#: config/tc-alpha.c:4769 +#: config/tc-alpha.c:4743 msgid "No symbol after .code_address" msgstr "" -#: config/tc-alpha.c:4796 config/tc-score.c:5607 +#: config/tc-alpha.c:4769 config/tc-score.c:5604 msgid "Bad .mask directive" msgstr "" -#: config/tc-alpha.c:4814 +#: config/tc-alpha.c:4787 msgid "Bad .fmask directive" msgstr "" -#: config/tc-alpha.c:4971 +#: config/tc-alpha.c:4944 #, c-format msgid "Expected comma after name \"%s\"" msgstr "" -#: config/tc-alpha.c:4983 +#: config/tc-alpha.c:4956 #, c-format msgid "unhandled: .proc %s,%d" msgstr "" -#: config/tc-alpha.c:5017 +#: config/tc-alpha.c:4990 #, c-format msgid "Tried to .set unrecognized mode `%s'" msgstr "" -#: config/tc-alpha.c:5043 +#: config/tc-alpha.c:5016 #, c-format msgid "Bad base register, using $%d." msgstr "" -#: config/tc-alpha.c:5064 +#: config/tc-alpha.c:5037 #, c-format msgid "Alignment too large: %d. assumed" msgstr "" -#: config/tc-alpha.c:5068 config/tc-d30v.c:2060 +#: config/tc-alpha.c:5041 config/tc-d30v.c:2060 msgid "Alignment negative: 0 assumed" msgstr "" -#: config/tc-alpha.c:5163 config/tc-alpha.c:5656 +#: config/tc-alpha.c:5136 config/tc-alpha.c:5628 #, c-format msgid "Unknown CPU identifier `%s'" msgstr "" -#: config/tc-alpha.c:5354 +#: config/tc-alpha.c:5327 #, c-format msgid "Chose GP value of %lx\n" msgstr "" -#: config/tc-alpha.c:5368 +#: config/tc-alpha.c:5341 msgid "bad .section directive: want a,s,w,x,M,S,G,T in string" msgstr "" -#: config/tc-alpha.c:5457 +#: config/tc-alpha.c:5430 #, c-format msgid "internal error: can't hash opcode `%s': %s" msgstr "" -#: config/tc-alpha.c:5493 +#: config/tc-alpha.c:5466 #, c-format msgid "internal error: can't hash macro `%s': %s" msgstr "" -#: config/tc-alpha.c:5578 config/tc-arm.c:6746 config/tc-arm.c:6758 +#: config/tc-alpha.c:5550 config/tc-arm.c:6818 config/tc-arm.c:6830 #: config/tc-i960.c:708 config/tc-xtensa.c:5315 config/tc-xtensa.c:5393 #: config/tc-xtensa.c:5510 config/tc-z80.c:1897 msgid "syntax error" msgstr "" -#: config/tc-alpha.c:5707 +#: config/tc-alpha.c:5679 msgid "" "Alpha options:\n" "-32addr\t\t\ttreat addresses as 32-bit values\n" @@ -1370,7 +1423,7 @@ msgid "" "\t\t\tthese variants include PALcode opcodes\n" msgstr "" -#: config/tc-alpha.c:5717 +#: config/tc-alpha.c:5689 msgid "" "VMS options:\n" "-+\t\t\tencode (don't truncate) names longer than 64 characters\n" @@ -1378,40 +1431,42 @@ msgid "" "-replace/-noreplace\tenable or disable the optimization of procedure calls\n" msgstr "" -#: config/tc-alpha.c:5968 +#: config/tc-alpha.c:5940 #, c-format msgid "unhandled relocation type %s" msgstr "" -#: config/tc-alpha.c:5981 +#: config/tc-alpha.c:5953 msgid "non-absolute expression in constant field" msgstr "" -#: config/tc-alpha.c:5995 +#: config/tc-alpha.c:5967 #, c-format msgid "type %d reloc done?\n" msgstr "" -#: config/tc-alpha.c:6042 config/tc-alpha.c:6049 config/tc-mips.c:9793 +#: config/tc-alpha.c:6014 config/tc-alpha.c:6021 config/tc-mips.c:11711 +#: config/tc-mips.c:12396 msgid "Used $at without \".set noat\"" msgstr "" -#: config/tc-alpha.c:6218 +#: config/tc-alpha.c:6190 #, c-format msgid "!samegp reloc against symbol without .prologue: %s" msgstr "" -#: config/tc-alpha.c:6262 config/tc-xtensa.c:5999 +#: config/tc-alpha.c:6234 config/tc-tilegx.c:1700 config/tc-tilepro.c:1499 +#: config/tc-xtensa.c:5999 #, c-format msgid "cannot represent `%s' relocation in object file" msgstr "" -#: config/tc-alpha.c:6268 +#: config/tc-alpha.c:6240 #, c-format msgid "internal error? cannot generate `%s' relocation" msgstr "" -#: config/tc-alpha.c:6364 +#: config/tc-alpha.c:6339 #, c-format msgid "frame reg expected, using $%d." msgstr "" @@ -1427,8 +1482,8 @@ msgstr "" msgid "could not set architecture and machine" msgstr "" -#: config/tc-arc.c:212 config/tc-arm.c:22240 config/tc-score.c:6303 -#: config/tc-score.c:6532 config/tc-score.c:6537 +#: config/tc-arc.c:212 config/tc-arm.c:22402 config/tc-score.c:6299 +#: config/tc-score.c:6528 config/tc-score.c:6533 msgid "virtual memory exhausted" msgstr "" @@ -1569,7 +1624,7 @@ msgid "missing ')' in %%-op" msgstr "" #: config/tc-arc.c:1364 config/tc-dlx.c:1201 config/tc-i960.c:2639 -#: config/tc-m32r.c:2281 config/tc-sparc.c:3508 +#: config/tc-m32r.c:2281 config/tc-sparc.c:3651 #, c-format msgid "internal error: can't export reloc type %d (`%s')" msgstr "" @@ -1588,7 +1643,7 @@ msgid "symbol as destination register" msgstr "" #. xgettext:c-format. -#: config/tc-arc.c:1759 config/tc-i370.c:2207 config/tc-mn10200.c:1141 +#: config/tc-arc.c:1759 config/tc-i370.c:2207 config/tc-mn10200.c:1142 #: config/tc-mn10300.c:1820 config/tc-ppc.c:2970 config/tc-s390.c:1506 #: config/tc-v850.c:2699 #, c-format @@ -1608,7 +1663,7 @@ msgstr "" msgid "conditional branch follows set of flags" msgstr "" -#: config/tc-arc.c:1893 config/tc-arm.c:16170 +#: config/tc-arc.c:1893 config/tc-arm.c:16330 #, c-format msgid "bad instruction `%s'" msgstr "" @@ -1685,7 +1740,7 @@ msgstr "" msgid "iWMMXt data register expected" msgstr "" -#: config/tc-arm.c:557 config/tc-arm.c:6525 +#: config/tc-arm.c:557 config/tc-arm.c:6597 msgid "iWMMXt control register expected" msgstr "" @@ -1766,1809 +1821,1841 @@ msgstr "" msgid "cannot use writeback with PC-relative addressing" msgstr "" -#: config/tc-arm.c:917 +#: config/tc-arm.c:727 +msgid "branch out of range" +msgstr "" + +#: config/tc-arm.c:921 msgid "immediate expression requires a # prefix" msgstr "" -#: config/tc-arm.c:945 read.c:3664 +#: config/tc-arm.c:949 read.c:3663 msgid "missing expression" msgstr "" -#: config/tc-arm.c:945 config/tc-score.c:6519 expr.c:1357 read.c:2456 +#: config/tc-arm.c:949 config/tc-score.c:6515 expr.c:1357 read.c:2456 msgid "bad expression" msgstr "" -#: config/tc-arm.c:956 config/tc-i860.c:1004 config/tc-sparc.c:2880 +#: config/tc-arm.c:960 config/tc-i860.c:1004 config/tc-sparc.c:3023 msgid "bad segment" msgstr "" -#: config/tc-arm.c:975 config/tc-arm.c:4848 config/tc-i960.c:1300 -#: config/tc-score.c:1211 +#: config/tc-arm.c:979 config/tc-arm.c:4883 config/tc-i960.c:1300 +#: config/tc-score.c:1210 msgid "invalid constant" msgstr "" -#: config/tc-arm.c:1105 +#: config/tc-arm.c:1109 msgid "expected #constant" msgstr "" -#: config/tc-arm.c:1266 +#: config/tc-arm.c:1270 #, c-format msgid "unexpected character `%c' in type specifier" msgstr "" -#: config/tc-arm.c:1283 +#: config/tc-arm.c:1287 #, c-format msgid "bad size %d in type specifier" msgstr "" -#: config/tc-arm.c:1333 +#: config/tc-arm.c:1337 msgid "only one type should be specified for operand" msgstr "" -#: config/tc-arm.c:1339 +#: config/tc-arm.c:1343 msgid "vector type expected" msgstr "" -#: config/tc-arm.c:1411 +#: config/tc-arm.c:1415 msgid "can't redefine type for operand" msgstr "" -#: config/tc-arm.c:1422 +#: config/tc-arm.c:1426 msgid "only D registers may be indexed" msgstr "" -#: config/tc-arm.c:1428 +#: config/tc-arm.c:1432 msgid "can't change index for operand" msgstr "" -#: config/tc-arm.c:1444 config/tc-arm.c:3332 config/tc-arm.c:4430 +#: config/tc-arm.c:1448 config/tc-arm.c:3367 config/tc-arm.c:4465 msgid "constant expression required" msgstr "" -#: config/tc-arm.c:1491 +#: config/tc-arm.c:1495 msgid "register operand expected, but got scalar" msgstr "" -#: config/tc-arm.c:1524 +#: config/tc-arm.c:1528 msgid "scalar must have an index" msgstr "" -#: config/tc-arm.c:1529 config/tc-arm.c:14756 config/tc-arm.c:14806 -#: config/tc-arm.c:15221 +#: config/tc-arm.c:1533 config/tc-arm.c:14916 config/tc-arm.c:14966 +#: config/tc-arm.c:15381 msgid "scalar index out of range" msgstr "" -#: config/tc-arm.c:1577 +#: config/tc-arm.c:1581 msgid "bad range in register list" msgstr "" -#: config/tc-arm.c:1585 config/tc-arm.c:1594 config/tc-arm.c:1635 +#: config/tc-arm.c:1589 config/tc-arm.c:1598 config/tc-arm.c:1639 #, c-format msgid "Warning: duplicated register (r%d) in register list" msgstr "" -#: config/tc-arm.c:1597 +#: config/tc-arm.c:1601 msgid "Warning: register range not in ascending order" msgstr "" -#: config/tc-arm.c:1608 +#: config/tc-arm.c:1612 msgid "missing `}'" msgstr "" -#: config/tc-arm.c:1624 +#: config/tc-arm.c:1628 msgid "invalid register mask" msgstr "" -#: config/tc-arm.c:1706 +#: config/tc-arm.c:1710 msgid "expecting {" msgstr "" -#: config/tc-arm.c:1761 config/tc-arm.c:1805 +#: config/tc-arm.c:1765 config/tc-arm.c:1809 msgid "register out of range in list" msgstr "" -#: config/tc-arm.c:1777 config/tc-arm.c:1822 config/tc-h8300.c:1040 -#: config/tc-mips.c:10894 config/tc-mips.c:10916 +#: config/tc-arm.c:1781 config/tc-arm.c:1826 config/tc-h8300.c:1040 +#: config/tc-mips.c:13602 config/tc-mips.c:13624 msgid "invalid register list" msgstr "" -#: config/tc-arm.c:1783 config/tc-arm.c:3846 config/tc-arm.c:3979 +#: config/tc-arm.c:1787 config/tc-arm.c:3881 config/tc-arm.c:4014 msgid "register list not in ascending order" msgstr "" -#: config/tc-arm.c:1814 +#: config/tc-arm.c:1818 msgid "register range not in ascending order" msgstr "" -#: config/tc-arm.c:1847 +#: config/tc-arm.c:1851 msgid "non-contiguous register range" msgstr "" -#: config/tc-arm.c:1906 +#: config/tc-arm.c:1910 msgid "register stride must be 1 or 2" msgstr "" -#: config/tc-arm.c:1907 +#: config/tc-arm.c:1911 msgid "mismatched element/structure types in list" msgstr "" -#: config/tc-arm.c:1971 +#: config/tc-arm.c:1975 msgid "don't use Rn-Rm syntax with non-unit stride" msgstr "" -#: config/tc-arm.c:2026 +#: config/tc-arm.c:2030 msgid "error parsing element/structure list" msgstr "" -#: config/tc-arm.c:2032 +#: config/tc-arm.c:2036 msgid "expected }" msgstr "" -#: config/tc-arm.c:2089 +#: config/tc-arm.c:2093 #, c-format msgid "ignoring attempt to redefine built-in register '%s'" msgstr "" -#: config/tc-arm.c:2094 +#: config/tc-arm.c:2098 #, c-format msgid "ignoring redefinition of register alias '%s'" msgstr "" -#: config/tc-arm.c:2122 +#: config/tc-arm.c:2126 msgid "attempt to redefine typed alias" msgstr "" -#: config/tc-arm.c:2161 +#: config/tc-arm.c:2165 #, c-format msgid "unknown register '%s' -- .req ignored" msgstr "" -#: config/tc-arm.c:2256 +#: config/tc-arm.c:2260 msgid "bad type for register" msgstr "" -#: config/tc-arm.c:2267 +#: config/tc-arm.c:2271 msgid "expression must be constant" msgstr "" -#: config/tc-arm.c:2284 +#: config/tc-arm.c:2288 msgid "can't redefine the type of a register alias" msgstr "" -#: config/tc-arm.c:2291 +#: config/tc-arm.c:2295 msgid "you must specify a single type only" msgstr "" -#: config/tc-arm.c:2304 +#: config/tc-arm.c:2308 msgid "can't redefine the index of a scalar alias" msgstr "" -#: config/tc-arm.c:2312 +#: config/tc-arm.c:2316 msgid "scalar index must be constant" msgstr "" -#: config/tc-arm.c:2321 +#: config/tc-arm.c:2325 msgid "expecting ]" msgstr "" -#: config/tc-arm.c:2368 +#: config/tc-arm.c:2372 msgid "invalid syntax for .req directive" msgstr "" -#: config/tc-arm.c:2374 +#: config/tc-arm.c:2378 msgid "invalid syntax for .dn directive" msgstr "" -#: config/tc-arm.c:2380 +#: config/tc-arm.c:2384 msgid "invalid syntax for .qn directive" msgstr "" -#: config/tc-arm.c:2406 +#: config/tc-arm.c:2410 msgid "invalid syntax for .unreq directive" msgstr "" -#: config/tc-arm.c:2413 +#: config/tc-arm.c:2417 #, c-format msgid "unknown register alias '%s'" msgstr "" -#: config/tc-arm.c:2415 +#: config/tc-arm.c:2419 #, c-format msgid "ignoring attempt to use .unreq on fixed register name: '%s'" msgstr "" -#: config/tc-arm.c:2666 +#: config/tc-arm.c:2687 #, c-format msgid "Failed to find real start of function: %s\n" msgstr "" -#: config/tc-arm.c:2683 +#: config/tc-arm.c:2704 msgid "selected processor does not support THUMB opcodes" msgstr "" -#: config/tc-arm.c:2696 +#: config/tc-arm.c:2717 msgid "selected processor does not support ARM opcodes" msgstr "" -#: config/tc-arm.c:2708 +#: config/tc-arm.c:2729 #, c-format msgid "invalid instruction size selected (%d)" msgstr "" -#: config/tc-arm.c:2740 +#: config/tc-arm.c:2761 #, c-format msgid "invalid operand to .code directive (%d) (expecting 16 or 32)" msgstr "" -#: config/tc-arm.c:2796 +#: config/tc-arm.c:2817 #, c-format msgid "expected comma after name \"%s\"" msgstr "" -#: config/tc-arm.c:2846 config/tc-m32r.c:588 +#: config/tc-arm.c:2867 config/tc-m32r.c:588 #, c-format msgid "symbol `%s' already defined" msgstr "" -#: config/tc-arm.c:2880 +#: config/tc-arm.c:2901 #, c-format msgid "unrecognized syntax mode \"%s\"" msgstr "" -#: config/tc-arm.c:2901 +#: config/tc-arm.c:2922 #, c-format msgid "alignment too large: %d assumed" msgstr "" -#: config/tc-arm.c:2904 +#: config/tc-arm.c:2925 msgid "alignment negative. 0 assumed." msgstr "" -#: config/tc-arm.c:3054 +#: config/tc-arm.c:3075 msgid "literal pool overflow" msgstr "" -#: config/tc-arm.c:3210 config/tc-arm.c:6460 +#: config/tc-arm.c:3245 config/tc-arm.c:6532 msgid "unrecognized relocation suffix" msgstr "" -#: config/tc-arm.c:3225 +#: config/tc-arm.c:3260 msgid "(plt) is only valid on branch targets" msgstr "" -#: config/tc-arm.c:3231 config/tc-s390.c:1134 config/tc-s390.c:1771 +#: config/tc-arm.c:3266 config/tc-s390.c:1134 config/tc-s390.c:1771 #: config/tc-xtensa.c:1591 #, c-format msgid "%s relocations do not fit in %d bytes" msgstr "" -#: config/tc-arm.c:3308 +#: config/tc-arm.c:3343 msgid ".inst.n operand too big. Use .inst.w instead" msgstr "" -#: config/tc-arm.c:3328 +#: config/tc-arm.c:3363 msgid "cannot determine Thumb instruction size. Use .inst.n/.inst.w instead" msgstr "" -#: config/tc-arm.c:3358 +#: config/tc-arm.c:3393 msgid "width suffixes are invalid in ARM mode" msgstr "" -#: config/tc-arm.c:3400 dwarf2dbg.c:711 +#: config/tc-arm.c:3435 dwarf2dbg.c:744 msgid "expected 0 or 1" msgstr "" -#: config/tc-arm.c:3404 +#: config/tc-arm.c:3439 msgid "missing comma" msgstr "" -#: config/tc-arm.c:3437 +#: config/tc-arm.c:3472 msgid "duplicate .fnstart directive" msgstr "" -#: config/tc-arm.c:3468 config/tc-tic6x.c:413 +#: config/tc-arm.c:3503 config/tc-tic6x.c:413 msgid "duplicate .handlerdata directive" msgstr "" -#: config/tc-arm.c:3487 +#: config/tc-arm.c:3522 msgid ".fnend directive without .fnstart" msgstr "" -#: config/tc-arm.c:3553 config/tc-tic6x.c:394 +#: config/tc-arm.c:3588 config/tc-tic6x.c:394 msgid "personality routine specified for cantunwind frame" msgstr "" -#: config/tc-arm.c:3570 config/tc-tic6x.c:455 +#: config/tc-arm.c:3605 config/tc-tic6x.c:455 msgid "duplicate .personalityindex directive" msgstr "" -#: config/tc-arm.c:3577 config/tc-tic6x.c:462 +#: config/tc-arm.c:3612 config/tc-tic6x.c:462 msgid "bad personality routine number" msgstr "" -#: config/tc-arm.c:3599 config/tc-tic6x.c:479 +#: config/tc-arm.c:3634 config/tc-tic6x.c:479 msgid "duplicate .personality directive" msgstr "" -#: config/tc-arm.c:3622 config/tc-arm.c:3750 config/tc-arm.c:3798 +#: config/tc-arm.c:3657 config/tc-arm.c:3785 config/tc-arm.c:3833 msgid "expected register list" msgstr "" -#: config/tc-arm.c:3704 +#: config/tc-arm.c:3739 msgid "expected , " msgstr "" -#: config/tc-arm.c:3713 +#: config/tc-arm.c:3748 msgid "number of registers must be in the range [1:4]" msgstr "" -#: config/tc-arm.c:3860 config/tc-arm.c:3993 +#: config/tc-arm.c:3895 config/tc-arm.c:4028 msgid "bad register range" msgstr "" -#: config/tc-arm.c:4050 +#: config/tc-arm.c:4085 msgid "register expected" msgstr "" -#: config/tc-arm.c:4060 +#: config/tc-arm.c:4095 msgid "FPA .unwind_save does not take a register list" msgstr "" -#: config/tc-arm.c:4079 +#: config/tc-arm.c:4114 msgid ".unwind_save does not support this kind of register" msgstr "" -#: config/tc-arm.c:4118 +#: config/tc-arm.c:4153 msgid "SP and PC not permitted in .unwind_movsp directive" msgstr "" -#: config/tc-arm.c:4123 +#: config/tc-arm.c:4158 msgid "unexpected .unwind_movsp directive" msgstr "" -#: config/tc-arm.c:4150 +#: config/tc-arm.c:4185 msgid "stack increment must be multiple of 4" msgstr "" -#: config/tc-arm.c:4182 +#: config/tc-arm.c:4217 msgid "expected , " msgstr "" -#: config/tc-arm.c:4200 +#: config/tc-arm.c:4235 msgid "register must be either sp or set by a previousunwind_movsp directive" msgstr "" -#: config/tc-arm.c:4239 +#: config/tc-arm.c:4274 msgid "expected , " msgstr "" -#: config/tc-arm.c:4251 +#: config/tc-arm.c:4286 msgid "unwind opcode too long" msgstr "" -#: config/tc-arm.c:4256 +#: config/tc-arm.c:4291 msgid "invalid unwind opcode" msgstr "" -#: config/tc-arm.c:4436 config/tc-arm.c:5346 config/tc-arm.c:9360 -#: config/tc-arm.c:9888 config/tc-arm.c:13218 config/tc-arm.c:21248 -#: config/tc-arm.c:21273 config/tc-arm.c:21281 config/tc-z8k.c:1144 +#: config/tc-arm.c:4471 config/tc-arm.c:5410 config/tc-arm.c:9497 +#: config/tc-arm.c:10032 config/tc-arm.c:13378 config/tc-arm.c:21410 +#: config/tc-arm.c:21435 config/tc-arm.c:21443 config/tc-z8k.c:1144 #: config/tc-z8k.c:1154 msgid "immediate value out of range" msgstr "" -#: config/tc-arm.c:4601 +#: config/tc-arm.c:4636 msgid "invalid FPA immediate expression" msgstr "" -#: config/tc-arm.c:4725 config/tc-arm.c:4734 +#: config/tc-arm.c:4760 config/tc-arm.c:4769 msgid "shift expression expected" msgstr "" -#: config/tc-arm.c:4748 +#: config/tc-arm.c:4783 msgid "'LSL' or 'ASR' required" msgstr "" -#: config/tc-arm.c:4756 +#: config/tc-arm.c:4791 msgid "'LSL' required" msgstr "" -#: config/tc-arm.c:4764 +#: config/tc-arm.c:4799 msgid "'ASR' required" msgstr "" -#: config/tc-arm.c:4836 config/tc-arm.c:5340 config/tc-arm.c:7168 +#: config/tc-arm.c:4871 config/tc-arm.c:5404 config/tc-arm.c:7259 msgid "constant expression expected" msgstr "" -#: config/tc-arm.c:4843 +#: config/tc-arm.c:4878 msgid "invalid rotation" msgstr "" -#: config/tc-arm.c:5003 config/tc-arm.c:5167 +#: config/tc-arm.c:5037 config/tc-arm.c:5201 msgid "unknown group relocation" msgstr "" -#: config/tc-arm.c:5039 +#: config/tc-arm.c:5073 msgid "alignment must be constant" msgstr "" -#: config/tc-arm.c:5198 +#: config/tc-arm.c:5232 msgid "this group relocation is not allowed on this instruction" msgstr "" -#: config/tc-arm.c:5219 config/tc-arm.c:5747 +#: config/tc-arm.c:5269 config/tc-arm.c:5817 msgid "']' expected" msgstr "" -#: config/tc-arm.c:5237 +#: config/tc-arm.c:5287 msgid "'}' expected at end of 'option' field" msgstr "" -#: config/tc-arm.c:5242 +#: config/tc-arm.c:5292 msgid "cannot combine index with option" msgstr "" -#: config/tc-arm.c:5255 +#: config/tc-arm.c:5305 msgid "cannot combine pre- and post-indexing" msgstr "" -#: config/tc-arm.c:5478 +#: config/tc-arm.c:5548 msgid "unexpected bit specified after APSR" msgstr "" -#: config/tc-arm.c:5490 +#: config/tc-arm.c:5560 msgid "selected processor does not support DSP extension" msgstr "" -#: config/tc-arm.c:5502 +#: config/tc-arm.c:5572 msgid "bad bitmask specified after APSR" msgstr "" -#: config/tc-arm.c:5526 +#: config/tc-arm.c:5596 msgid "writing to APSR without specifying a bitmask is deprecated" msgstr "" -#: config/tc-arm.c:5538 config/tc-arm.c:10977 config/tc-arm.c:11016 -#: config/tc-arm.c:11020 +#: config/tc-arm.c:5608 config/tc-arm.c:11125 config/tc-arm.c:11164 +#: config/tc-arm.c:11168 msgid "selected processor does not support requested special purpose register" msgstr "" -#: config/tc-arm.c:5543 +#: config/tc-arm.c:5613 msgid "flag for {c}psr instruction expected" msgstr "" -#: config/tc-arm.c:5568 +#: config/tc-arm.c:5638 msgid "unrecognized CPS flag" msgstr "" -#: config/tc-arm.c:5575 +#: config/tc-arm.c:5645 msgid "missing CPS flags" msgstr "" -#: config/tc-arm.c:5598 config/tc-arm.c:5604 +#: config/tc-arm.c:5668 config/tc-arm.c:5674 msgid "valid endian specifiers are be or le" msgstr "" -#: config/tc-arm.c:5626 +#: config/tc-arm.c:5696 msgid "missing rotation field after comma" msgstr "" -#: config/tc-arm.c:5641 +#: config/tc-arm.c:5711 msgid "rotation can only be 0, 8, 16, or 24" msgstr "" -#: config/tc-arm.c:5670 +#: config/tc-arm.c:5740 msgid "condition required" msgstr "" -#: config/tc-arm.c:5709 config/tc-arm.c:7755 +#: config/tc-arm.c:5779 config/tc-arm.c:7846 msgid "'[' expected" msgstr "" -#: config/tc-arm.c:5722 +#: config/tc-arm.c:5792 msgid "',' expected" msgstr "" -#: config/tc-arm.c:5739 +#: config/tc-arm.c:5809 msgid "invalid shift" msgstr "" -#: config/tc-arm.c:5812 +#: config/tc-arm.c:5882 msgid "can't use Neon quad register here" msgstr "" -#: config/tc-arm.c:5878 +#: config/tc-arm.c:5948 msgid "expected or or operand" msgstr "" -#: config/tc-arm.c:5958 +#: config/tc-arm.c:6028 msgid "parse error" msgstr "" -#: config/tc-arm.c:5968 read.c:2127 +#: config/tc-arm.c:6038 read.c:2127 msgid "expected comma" msgstr "" #. ISB can only take SY as an option. -#: config/tc-arm.c:6227 +#: config/tc-arm.c:6298 msgid "invalid barrier type" msgstr "" -#: config/tc-arm.c:6364 +#: config/tc-arm.c:6435 msgid "immediate value is out of range" msgstr "" -#: config/tc-arm.c:6510 +#: config/tc-arm.c:6582 msgid "iWMMXt data or control register expected" msgstr "" -#: config/tc-arm.c:6550 +#: config/tc-arm.c:6622 msgid "Banked registers are not available with this architecture." msgstr "" -#: config/tc-arm.c:6675 +#: config/tc-arm.c:6747 #, c-format msgid "unhandled operand code %d" msgstr "" -#: config/tc-arm.c:6772 config/tc-score.c:264 +#: config/tc-arm.c:6844 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:6813 +#: config/tc-arm.c:6885 msgid "use of r13 is deprecated" msgstr "" -#: config/tc-arm.c:6883 +#: config/tc-arm.c:6955 msgid "D register out of range for selected VFP version" msgstr "" -#: config/tc-arm.c:6962 +#: config/tc-arm.c:7038 msgid "instruction does not accept preindexed addressing" msgstr "" #. unindexed - only for coprocessor -#: config/tc-arm.c:6978 config/tc-arm.c:9153 +#: config/tc-arm.c:7054 config/tc-arm.c:9290 msgid "instruction does not accept unindexed addressing" msgstr "" -#: config/tc-arm.c:6986 +#: config/tc-arm.c:7062 msgid "destination register same as write-back base" msgstr "" -#: config/tc-arm.c:6987 +#: config/tc-arm.c:7063 msgid "source register same as write-back base" msgstr "" -#: config/tc-arm.c:7037 +#: config/tc-arm.c:7113 msgid "use of PC in this instruction is deprecated" msgstr "" -#: config/tc-arm.c:7055 +#: config/tc-arm.c:7136 msgid "instruction does not accept scaled register index" msgstr "" -#: config/tc-arm.c:7101 +#: config/tc-arm.c:7188 msgid "instruction does not support unindexed addressing" msgstr "" -#: config/tc-arm.c:7116 +#: config/tc-arm.c:7203 msgid "pc may not be used with write-back" msgstr "" -#: config/tc-arm.c:7121 +#: config/tc-arm.c:7208 msgid "instruction does not support writeback" msgstr "" -#: config/tc-arm.c:7163 +#: config/tc-arm.c:7254 msgid "invalid pseudo operation" msgstr "" -#: config/tc-arm.c:7209 +#: config/tc-arm.c:7300 msgid "literal pool insertion failed" msgstr "" -#: config/tc-arm.c:7268 +#: config/tc-arm.c:7359 msgid "Rn must not overlap other operands" msgstr "" -#: config/tc-arm.c:7273 +#: config/tc-arm.c:7364 msgid "swp{b} use is deprecated for this architecture" msgstr "" -#: config/tc-arm.c:7370 config/tc-arm.c:9720 +#: config/tc-arm.c:7461 config/tc-arm.c:9864 msgid "bad barrier type" msgstr "" -#: config/tc-arm.c:7381 config/tc-arm.c:7400 config/tc-arm.c:7413 -#: config/tc-arm.c:9732 config/tc-arm.c:9763 config/tc-arm.c:9785 +#: config/tc-arm.c:7472 config/tc-arm.c:7491 config/tc-arm.c:7504 +#: config/tc-arm.c:9876 config/tc-arm.c:9907 config/tc-arm.c:9929 msgid "bit-field extends past end of register" msgstr "" -#: config/tc-arm.c:7443 +#: config/tc-arm.c:7534 msgid "the only valid suffixes here are '(plt)' and '(tlscall)'" msgstr "" -#: config/tc-arm.c:7496 +#: config/tc-arm.c:7587 msgid "use of r15 in blx in ARM mode is not really useful" msgstr "" -#: config/tc-arm.c:7518 +#: config/tc-arm.c:7609 msgid "use of r15 in bx in ARM mode is not really useful" msgstr "" -#: config/tc-arm.c:7543 +#: config/tc-arm.c:7634 msgid "use of r15 in bxj is not really useful" msgstr "" -#: config/tc-arm.c:7722 config/tc-arm.c:7731 +#: config/tc-arm.c:7813 config/tc-arm.c:7822 msgid "writeback of base register is UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:7725 +#: config/tc-arm.c:7816 msgid "writeback of base register when in register list is UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:7735 +#: config/tc-arm.c:7826 msgid "if writeback register is in list, it must be the lowest reg in the list" msgstr "" -#: config/tc-arm.c:7750 -msgid "first destination register must be even" +#: config/tc-arm.c:7841 +msgid "first transfer register must be even" msgstr "" -#: config/tc-arm.c:7753 config/tc-arm.c:7822 -msgid "can only load two consecutive registers" +#: config/tc-arm.c:7844 +msgid "can only transfer two consecutive registers" msgstr "" #. If op 1 were present and equal to PC, this function wouldn't #. have been called in the first place. #. If op 2 were present and equal to PC, this function wouldn't #. have been called in the first place. -#: config/tc-arm.c:7754 config/tc-arm.c:7825 config/tc-arm.c:8423 -#: config/tc-arm.c:10504 +#: config/tc-arm.c:7845 config/tc-arm.c:7915 config/tc-arm.c:8544 +#: config/tc-arm.c:10652 msgid "r14 not allowed here" msgstr "" -#: config/tc-arm.c:7768 -msgid "base register written back, and overlaps second destination register" +#: config/tc-arm.c:7857 +msgid "base register written back, and overlaps second transfer register" msgstr "" -#: config/tc-arm.c:7776 -msgid "index register overlaps destination register" +#: config/tc-arm.c:7867 +msgid "index register overlaps transfer register" msgstr "" -#: config/tc-arm.c:7806 config/tc-arm.c:8405 +#: config/tc-arm.c:7896 config/tc-arm.c:8511 msgid "offset must be zero in ARM encoding" msgstr "" -#: config/tc-arm.c:7819 config/tc-arm.c:8417 +#: config/tc-arm.c:7909 config/tc-arm.c:8538 msgid "even register required" msgstr "" -#: config/tc-arm.c:7850 config/tc-arm.c:7882 +#: config/tc-arm.c:7912 +msgid "can only load two consecutive registers" +msgstr "" + +#: config/tc-arm.c:7930 +msgid "ldr to register 15 must be 4-byte alligned" +msgstr "" + +#: config/tc-arm.c:7953 config/tc-arm.c:7985 msgid "this instruction requires a post-indexed address" msgstr "" -#: config/tc-arm.c:7909 +#: config/tc-arm.c:8012 msgid "Rd and Rm should be different in mla" msgstr "" -#: config/tc-arm.c:7933 config/tc-arm.c:10848 +#: config/tc-arm.c:8036 config/tc-arm.c:10996 msgid ":lower16: not allowed this instruction" msgstr "" -#: config/tc-arm.c:7935 +#: config/tc-arm.c:8038 msgid ":upper16: not allowed instruction" msgstr "" -#: config/tc-arm.c:7954 config/tc-arm.c:7997 +#: config/tc-arm.c:8057 config/tc-arm.c:8100 msgid "operand 1 must be FPSCR" msgstr "" -#: config/tc-arm.c:8016 +#: config/tc-arm.c:8119 msgid "operand 0 must be FPSCR" msgstr "" -#: config/tc-arm.c:8036 config/tc-arm.c:10966 +#: config/tc-arm.c:8139 config/tc-arm.c:11114 msgid "bad register for mrs" msgstr "" -#: config/tc-arm.c:8043 config/tc-arm.c:10983 +#: config/tc-arm.c:8146 config/tc-arm.c:11131 msgid "'APSR', 'CPSR' or 'SPSR' expected" msgstr "" -#: config/tc-arm.c:8084 +#: config/tc-arm.c:8187 msgid "Rd and Rm should be different in mul" msgstr "" -#: config/tc-arm.c:8103 config/tc-arm.c:8350 config/tc-arm.c:11117 +#: config/tc-arm.c:8206 config/tc-arm.c:8456 config/tc-arm.c:11265 msgid "rdhi and rdlo must be different" msgstr "" -#: config/tc-arm.c:8109 +#: config/tc-arm.c:8212 msgid "rdhi, rdlo and rm must all be different" msgstr "" -#: config/tc-arm.c:8175 +#: config/tc-arm.c:8278 msgid "'[' expected after PLD mnemonic" msgstr "" -#: config/tc-arm.c:8177 config/tc-arm.c:8192 +#: config/tc-arm.c:8280 config/tc-arm.c:8295 msgid "post-indexed expression used in preload instruction" msgstr "" -#: config/tc-arm.c:8179 config/tc-arm.c:8194 +#: config/tc-arm.c:8282 config/tc-arm.c:8297 msgid "writeback used in preload instruction" msgstr "" -#: config/tc-arm.c:8181 config/tc-arm.c:8196 +#: config/tc-arm.c:8284 config/tc-arm.c:8299 msgid "unindexed addressing used in preload instruction" msgstr "" -#: config/tc-arm.c:8190 +#: config/tc-arm.c:8293 msgid "'[' expected after PLI mnemonic" msgstr "" -#: config/tc-arm.c:8376 +#: config/tc-arm.c:8401 config/tc-arm.c:11639 config/tc-arm.c:11671 +#: config/tc-arm.c:11714 +msgid "extraneous shift as part of operand to shift insn" +msgstr "" + +#: config/tc-arm.c:8482 msgid "SRS base register must be r13" msgstr "" -#: config/tc-arm.c:8420 +#: config/tc-arm.c:8541 msgid "can only store two consecutive registers" msgstr "" -#: config/tc-arm.c:8515 config/tc-arm.c:8532 +#: config/tc-arm.c:8636 config/tc-arm.c:8653 msgid "only two consecutive VFP SP registers allowed here" msgstr "" -#: config/tc-arm.c:8560 config/tc-arm.c:8575 +#: config/tc-arm.c:8681 config/tc-arm.c:8696 msgid "this addressing mode requires base-register writeback" msgstr "" -#: config/tc-arm.c:8749 +#. 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:8813 +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:8820 +msgid "immediate value out of range, expected range [1, 32]" +msgstr "" + +#: config/tc-arm.c:8886 msgid "this instruction does not support indexing" msgstr "" -#: config/tc-arm.c:8772 +#: config/tc-arm.c:8909 msgid "only r15 allowed here" msgstr "" -#: config/tc-arm.c:8907 +#: config/tc-arm.c:9044 msgid "immediate operand requires iWMMXt2" msgstr "" -#: config/tc-arm.c:9051 +#: config/tc-arm.c:9188 msgid "shift by register not allowed in thumb mode" msgstr "" -#: config/tc-arm.c:9063 config/tc-arm.c:11660 config/tc-arm.c:20630 +#: config/tc-arm.c:9200 config/tc-arm.c:11820 config/tc-arm.c:20800 msgid "shift expression is too large" msgstr "" -#: config/tc-arm.c:9090 +#: config/tc-arm.c:9227 msgid "Instruction does not support =N addresses" msgstr "" -#: config/tc-arm.c:9096 +#: config/tc-arm.c:9233 msgid "cannot use register index with this instruction" msgstr "" -#: config/tc-arm.c:9098 +#: config/tc-arm.c:9235 msgid "Thumb does not support negative register indexing" msgstr "" -#: config/tc-arm.c:9100 +#: config/tc-arm.c:9237 msgid "Thumb does not support register post-indexing" msgstr "" -#: config/tc-arm.c:9102 +#: config/tc-arm.c:9239 msgid "Thumb does not support register indexing with writeback" msgstr "" -#: config/tc-arm.c:9104 +#: config/tc-arm.c:9241 msgid "Thumb supports only LSL in shifted register indexing" msgstr "" -#: config/tc-arm.c:9113 config/tc-arm.c:14558 +#: config/tc-arm.c:9250 config/tc-arm.c:14718 msgid "shift out of range" msgstr "" -#: config/tc-arm.c:9122 +#: config/tc-arm.c:9259 msgid "cannot use writeback with this instruction" msgstr "" -#: config/tc-arm.c:9143 +#: config/tc-arm.c:9280 msgid "cannot use post-indexing with PC-relative addressing" msgstr "" -#: config/tc-arm.c:9144 +#: config/tc-arm.c:9281 msgid "cannot use post-indexing with this instruction" msgstr "" -#: config/tc-arm.c:9355 +#: config/tc-arm.c:9492 msgid "only SUBS PC, LR, #const allowed" msgstr "" -#: config/tc-arm.c:9434 config/tc-arm.c:9585 config/tc-arm.c:9682 -#: config/tc-arm.c:10927 config/tc-arm.c:11223 +#: config/tc-arm.c:9574 config/tc-arm.c:9729 config/tc-arm.c:9826 +#: config/tc-arm.c:11075 config/tc-arm.c:11371 msgid "shift must be constant" msgstr "" -#: config/tc-arm.c:9461 config/tc-arm.c:9600 config/tc-arm.c:9697 -#: config/tc-arm.c:10940 +#: config/tc-arm.c:9579 +msgid "shift value over 3 not allowed in thumb mode" +msgstr "" + +#: config/tc-arm.c:9581 +msgid "only LSL shift allowed in thumb mode" +msgstr "" + +#: config/tc-arm.c:9605 config/tc-arm.c:9744 config/tc-arm.c:9841 +#: config/tc-arm.c:11088 msgid "unshifted register required" msgstr "" -#: config/tc-arm.c:9476 config/tc-arm.c:9708 config/tc-arm.c:11078 +#: config/tc-arm.c:9620 config/tc-arm.c:9852 config/tc-arm.c:11226 msgid "dest must overlap one source register" msgstr "" -#: config/tc-arm.c:9603 +#: config/tc-arm.c:9747 msgid "dest and source1 must be the same register" msgstr "" -#: config/tc-arm.c:9884 +#: config/tc-arm.c:10028 msgid "instruction is always unconditional" msgstr "" -#: config/tc-arm.c:9986 +#: config/tc-arm.c:10130 msgid "selected processor does not support 'A' form of this instruction" msgstr "" -#: config/tc-arm.c:9989 +#: config/tc-arm.c:10133 msgid "Thumb does not support the 2-argument form of this instruction" msgstr "" -#: config/tc-arm.c:10097 +#: config/tc-arm.c:10241 msgid "SP not allowed in register list" msgstr "" -#: config/tc-arm.c:10101 config/tc-arm.c:10207 +#: config/tc-arm.c:10245 config/tc-arm.c:10351 msgid "" "having the base register in the register list when using write back is " "UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:10109 +#: config/tc-arm.c:10253 msgid "LR and PC should not both be in register list" msgstr "" -#: config/tc-arm.c:10117 +#: config/tc-arm.c:10261 msgid "PC not allowed in register list" msgstr "" -#: config/tc-arm.c:10159 +#: config/tc-arm.c:10303 msgid "Thumb load/store multiple does not support {reglist}^" msgstr "" -#: config/tc-arm.c:10184 config/tc-arm.c:10261 +#: config/tc-arm.c:10328 config/tc-arm.c:10405 #, c-format msgid "value stored for r%d is UNKNOWN" msgstr "" -#: config/tc-arm.c:10254 +#: config/tc-arm.c:10398 msgid "Thumb-2 instruction only valid in unified syntax" msgstr "" -#: config/tc-arm.c:10258 config/tc-arm.c:10268 +#: config/tc-arm.c:10402 config/tc-arm.c:10412 msgid "this instruction will write back the base register" msgstr "" -#: config/tc-arm.c:10271 +#: config/tc-arm.c:10415 msgid "this instruction will not write back the base register" msgstr "" -#: config/tc-arm.c:10302 +#: config/tc-arm.c:10446 msgid "r14 not allowed as first register when second register is omitted" msgstr "" -#: config/tc-arm.c:10402 +#: config/tc-arm.c:10546 msgid "" "This instruction may be unpredictable if executed on M-profile cores with " "interrupts enabled." msgstr "" -#: config/tc-arm.c:10427 config/tc-arm.c:10440 config/tc-arm.c:10476 +#: config/tc-arm.c:10575 config/tc-arm.c:10588 config/tc-arm.c:10624 msgid "Thumb does not support this addressing mode" msgstr "" -#: config/tc-arm.c:10444 +#: config/tc-arm.c:10592 msgid "byte or halfword not valid for base register" msgstr "" -#: config/tc-arm.c:10447 +#: config/tc-arm.c:10595 msgid "r15 based store not allowed" msgstr "" -#: config/tc-arm.c:10449 +#: config/tc-arm.c:10597 msgid "invalid base register for register offset" msgstr "" -#: config/tc-arm.c:10631 +#: config/tc-arm.c:10779 #, 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:10804 +#: config/tc-arm.c:10952 msgid "shifts in CMP/MOV instructions are only supported in unified syntax" msgstr "" -#: config/tc-arm.c:10832 +#: config/tc-arm.c:10980 msgid "only lo regs allowed with immediate" msgstr "" -#: config/tc-arm.c:10853 +#: config/tc-arm.c:11001 msgid ":upper16: not allowed this instruction" msgstr "" -#: config/tc-arm.c:11001 +#: config/tc-arm.c:11149 msgid "Thumb encoding does not support an immediate here" msgstr "" -#: config/tc-arm.c:11083 +#: config/tc-arm.c:11231 msgid "Thumb-2 MUL must not set flags" msgstr "" -#: config/tc-arm.c:11148 +#: config/tc-arm.c:11296 msgid "Thumb does not support NOP with hints" msgstr "" -#: config/tc-arm.c:11286 +#: config/tc-arm.c:11434 msgid "push/pop do not support {reglist}^" msgstr "" -#: config/tc-arm.c:11309 +#: config/tc-arm.c:11457 msgid "invalid register list to push/pop instruction" msgstr "" -#: config/tc-arm.c:11542 +#: config/tc-arm.c:11698 msgid "source1 and dest must be same register" msgstr "" -#: config/tc-arm.c:11563 +#: config/tc-arm.c:11723 msgid "ror #imm not supported" msgstr "" -#: config/tc-arm.c:11614 +#: config/tc-arm.c:11774 msgid "SMC is not permitted on this architecture" msgstr "" -#: config/tc-arm.c:11777 +#: config/tc-arm.c:11937 msgid "Thumb encoding does not support rotation" msgstr "" -#: config/tc-arm.c:11792 +#: config/tc-arm.c:11952 msgid "SVC is not permitted on this architecture" msgstr "" -#: config/tc-arm.c:11808 +#: config/tc-arm.c:11968 msgid "instruction requires register index" msgstr "" -#: config/tc-arm.c:11817 +#: config/tc-arm.c:11977 msgid "instruction does not allow shifted index" msgstr "" -#: config/tc-arm.c:11962 +#: config/tc-arm.c:12122 msgid "invalid neon suffix for non neon instruction" msgstr "" -#: config/tc-arm.c:12253 config/tc-arm.c:12588 +#: config/tc-arm.c:12413 config/tc-arm.c:12748 msgid "invalid instruction shape" msgstr "" -#: config/tc-arm.c:12497 +#: config/tc-arm.c:12657 msgid "types specified in both the mnemonic and operands" msgstr "" -#: config/tc-arm.c:12534 +#: config/tc-arm.c:12694 msgid "operand types can't be inferred" msgstr "" -#: config/tc-arm.c:12540 +#: config/tc-arm.c:12700 msgid "type specifier has the wrong number of parts" msgstr "" -#: config/tc-arm.c:12604 config/tc-arm.c:14299 config/tc-arm.c:14306 +#: config/tc-arm.c:12764 config/tc-arm.c:14459 config/tc-arm.c:14466 msgid "operand size must match register width" msgstr "" -#: config/tc-arm.c:12615 +#: config/tc-arm.c:12775 msgid "bad type in Neon instruction" msgstr "" -#: config/tc-arm.c:12626 +#: config/tc-arm.c:12786 msgid "inconsistent types in Neon instruction" msgstr "" -#: config/tc-arm.c:13443 +#: config/tc-arm.c:13603 msgid "first and second operands shall be the same register" msgstr "" -#: config/tc-arm.c:13711 +#: config/tc-arm.c:13871 msgid "scalar out of range for multiply instruction" msgstr "" -#: config/tc-arm.c:13887 config/tc-arm.c:13899 +#: config/tc-arm.c:14047 config/tc-arm.c:14059 msgid "immediate out of range for insert" msgstr "" -#: config/tc-arm.c:13911 config/tc-arm.c:14906 +#: config/tc-arm.c:14071 config/tc-arm.c:15066 msgid "immediate out of range for shift" msgstr "" -#: config/tc-arm.c:13968 config/tc-arm.c:13995 config/tc-arm.c:14404 -#: config/tc-arm.c:14852 +#: config/tc-arm.c:14128 config/tc-arm.c:14155 config/tc-arm.c:14564 +#: config/tc-arm.c:15012 msgid "immediate out of range" msgstr "" -#: config/tc-arm.c:14032 +#: config/tc-arm.c:14192 msgid "immediate out of range for narrowing operation" msgstr "" -#: config/tc-arm.c:14157 +#: config/tc-arm.c:14317 msgid "operands 0 and 1 must be the same register" msgstr "" -#: config/tc-arm.c:14378 +#: config/tc-arm.c:14538 msgid "operand size must be specified for immediate VMOV" msgstr "" -#: config/tc-arm.c:14388 +#: config/tc-arm.c:14548 msgid "immediate has bits set outside the operand size" msgstr "" -#: config/tc-arm.c:14584 +#: config/tc-arm.c:14744 msgid "elements must be smaller than reversal region" msgstr "" -#: config/tc-arm.c:14755 config/tc-arm.c:14805 +#: config/tc-arm.c:14915 config/tc-arm.c:14965 msgid "bad type for scalar" msgstr "" -#: config/tc-arm.c:14869 config/tc-arm.c:14877 +#: config/tc-arm.c:15029 config/tc-arm.c:15037 msgid "VFP registers must be adjacent" msgstr "" -#: config/tc-arm.c:15018 +#: config/tc-arm.c:15178 msgid "bad list length for table lookup" msgstr "" -#: config/tc-arm.c:15048 +#: config/tc-arm.c:15208 msgid "writeback (!) must be used for VLDMDB and VSTMDB" msgstr "" -#: config/tc-arm.c:15051 +#: config/tc-arm.c:15211 msgid "register list must contain at least 1 and at most 16 registers" msgstr "" -#: config/tc-arm.c:15076 +#: config/tc-arm.c:15236 msgid "Use of PC here is deprecated" msgstr "" -#: config/tc-arm.c:15078 +#: config/tc-arm.c:15238 msgid "Use of PC here is UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:15141 +#: config/tc-arm.c:15301 msgid "bad alignment" msgstr "" -#: config/tc-arm.c:15158 +#: config/tc-arm.c:15318 msgid "bad list type for instruction" msgstr "" -#: config/tc-arm.c:15200 +#: config/tc-arm.c:15360 msgid "unsupported alignment for instruction" msgstr "" -#: config/tc-arm.c:15219 config/tc-arm.c:15313 config/tc-arm.c:15324 -#: config/tc-arm.c:15334 config/tc-arm.c:15348 +#: config/tc-arm.c:15379 config/tc-arm.c:15473 config/tc-arm.c:15484 +#: config/tc-arm.c:15494 config/tc-arm.c:15508 msgid "bad list length" msgstr "" -#: config/tc-arm.c:15224 +#: config/tc-arm.c:15384 msgid "stride of 2 unavailable when element size is 8" msgstr "" -#: config/tc-arm.c:15257 config/tc-arm.c:15332 +#: config/tc-arm.c:15417 config/tc-arm.c:15492 msgid "can't use alignment with this instruction" msgstr "" -#: config/tc-arm.c:15399 +#: config/tc-arm.c:15559 msgid "post-index must be a register" msgstr "" -#: config/tc-arm.c:15401 +#: config/tc-arm.c:15561 msgid "bad register for post-index" msgstr "" -#: config/tc-arm.c:15737 config/tc-arm.c:15823 +#: config/tc-arm.c:15897 config/tc-arm.c:15983 msgid "conditional infixes are deprecated in unified syntax" msgstr "" -#: config/tc-arm.c:15971 +#: config/tc-arm.c:16131 msgid "Warning: conditional outside an IT block for Thumb." msgstr "" -#: config/tc-arm.c:16176 +#: config/tc-arm.c:16336 msgid "s suffix on comparison instruction is deprecated" msgstr "" -#: config/tc-arm.c:16195 +#: config/tc-arm.c:16355 #, c-format msgid "selected processor does not support Thumb mode `%s'" msgstr "" -#: config/tc-arm.c:16201 +#: config/tc-arm.c:16361 msgid "Thumb does not support conditional execution" msgstr "" -#: config/tc-arm.c:16220 +#: config/tc-arm.c:16380 #, c-format msgid "selected processor does not support Thumb-2 mode `%s'" msgstr "" -#: config/tc-arm.c:16245 +#: config/tc-arm.c:16405 #, c-format msgid "cannot honor width suffix -- `%s'" msgstr "" -#: config/tc-arm.c:16286 +#: config/tc-arm.c:16446 #, c-format msgid "selected processor does not support ARM mode `%s'" msgstr "" -#: config/tc-arm.c:16291 +#: config/tc-arm.c:16451 #, c-format msgid "width suffixes are invalid in ARM mode -- `%s'" msgstr "" -#: config/tc-arm.c:16324 +#: config/tc-arm.c:16484 #, c-format msgid "attempt to use an ARM instruction on a Thumb-only processor -- `%s'" msgstr "" -#: config/tc-arm.c:16341 +#: config/tc-arm.c:16501 #, c-format msgid "section '%s' finished with an open IT block." msgstr "" -#: config/tc-arm.c:16346 +#: config/tc-arm.c:16506 msgid "file finished with an open IT block." msgstr "" -#: config/tc-arm.c:19385 +#: config/tc-arm.c:19545 #, c-format msgid "alignments greater than %d bytes not supported in .text sections." msgstr "" -#: config/tc-arm.c:19653 config/tc-ia64.c:3469 +#: config/tc-arm.c:19813 config/tc-ia64.c:3469 #, c-format msgid "Group section `%s' has no group signature" msgstr "" -#: config/tc-arm.c:19698 +#: config/tc-arm.c:19858 msgid "handlerdata in cantunwind frame" msgstr "" -#: config/tc-arm.c:19715 +#: config/tc-arm.c:19875 msgid "too many unwind opcodes for personality routine 0" msgstr "" -#: config/tc-arm.c:19747 +#: config/tc-arm.c:19907 msgid "too many unwind opcodes" msgstr "" -#: config/tc-arm.c:20007 +#: config/tc-arm.c:20167 msgid "GOT already in the symbol table" msgstr "" -#: config/tc-arm.c:20345 config/tc-arm.c:20387 config/tc-arm.c:20657 +#: config/tc-arm.c:20505 config/tc-arm.c:20547 config/tc-arm.c:20827 #, c-format msgid "undefined symbol %s used as an immediate value" msgstr "" -#: config/tc-arm.c:20347 config/tc-arm.c:20389 +#: config/tc-arm.c:20507 config/tc-arm.c:20549 #, c-format msgid "symbol %s is in a different section" msgstr "" -#: config/tc-arm.c:20349 config/tc-arm.c:20391 +#: config/tc-arm.c:20509 config/tc-arm.c:20551 #, c-format msgid "symbol %s is weak and may be overridden later" msgstr "" -#: config/tc-arm.c:20368 config/tc-arm.c:20699 +#: config/tc-arm.c:20528 config/tc-arm.c:20869 #, c-format msgid "invalid constant (%lx) after fixup" msgstr "" -#: config/tc-arm.c:20424 +#: config/tc-arm.c:20584 #, c-format msgid "unable to compute ADRL instructions for PC offset of 0x%lx" msgstr "" -#: config/tc-arm.c:20459 config/tc-arm.c:20484 +#: config/tc-arm.c:20619 config/tc-arm.c:20649 msgid "invalid literal constant: pool needs to be closer" msgstr "" -#: config/tc-arm.c:20462 config/tc-arm.c:20500 +#: config/tc-arm.c:20622 config/tc-arm.c:20670 #, c-format msgid "bad immediate value for offset (%ld)" msgstr "" -#: config/tc-arm.c:20486 +#: config/tc-arm.c:20651 #, c-format msgid "bad immediate value for 8-bit offset (%ld)" msgstr "" -#: config/tc-arm.c:20541 +#: config/tc-arm.c:20711 msgid "offset not a multiple of 4" msgstr "" -#: config/tc-arm.c:20548 config/tc-arm.c:20563 config/tc-arm.c:20578 -#: config/tc-arm.c:20589 config/tc-arm.c:20612 config/tc-arm.c:21332 +#: config/tc-arm.c:20718 config/tc-arm.c:20733 config/tc-arm.c:20748 +#: config/tc-arm.c:20759 config/tc-arm.c:20782 config/tc-arm.c:21494 #: config/tc-moxie.c:662 config/tc-pj.c:448 config/tc-sh.c:4281 msgid "offset out of range" msgstr "" -#: config/tc-arm.c:20715 +#: config/tc-arm.c:20885 msgid "invalid smc expression" msgstr "" -#: config/tc-arm.c:20724 +#: config/tc-arm.c:20894 msgid "invalid hvc expression" msgstr "" -#: config/tc-arm.c:20735 config/tc-arm.c:20744 +#: config/tc-arm.c:20905 config/tc-arm.c:20914 msgid "invalid swi expression" msgstr "" -#: config/tc-arm.c:20754 +#: config/tc-arm.c:20924 msgid "invalid expression in load/store multiple" msgstr "" -#: config/tc-arm.c:20815 +#: config/tc-arm.c:20985 #, c-format msgid "blx to '%s' an ARM ISA state function changed to bl" msgstr "" -#: config/tc-arm.c:20834 +#: config/tc-arm.c:21004 msgid "misaligned branch destination" msgstr "" -#: config/tc-arm.c:20838 config/tc-arm.c:20875 config/tc-arm.c:20889 -#: config/tc-arm.c:20902 config/tc-arm.c:21009 config/tc-arm.c:21027 -msgid "branch out of range" -msgstr "" - -#: config/tc-arm.c:20924 +#: config/tc-arm.c:21090 msgid "conditional branch out of range" msgstr "" -#: config/tc-arm.c:20959 +#: config/tc-arm.c:21124 #, c-format msgid "blx to Thumb func '%s' from Thumb ISA state changed to bl" msgstr "" -#: config/tc-arm.c:21015 +#: config/tc-arm.c:21174 msgid "Thumb2 branch out of range" msgstr "" -#: config/tc-arm.c:21106 +#: config/tc-arm.c:21263 msgid "rel31 relocation overflow" msgstr "" -#: config/tc-arm.c:21118 config/tc-arm.c:21141 +#: config/tc-arm.c:21275 config/tc-arm.c:21303 msgid "co-processor offset out of range" msgstr "" -#: config/tc-arm.c:21158 +#: config/tc-arm.c:21320 #, c-format msgid "invalid offset, target not word aligned (0x%08lX)" msgstr "" -#: config/tc-arm.c:21165 config/tc-arm.c:21174 config/tc-arm.c:21182 -#: config/tc-arm.c:21190 config/tc-arm.c:21198 +#: config/tc-arm.c:21327 config/tc-arm.c:21336 config/tc-arm.c:21344 +#: config/tc-arm.c:21352 config/tc-arm.c:21360 #, c-format msgid "invalid offset, value too big (0x%08lX)" msgstr "" -#: config/tc-arm.c:21239 +#: config/tc-arm.c:21401 msgid "invalid Hi register with immediate" msgstr "" -#: config/tc-arm.c:21255 +#: config/tc-arm.c:21417 msgid "invalid immediate for stack address calculation" msgstr "" -#: config/tc-arm.c:21263 +#: config/tc-arm.c:21425 #, c-format msgid "invalid immediate for address calculation (value = 0x%08lX)" msgstr "" -#: config/tc-arm.c:21293 +#: config/tc-arm.c:21455 #, c-format msgid "invalid immediate: %ld is out of range" msgstr "" -#: config/tc-arm.c:21305 +#: config/tc-arm.c:21467 #, c-format msgid "invalid shift value: %ld" msgstr "" -#: config/tc-arm.c:21384 +#: config/tc-arm.c:21546 #, c-format msgid "the offset 0x%08lX is not representable" msgstr "" -#: config/tc-arm.c:21424 +#: config/tc-arm.c:21586 #, c-format msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)" msgstr "" -#: config/tc-arm.c:21463 +#: config/tc-arm.c:21625 #, c-format msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)" msgstr "" -#: config/tc-arm.c:21503 +#: config/tc-arm.c:21665 #, c-format msgid "bad offset 0x%08lX (must be word-aligned)" msgstr "" -#: config/tc-arm.c:21508 +#: config/tc-arm.c:21670 #, c-format msgid "bad offset 0x%08lX (must be an 8-bit number of words)" msgstr "" -#: config/tc-arm.c:21539 config/tc-score.c:7397 +#: config/tc-arm.c:21701 config/tc-score.c:7392 #, c-format msgid "bad relocation fixup type (%d)" msgstr "" -#: config/tc-arm.c:21650 +#: config/tc-arm.c:21812 msgid "literal referenced across section boundary" msgstr "" -#: config/tc-arm.c:21717 +#: config/tc-arm.c:21879 msgid "internal relocation (type: IMMEDIATE) not fixed up" msgstr "" -#: config/tc-arm.c:21722 +#: config/tc-arm.c:21884 msgid "ADRL used for a symbol not defined in the same file" msgstr "" -#: config/tc-arm.c:21737 +#: config/tc-arm.c:21899 #, c-format msgid "undefined local label `%s'" msgstr "" -#: config/tc-arm.c:21743 +#: config/tc-arm.c:21905 msgid "internal_relocation (type: OFFSET_IMM) not fixed up" msgstr "" -#: config/tc-arm.c:21765 config/tc-cris.c:3986 config/tc-mcore.c:1926 +#: config/tc-arm.c:21927 config/tc-cris.c:3986 config/tc-mcore.c:1926 #: config/tc-microblaze.c:1833 config/tc-mmix.c:2867 config/tc-moxie.c:757 -#: config/tc-ns32k.c:2248 config/tc-score.c:7490 +#: config/tc-ns32k.c:2248 config/tc-score.c:7478 msgid "" msgstr "" -#: config/tc-arm.c:21768 config/tc-arm.c:21789 config/tc-score.c:7492 +#: config/tc-arm.c:21930 config/tc-arm.c:21951 config/tc-score.c:7480 #, c-format msgid "cannot represent %s relocation in this object file format" msgstr "" -#: config/tc-arm.c:22145 +#: config/tc-arm.c:22307 #, c-format msgid "%s: unexpected function type: %d" msgstr "" -#: config/tc-arm.c:22274 +#: config/tc-arm.c:22436 msgid "use of old and new-style options to set CPU type" msgstr "" -#: config/tc-arm.c:22284 +#: config/tc-arm.c:22446 msgid "use of old and new-style options to set FPU type" msgstr "" -#: config/tc-arm.c:22360 +#: config/tc-arm.c:22522 msgid "hard-float conflicts with specified fpu" msgstr "" -#: config/tc-arm.c:22547 +#: config/tc-arm.c:22709 msgid "generate PIC code" msgstr "" -#: config/tc-arm.c:22548 +#: config/tc-arm.c:22710 msgid "assemble Thumb code" msgstr "" -#: config/tc-arm.c:22549 +#: config/tc-arm.c:22711 msgid "support ARM/Thumb interworking" msgstr "" -#: config/tc-arm.c:22551 +#: config/tc-arm.c:22713 msgid "code uses 32-bit program counter" msgstr "" -#: config/tc-arm.c:22552 +#: config/tc-arm.c:22714 msgid "code uses 26-bit program counter" msgstr "" -#: config/tc-arm.c:22553 +#: config/tc-arm.c:22715 msgid "floating point args are in fp regs" msgstr "" -#: config/tc-arm.c:22555 +#: config/tc-arm.c:22717 msgid "re-entrant code" msgstr "" -#: config/tc-arm.c:22556 +#: config/tc-arm.c:22718 msgid "code is ATPCS conformant" msgstr "" -#: config/tc-arm.c:22557 +#: config/tc-arm.c:22719 msgid "assemble for big-endian" msgstr "" -#: config/tc-arm.c:22558 +#: config/tc-arm.c:22720 msgid "assemble for little-endian" msgstr "" #. These are recognized by the assembler, but have no affect on code. -#: config/tc-arm.c:22562 +#: config/tc-arm.c:22724 msgid "use frame pointer" msgstr "" -#: config/tc-arm.c:22563 +#: config/tc-arm.c:22725 msgid "use stack size checking" msgstr "" -#: config/tc-arm.c:22566 +#: config/tc-arm.c:22728 msgid "do not warn on use of deprecated feature" 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:22583 config/tc-arm.c:22584 +#: config/tc-arm.c:22745 config/tc-arm.c:22746 msgid "use -mcpu=arm1" msgstr "" -#: config/tc-arm.c:22585 config/tc-arm.c:22586 +#: config/tc-arm.c:22747 config/tc-arm.c:22748 msgid "use -mcpu=arm2" msgstr "" -#: config/tc-arm.c:22587 config/tc-arm.c:22588 +#: config/tc-arm.c:22749 config/tc-arm.c:22750 msgid "use -mcpu=arm250" msgstr "" -#: config/tc-arm.c:22589 config/tc-arm.c:22590 +#: config/tc-arm.c:22751 config/tc-arm.c:22752 msgid "use -mcpu=arm3" msgstr "" -#: config/tc-arm.c:22591 config/tc-arm.c:22592 +#: config/tc-arm.c:22753 config/tc-arm.c:22754 msgid "use -mcpu=arm6" msgstr "" -#: config/tc-arm.c:22593 config/tc-arm.c:22594 +#: config/tc-arm.c:22755 config/tc-arm.c:22756 msgid "use -mcpu=arm600" msgstr "" -#: config/tc-arm.c:22595 config/tc-arm.c:22596 +#: config/tc-arm.c:22757 config/tc-arm.c:22758 msgid "use -mcpu=arm610" msgstr "" -#: config/tc-arm.c:22597 config/tc-arm.c:22598 +#: config/tc-arm.c:22759 config/tc-arm.c:22760 msgid "use -mcpu=arm620" msgstr "" -#: config/tc-arm.c:22599 config/tc-arm.c:22600 +#: config/tc-arm.c:22761 config/tc-arm.c:22762 msgid "use -mcpu=arm7" msgstr "" -#: config/tc-arm.c:22601 config/tc-arm.c:22602 +#: config/tc-arm.c:22763 config/tc-arm.c:22764 msgid "use -mcpu=arm70" msgstr "" -#: config/tc-arm.c:22603 config/tc-arm.c:22604 +#: config/tc-arm.c:22765 config/tc-arm.c:22766 msgid "use -mcpu=arm700" msgstr "" -#: config/tc-arm.c:22605 config/tc-arm.c:22606 +#: config/tc-arm.c:22767 config/tc-arm.c:22768 msgid "use -mcpu=arm700i" msgstr "" -#: config/tc-arm.c:22607 config/tc-arm.c:22608 +#: config/tc-arm.c:22769 config/tc-arm.c:22770 msgid "use -mcpu=arm710" msgstr "" -#: config/tc-arm.c:22609 config/tc-arm.c:22610 +#: config/tc-arm.c:22771 config/tc-arm.c:22772 msgid "use -mcpu=arm710c" msgstr "" -#: config/tc-arm.c:22611 config/tc-arm.c:22612 +#: config/tc-arm.c:22773 config/tc-arm.c:22774 msgid "use -mcpu=arm720" msgstr "" -#: config/tc-arm.c:22613 config/tc-arm.c:22614 +#: config/tc-arm.c:22775 config/tc-arm.c:22776 msgid "use -mcpu=arm7d" msgstr "" -#: config/tc-arm.c:22615 config/tc-arm.c:22616 +#: config/tc-arm.c:22777 config/tc-arm.c:22778 msgid "use -mcpu=arm7di" msgstr "" -#: config/tc-arm.c:22617 config/tc-arm.c:22618 +#: config/tc-arm.c:22779 config/tc-arm.c:22780 msgid "use -mcpu=arm7m" msgstr "" -#: config/tc-arm.c:22619 config/tc-arm.c:22620 +#: config/tc-arm.c:22781 config/tc-arm.c:22782 msgid "use -mcpu=arm7dm" msgstr "" -#: config/tc-arm.c:22621 config/tc-arm.c:22622 +#: config/tc-arm.c:22783 config/tc-arm.c:22784 msgid "use -mcpu=arm7dmi" msgstr "" -#: config/tc-arm.c:22623 config/tc-arm.c:22624 +#: config/tc-arm.c:22785 config/tc-arm.c:22786 msgid "use -mcpu=arm7100" msgstr "" -#: config/tc-arm.c:22625 config/tc-arm.c:22626 +#: config/tc-arm.c:22787 config/tc-arm.c:22788 msgid "use -mcpu=arm7500" msgstr "" -#: config/tc-arm.c:22627 config/tc-arm.c:22628 +#: config/tc-arm.c:22789 config/tc-arm.c:22790 msgid "use -mcpu=arm7500fe" msgstr "" -#: config/tc-arm.c:22629 config/tc-arm.c:22630 config/tc-arm.c:22631 -#: config/tc-arm.c:22632 +#: config/tc-arm.c:22791 config/tc-arm.c:22792 config/tc-arm.c:22793 +#: config/tc-arm.c:22794 msgid "use -mcpu=arm7tdmi" msgstr "" -#: config/tc-arm.c:22633 config/tc-arm.c:22634 +#: config/tc-arm.c:22795 config/tc-arm.c:22796 msgid "use -mcpu=arm710t" msgstr "" -#: config/tc-arm.c:22635 config/tc-arm.c:22636 +#: config/tc-arm.c:22797 config/tc-arm.c:22798 msgid "use -mcpu=arm720t" msgstr "" -#: config/tc-arm.c:22637 config/tc-arm.c:22638 +#: config/tc-arm.c:22799 config/tc-arm.c:22800 msgid "use -mcpu=arm740t" msgstr "" -#: config/tc-arm.c:22639 config/tc-arm.c:22640 +#: config/tc-arm.c:22801 config/tc-arm.c:22802 msgid "use -mcpu=arm8" msgstr "" -#: config/tc-arm.c:22641 config/tc-arm.c:22642 +#: config/tc-arm.c:22803 config/tc-arm.c:22804 msgid "use -mcpu=arm810" msgstr "" -#: config/tc-arm.c:22643 config/tc-arm.c:22644 +#: config/tc-arm.c:22805 config/tc-arm.c:22806 msgid "use -mcpu=arm9" msgstr "" -#: config/tc-arm.c:22645 config/tc-arm.c:22646 +#: config/tc-arm.c:22807 config/tc-arm.c:22808 msgid "use -mcpu=arm9tdmi" msgstr "" -#: config/tc-arm.c:22647 config/tc-arm.c:22648 +#: config/tc-arm.c:22809 config/tc-arm.c:22810 msgid "use -mcpu=arm920" msgstr "" -#: config/tc-arm.c:22649 config/tc-arm.c:22650 +#: config/tc-arm.c:22811 config/tc-arm.c:22812 msgid "use -mcpu=arm940" msgstr "" -#: config/tc-arm.c:22651 +#: config/tc-arm.c:22813 msgid "use -mcpu=strongarm" msgstr "" -#: config/tc-arm.c:22653 +#: config/tc-arm.c:22815 msgid "use -mcpu=strongarm110" msgstr "" -#: config/tc-arm.c:22655 +#: config/tc-arm.c:22817 msgid "use -mcpu=strongarm1100" msgstr "" -#: config/tc-arm.c:22657 +#: config/tc-arm.c:22819 msgid "use -mcpu=strongarm1110" msgstr "" -#: config/tc-arm.c:22658 +#: config/tc-arm.c:22820 msgid "use -mcpu=xscale" msgstr "" -#: config/tc-arm.c:22659 +#: config/tc-arm.c:22821 msgid "use -mcpu=iwmmxt" msgstr "" -#: config/tc-arm.c:22660 +#: config/tc-arm.c:22822 msgid "use -mcpu=all" msgstr "" #. Architecture variants -- don't add any more to this list either. -#: config/tc-arm.c:22663 config/tc-arm.c:22664 +#: config/tc-arm.c:22825 config/tc-arm.c:22826 msgid "use -march=armv2" msgstr "" -#: config/tc-arm.c:22665 config/tc-arm.c:22666 +#: config/tc-arm.c:22827 config/tc-arm.c:22828 msgid "use -march=armv2a" msgstr "" -#: config/tc-arm.c:22667 config/tc-arm.c:22668 +#: config/tc-arm.c:22829 config/tc-arm.c:22830 msgid "use -march=armv3" msgstr "" -#: config/tc-arm.c:22669 config/tc-arm.c:22670 +#: config/tc-arm.c:22831 config/tc-arm.c:22832 msgid "use -march=armv3m" msgstr "" -#: config/tc-arm.c:22671 config/tc-arm.c:22672 +#: config/tc-arm.c:22833 config/tc-arm.c:22834 msgid "use -march=armv4" msgstr "" -#: config/tc-arm.c:22673 config/tc-arm.c:22674 +#: config/tc-arm.c:22835 config/tc-arm.c:22836 msgid "use -march=armv4t" msgstr "" -#: config/tc-arm.c:22675 config/tc-arm.c:22676 +#: config/tc-arm.c:22837 config/tc-arm.c:22838 msgid "use -march=armv5" msgstr "" -#: config/tc-arm.c:22677 config/tc-arm.c:22678 +#: config/tc-arm.c:22839 config/tc-arm.c:22840 msgid "use -march=armv5t" msgstr "" -#: config/tc-arm.c:22679 config/tc-arm.c:22680 +#: config/tc-arm.c:22841 config/tc-arm.c:22842 msgid "use -march=armv5te" msgstr "" #. Floating point variants -- don't add any more to this list either. -#: config/tc-arm.c:22683 +#: config/tc-arm.c:22845 msgid "use -mfpu=fpe" msgstr "" -#: config/tc-arm.c:22684 +#: config/tc-arm.c:22846 msgid "use -mfpu=fpa10" msgstr "" -#: config/tc-arm.c:22685 +#: config/tc-arm.c:22847 msgid "use -mfpu=fpa11" msgstr "" -#: config/tc-arm.c:22687 +#: config/tc-arm.c:22849 msgid "use either -mfpu=softfpa or -mfpu=softvfp" msgstr "" -#: config/tc-arm.c:23016 +#: config/tc-arm.c:23178 msgid "invalid architectural extension" msgstr "" -#: config/tc-arm.c:23049 +#: config/tc-arm.c:23211 msgid "must specify extensions to add before specifying those to remove" msgstr "" -#: config/tc-arm.c:23057 +#: config/tc-arm.c:23219 msgid "missing architectural extension" msgstr "" -#: config/tc-arm.c:23072 +#: config/tc-arm.c:23234 msgid "extension does not apply to the base architecture" msgstr "" -#: config/tc-arm.c:23095 +#: config/tc-arm.c:23257 #, c-format msgid "unknown architectural extension `%s'" msgstr "" -#: config/tc-arm.c:23097 +#: config/tc-arm.c:23259 msgid "architectural extensions must be specified in alphabetical order" msgstr "" -#: config/tc-arm.c:23129 +#: config/tc-arm.c:23291 #, c-format msgid "missing cpu name `%s'" msgstr "" -#: config/tc-arm.c:23155 config/tc-arm.c:23651 +#: config/tc-arm.c:23317 config/tc-arm.c:23813 #, c-format msgid "unknown cpu `%s'" msgstr "" -#: config/tc-arm.c:23173 +#: config/tc-arm.c:23335 #, c-format msgid "missing architecture name `%s'" msgstr "" -#: config/tc-arm.c:23190 config/tc-arm.c:23685 config/tc-arm.c:23716 -#: config/tc-arm.c:23767 config/tc-score.c:7727 +#: config/tc-arm.c:23352 config/tc-arm.c:23847 config/tc-arm.c:23878 +#: config/tc-arm.c:23929 config/tc-score.c:7715 #, c-format msgid "unknown architecture `%s'\n" msgstr "" -#: config/tc-arm.c:23206 config/tc-arm.c:23798 +#: config/tc-arm.c:23368 config/tc-arm.c:23960 #, c-format msgid "unknown floating point format `%s'\n" msgstr "" -#: config/tc-arm.c:23222 +#: config/tc-arm.c:23384 #, c-format msgid "unknown floating point abi `%s'\n" msgstr "" -#: config/tc-arm.c:23238 +#: config/tc-arm.c:23400 #, c-format msgid "unknown EABI `%s'\n" msgstr "" -#: config/tc-arm.c:23258 +#: config/tc-arm.c:23420 #, c-format msgid "unknown implicit IT mode `%s', should be arm, thumb, always, or never." msgstr "" -#: config/tc-arm.c:23268 +#: config/tc-arm.c:23430 msgid "\t assemble for CPU " msgstr "" -#: config/tc-arm.c:23270 +#: config/tc-arm.c:23432 msgid "\t assemble for architecture " msgstr "" -#: config/tc-arm.c:23272 +#: config/tc-arm.c:23434 msgid "\t assemble for FPU architecture " msgstr "" -#: config/tc-arm.c:23274 +#: config/tc-arm.c:23436 msgid "\t assemble for floating point ABI " msgstr "" -#: config/tc-arm.c:23277 +#: config/tc-arm.c:23439 msgid "\t\t assemble for eabi version " msgstr "" -#: config/tc-arm.c:23280 +#: config/tc-arm.c:23442 msgid "\t controls implicit insertion of IT instructions" msgstr "" -#: config/tc-arm.c:23324 config/tc-arm.c:23342 config/tc-arm.c:23362 +#: config/tc-arm.c:23486 config/tc-arm.c:23504 config/tc-arm.c:23524 #, c-format msgid "option `-%c%s' is deprecated: %s" msgstr "" -#: config/tc-arm.c:23382 +#: config/tc-arm.c:23544 #, c-format msgid " ARM-specific assembler options:\n" msgstr "" -#: config/tc-arm.c:23393 +#: config/tc-arm.c:23555 #, c-format msgid " -EB assemble code for a big-endian cpu\n" msgstr "" -#: config/tc-arm.c:23398 +#: config/tc-arm.c:23560 #, c-format msgid " -EL assemble code for a little-endian cpu\n" msgstr "" -#: config/tc-arm.c:23402 +#: config/tc-arm.c:23564 #, c-format msgid " --fix-v4bx Allow BX in ARMv4 code\n" msgstr "" -#: config/tc-arm.c:23749 +#: config/tc-arm.c:23911 #, c-format msgid "" "architectural extension `%s' is not allowed for the current base architecture" @@ -3639,7 +3726,7 @@ msgstr "" msgid "constant out of 8-bit range: %d" msgstr "" -#: config/tc-avr.c:688 config/tc-score.c:1200 read.c:3662 +#: config/tc-avr.c:688 config/tc-score.c:1199 read.c:3661 msgid "illegal expression" msgstr "" @@ -3738,8 +3825,8 @@ msgstr "" #. xgettext:c-format. #: config/tc-avr.c:1412 config/tc-bfin.c:833 config/tc-d10v.c:1466 -#: config/tc-d30v.c:1774 config/tc-mn10200.c:781 config/tc-mn10300.c:2170 -#: config/tc-msp430.c:2055 config/tc-or32.c:957 config/tc-ppc.c:6611 +#: config/tc-d30v.c:1774 config/tc-mn10200.c:782 config/tc-mn10300.c:2170 +#: config/tc-msp430.c:2055 config/tc-or32.c:957 config/tc-ppc.c:6581 #: config/tc-spu.c:879 config/tc-spu.c:1090 config/tc-v850.c:3000 #: config/tc-z80.c:2021 #, c-format @@ -3826,21 +3913,21 @@ msgstr "" msgid "rel too far BFD_RELOC_16" msgstr "" -#: config/tc-cr16.c:165 read.c:4422 +#: config/tc-cr16.c:165 read.c:4421 msgid "using a bit field width of zero" msgstr "" -#: config/tc-cr16.c:173 read.c:4430 +#: config/tc-cr16.c:173 read.c:4429 #, c-format msgid "field width \"%s\" too complex for a bitfield" msgstr "" -#: config/tc-cr16.c:182 read.c:4438 +#: config/tc-cr16.c:182 read.c:4437 #, c-format msgid "field width %lu too big to fit in %d bytes: truncated to %d bits" msgstr "" -#: config/tc-cr16.c:204 read.c:4460 +#: config/tc-cr16.c:204 read.c:4459 #, c-format msgid "field value \"%s\" too complex for a bitfield" msgstr "" @@ -3850,203 +3937,203 @@ msgstr "" msgid "Unknown register pair - index relative mode: `%d'" msgstr "" -#: config/tc-cr16.c:571 config/tc-crx.c:345 config/tc-mn10200.c:768 -#: write.c:990 +#: config/tc-cr16.c:570 config/tc-crx.c:345 config/tc-mn10200.c:769 +#: write.c:1003 #, c-format msgid "can't resolve `%s' {%s section} - `%s' {%s section}" msgstr "" -#: config/tc-cr16.c:603 config/tc-crx.c:361 +#: config/tc-cr16.c:600 config/tc-crx.c:361 #, c-format msgid "internal error: reloc %d (`%s') not supported by object file format" msgstr "" -#: config/tc-cr16.c:696 config/tc-i386.c:8723 config/tc-s390.c:1911 +#: config/tc-cr16.c:693 config/tc-i386.c:8839 config/tc-s390.c:1911 msgid "GOT already in symbol table" msgstr "" -#: config/tc-cr16.c:805 config/tc-cr16.c:828 config/tc-cris.c:1190 +#: config/tc-cr16.c:802 config/tc-cr16.c:825 config/tc-cris.c:1190 #: config/tc-crx.c:535 config/tc-crx.c:562 config/tc-crx.c:580 #: config/tc-pdp11.c:194 msgid "Virtual memory exhausted" msgstr "" -#: config/tc-cr16.c:813 config/tc-crx.c:572 config/tc-crx.c:591 -#: config/tc-m68k.c:4656 +#: config/tc-cr16.c:810 config/tc-crx.c:572 config/tc-crx.c:591 +#: config/tc-m68k.c:4656 config/tc-tilegx.c:300 config/tc-tilepro.c:242 #, c-format msgid "Internal Error: Can't hash %s: %s" msgstr "" -#: config/tc-cr16.c:839 config/tc-cris.c:1224 config/tc-crx.c:545 +#: config/tc-cr16.c:836 config/tc-cris.c:1224 config/tc-crx.c:545 #, c-format msgid "Can't hash `%s': %s\n" msgstr "" -#: config/tc-cr16.c:840 config/tc-cris.c:1225 config/tc-crx.c:546 +#: config/tc-cr16.c:837 config/tc-cris.c:1225 config/tc-crx.c:546 msgid "(unknown reason)" msgstr "" #. Missing or bad expr becomes absolute 0. -#: config/tc-cr16.c:892 config/tc-crx.c:619 +#: config/tc-cr16.c:889 config/tc-crx.c:619 #, c-format msgid "missing or invalid displacement expression `%s' taken as 0" msgstr "" -#: config/tc-cr16.c:942 +#: config/tc-cr16.c:939 #, c-format msgid "GOT bad expression with %s." msgstr "" -#: config/tc-cr16.c:1053 +#: config/tc-cr16.c:1050 #, c-format msgid "operand %d: illegal use expression: `%s`" msgstr "" -#: config/tc-cr16.c:1118 config/tc-crx.c:1127 +#: config/tc-cr16.c:1115 config/tc-crx.c:1127 #, c-format msgid "Unknown register: `%d'" msgstr "" #. Issue a error message when register is illegal. -#: config/tc-cr16.c:1126 config/tc-crx.c:1135 +#: config/tc-cr16.c:1123 config/tc-crx.c:1135 #, c-format msgid "Illegal register (`%s') in Instruction: `%s'" msgstr "" -#: config/tc-cr16.c:1197 config/tc-cr16.c:1272 config/tc-crx.c:757 +#: config/tc-cr16.c:1194 config/tc-cr16.c:1269 config/tc-crx.c:757 #: config/tc-crx.c:777 config/tc-crx.c:792 #, c-format msgid "Illegal register `%s' in Instruction `%s'" msgstr "" -#: config/tc-cr16.c:1225 config/tc-cr16.c:1236 +#: config/tc-cr16.c:1222 config/tc-cr16.c:1233 #, c-format msgid "Illegal register pair `%s' in Instruction `%s'" msgstr "" -#: config/tc-cr16.c:1261 config/tc-i960.c:835 +#: config/tc-cr16.c:1258 config/tc-i960.c:835 msgid "unmatched '['" msgstr "" -#: config/tc-cr16.c:1267 config/tc-i960.c:842 +#: config/tc-cr16.c:1264 config/tc-i960.c:842 msgid "garbage after index spec ignored" msgstr "" -#: config/tc-cr16.c:1415 config/tc-crx.c:936 +#: config/tc-cr16.c:1412 config/tc-crx.c:936 #, c-format msgid "Illegal operands (whitespace): `%s'" msgstr "" -#: config/tc-cr16.c:1427 config/tc-cr16.c:1434 config/tc-cr16.c:1451 +#: config/tc-cr16.c:1424 config/tc-cr16.c:1431 config/tc-cr16.c:1448 #: config/tc-crx.c:948 config/tc-crx.c:955 config/tc-crx.c:972 #: config/tc-crx.c:1764 #, c-format msgid "Missing matching brackets : `%s'" msgstr "" -#: config/tc-cr16.c:1483 config/tc-crx.c:998 +#: config/tc-cr16.c:1480 config/tc-crx.c:998 #, c-format msgid "Unknown exception: `%s'" msgstr "" -#: config/tc-cr16.c:1570 config/tc-crx.c:1094 +#: config/tc-cr16.c:1565 config/tc-crx.c:1094 #, c-format msgid "Illegal `cinv' parameter: `%c'" msgstr "" -#: config/tc-cr16.c:1592 config/tc-cr16.c:1631 +#: config/tc-cr16.c:1586 config/tc-cr16.c:1625 #, c-format msgid "Unknown register pair: `%d'" msgstr "" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1600 +#: config/tc-cr16.c:1594 #, c-format msgid "Illegal register pair (`%s') in Instruction: `%s'" msgstr "" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1639 +#: config/tc-cr16.c:1633 #, c-format msgid "Illegal index register pair (`%s') in Instruction: `%s'" msgstr "" -#: config/tc-cr16.c:1678 +#: config/tc-cr16.c:1672 #, c-format msgid "Unknown processor register : `%d'" msgstr "" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1686 +#: config/tc-cr16.c:1680 #, c-format msgid "Illegal processor register (`%s') in Instruction: `%s'" msgstr "" -#: config/tc-cr16.c:1734 +#: config/tc-cr16.c:1728 #, c-format msgid "Unknown processor register (32 bit) : `%d'" msgstr "" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1742 +#: config/tc-cr16.c:1736 #, c-format msgid "Illegal 32 bit - processor register (`%s') in Instruction: `%s'" msgstr "" -#: config/tc-cr16.c:2106 config/tc-crx.c:1662 config/tc-crx.c:1679 +#: config/tc-cr16.c:2100 config/tc-crx.c:1662 config/tc-crx.c:1679 #, c-format msgid "Same src/dest register is used (`r%d'), result is undefined" msgstr "" -#: config/tc-cr16.c:2127 +#: config/tc-cr16.c:2121 msgid "RA register is saved twice." msgstr "" -#: config/tc-cr16.c:2131 +#: config/tc-cr16.c:2125 #, c-format msgid "`%s' Illegal use of registers." msgstr "" -#: config/tc-cr16.c:2145 +#: config/tc-cr16.c:2139 #, c-format msgid "`%s' Illegal count-register combination." msgstr "" -#: config/tc-cr16.c:2151 +#: config/tc-cr16.c:2145 #, c-format msgid "`%s' Illegal use of register." msgstr "" -#: config/tc-cr16.c:2160 config/tc-crx.c:1671 +#: config/tc-cr16.c:2154 config/tc-crx.c:1671 #, c-format msgid "`%s' has undefined result" msgstr "" -#: config/tc-cr16.c:2168 +#: config/tc-cr16.c:2162 #, c-format msgid "Same src/dest register is used (`r%d'),result is undefined" msgstr "" -#: config/tc-cr16.c:2339 config/tc-crx.c:1576 +#: config/tc-cr16.c:2333 config/tc-crx.c:1576 msgid "Incorrect number of operands" msgstr "" -#: config/tc-cr16.c:2341 config/tc-crx.c:1578 +#: config/tc-cr16.c:2335 config/tc-crx.c:1578 #, c-format msgid "Illegal type of operand (arg %d)" msgstr "" -#: config/tc-cr16.c:2347 config/tc-crx.c:1584 +#: config/tc-cr16.c:2341 config/tc-crx.c:1584 #, c-format msgid "Operand out of range (arg %d)" msgstr "" -#: config/tc-cr16.c:2350 config/tc-crx.c:1587 +#: config/tc-cr16.c:2344 config/tc-crx.c:1587 #, c-format msgid "Operand has odd displacement (arg %d)" msgstr "" -#: config/tc-cr16.c:2353 config/tc-cr16.c:2384 config/tc-crx.c:1600 +#: config/tc-cr16.c:2347 config/tc-cr16.c:2378 config/tc-crx.c:1600 #: config/tc-crx.c:1631 #, c-format msgid "Illegal operand (arg %d)" @@ -4054,15 +4141,15 @@ msgstr "" #. Give an error if a frag containing code is not aligned to a 2-byte #. boundary. -#: config/tc-cr16.c:2486 config/tc-cr16.h:73 config/tc-crx.c:1953 +#: config/tc-cr16.c:2480 config/tc-cr16.h:73 config/tc-crx.c:1953 #: config/tc-crx.h:76 msgid "instruction address is not a multiple of 2" msgstr "" -#: config/tc-cr16.c:2563 config/tc-cris.c:1538 config/tc-cris.c:1546 +#: config/tc-cr16.c:2555 config/tc-cris.c:1538 config/tc-cris.c:1546 #: config/tc-crx.c:1989 config/tc-dlx.c:685 config/tc-hppa.c:3244 #: config/tc-hppa.c:3251 config/tc-i860.c:491 config/tc-i860.c:508 -#: config/tc-i860.c:988 config/tc-sparc.c:1410 config/tc-sparc.c:1418 +#: config/tc-i860.c:988 config/tc-sparc.c:1518 config/tc-sparc.c:1526 #, c-format msgid "Unknown opcode: `%s'" msgstr "" @@ -4160,7 +4247,7 @@ msgstr "" #. We've come to the end of instructions with this #. opcode, so it must be an error. -#: config/tc-cris.c:2079 config/tc-mips.c:10425 config/tc-mips.c:10430 +#: config/tc-cris.c:2079 config/tc-mips.c:13126 msgid "Illegal operands" msgstr "" @@ -4755,14 +4842,14 @@ msgstr "" msgid ".endfunc missing for previous .proc" msgstr "" -#: config/tc-dlx.c:291 config/tc-i860.c:227 config/tc-mips.c:1927 +#: config/tc-dlx.c:291 config/tc-i860.c:227 config/tc-mips.c:2321 #, c-format msgid "internal error: can't hash `%s': %s\n" msgstr "" #. Probably a memory allocation problem? Give up now. -#: config/tc-dlx.c:298 config/tc-hppa.c:8354 config/tc-mips.c:1930 -#: config/tc-mips.c:1984 config/tc-or32.c:211 config/tc-sparc.c:860 +#: config/tc-dlx.c:298 config/tc-hppa.c:8354 config/tc-mips.c:2324 +#: config/tc-mips.c:2416 config/tc-or32.c:211 config/tc-sparc.c:888 msgid "Broken assembler. No assembly attempted." msgstr "" @@ -4832,6 +4919,40 @@ msgstr "" msgid "Invalid expression after # number\n" msgstr "" +#: config/tc-epiphany.c:147 +#, c-format +msgid "EPIPHANY specific command line options:\n" +msgstr "" + +#: config/tc-epiphany.c:386 +msgid "register number too large for push/pop" +msgstr "" + +#: config/tc-epiphany.c:390 +msgid "register is out of order" +msgstr "" + +#: config/tc-epiphany.c:401 config/tc-m68k.c:6037 config/tc-m68k.c:6066 +msgid "bad register list" +msgstr "" + +#: config/tc-epiphany.c:404 +msgid "malformed reglist in push/pop" +msgstr "" + +#. Checks for behavioral restrictions on LD/ST instructions. +#: config/tc-epiphany.c:505 +msgid "destination register modified by displacement-post-modified address" +msgstr "" + +#: config/tc-epiphany.c:506 +msgid "ldrd/strd requires even:odd register pair" +msgstr "" + +#: config/tc-epiphany.c:824 config/tc-m32r.c:1789 +msgid "Addend to unresolved symbol not on word boundary." +msgstr "" + #: config/tc-fr30.c:82 #, c-format msgid " FR30 specific command line options:\n" @@ -5124,7 +5245,7 @@ msgstr "" msgid "operand/size mis-match" msgstr "" -#: config/tc-h8300.c:1952 config/tc-mips.c:10489 config/tc-sh.c:2971 +#: config/tc-h8300.c:1952 config/tc-mips.c:13197 config/tc-sh.c:2971 #: config/tc-sh64.c:2795 config/tc-z8k.c:1226 msgid "unknown opcode" msgstr "" @@ -5587,7 +5708,7 @@ msgstr "" msgid "-R option not supported on this target." msgstr "" -#: config/tc-hppa.c:8335 config/tc-sparc.c:815 config/tc-sparc.c:852 +#: config/tc-hppa.c:8335 config/tc-sparc.c:843 config/tc-sparc.c:880 #, c-format msgid "Internal error: can't hash `%s': %s\n" msgstr "" @@ -5718,7 +5839,7 @@ msgstr "" msgid "wrong number of operands" msgstr "" -#: config/tc-i370.c:1928 config/tc-mn10200.c:898 config/tc-mn10300.c:1251 +#: config/tc-i370.c:1928 config/tc-mn10200.c:899 config/tc-mn10300.c:1251 #: config/tc-ppc.c:2405 config/tc-s390.c:1590 config/tc-v850.c:2024 #, c-format msgid "Unrecognized opcode: `%s'" @@ -5738,527 +5859,539 @@ msgstr "" msgid "Internal Error: bad instruction length" msgstr "" -#: config/tc-i386.c:1873 +#: config/tc-i386.c:1885 #, c-format msgid "%s shortened to %s" msgstr "" -#: config/tc-i386.c:1959 +#: config/tc-i386.c:1971 msgid "same type of prefix used twice" msgstr "" -#: config/tc-i386.c:1986 +#: config/tc-i386.c:1998 #, c-format msgid "64bit mode not supported on `%s'." msgstr "" -#: config/tc-i386.c:1995 +#: config/tc-i386.c:2007 #, c-format msgid "32bit mode not supported on `%s'." msgstr "" -#: config/tc-i386.c:2035 +#: config/tc-i386.c:2047 msgid "bad argument to syntax directive." msgstr "" -#: config/tc-i386.c:2084 +#: config/tc-i386.c:2096 msgid "bad argument to sse_check directive." msgstr "" -#: config/tc-i386.c:2088 +#: config/tc-i386.c:2100 msgid "missing argument for sse_check directive" msgstr "" -#: config/tc-i386.c:2118 +#: config/tc-i386.c:2135 #, c-format msgid "`%s' is not supported on `%s'" msgstr "" -#: config/tc-i386.c:2192 +#: config/tc-i386.c:2209 #, c-format msgid "no such architecture: `%s'" msgstr "" -#: config/tc-i386.c:2197 +#: config/tc-i386.c:2214 msgid "missing cpu architecture" msgstr "" -#: config/tc-i386.c:2211 +#: config/tc-i386.c:2228 #, c-format msgid "no such architecture modifier: `%s'" msgstr "" -#: config/tc-i386.c:2226 config/tc-i386.c:2242 +#: config/tc-i386.c:2243 config/tc-i386.c:2266 msgid "Intel L1OM is 64bit ELF only" msgstr "" -#: config/tc-i386.c:2253 config/tc-i386.c:8600 +#: config/tc-i386.c:2250 config/tc-i386.c:2273 +msgid "Intel K1OM is 64bit ELF only" +msgstr "" + +#: config/tc-i386.c:2284 config/tc-i386.c:8711 msgid "unknown architecture" msgstr "" -#: config/tc-i386.c:2287 config/tc-i386.c:2309 +#: config/tc-i386.c:2318 config/tc-i386.c:2340 #, c-format msgid "internal Error: Can't hash %s: %s" msgstr "" -#: config/tc-i386.c:2604 +#: config/tc-i386.c:2635 #, c-format msgid "unknown relocation (%u)" msgstr "" -#: config/tc-i386.c:2606 +#: config/tc-i386.c:2637 #, c-format msgid "%u-byte relocation cannot be applied to %u-byte field" msgstr "" -#: config/tc-i386.c:2610 +#: config/tc-i386.c:2641 msgid "non-pc-relative relocation for pc-relative field" msgstr "" -#: config/tc-i386.c:2615 +#: config/tc-i386.c:2646 msgid "relocated field and relocation type differ in signedness" msgstr "" -#: config/tc-i386.c:2624 +#: config/tc-i386.c:2655 msgid "there are no unsigned pc-relative relocations" msgstr "" -#: config/tc-i386.c:2632 +#: config/tc-i386.c:2663 #, c-format msgid "cannot do %u byte pc-relative relocation" msgstr "" -#: config/tc-i386.c:2649 +#: config/tc-i386.c:2680 #, c-format msgid "cannot do %s %u byte relocation" msgstr "" -#: config/tc-i386.c:2933 +#: config/tc-i386.c:2964 #, c-format msgid "can't use register '%s%s' as operand %d in '%s'." msgstr "" -#: config/tc-i386.c:3045 +#: config/tc-i386.c:3076 #, c-format msgid "SSE instruction `%s' is used" msgstr "" -#: config/tc-i386.c:3059 config/tc-i386.c:4489 +#: config/tc-i386.c:3090 config/tc-i386.c:4562 #, c-format msgid "ambiguous operand size for `%s'" msgstr "" -#: config/tc-i386.c:3076 +#: config/tc-i386.c:3107 msgid "expecting lockable instruction after `lock'" msgstr "" #. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc. -#: config/tc-i386.c:3127 +#: config/tc-i386.c:3158 #, c-format msgid "translating to `%sp'" msgstr "" -#: config/tc-i386.c:3182 +#: config/tc-i386.c:3213 #, c-format msgid "can't encode register '%s%s' in an instruction requiring REX prefix." msgstr "" -#: config/tc-i386.c:3225 config/tc-i386.c:3357 +#: config/tc-i386.c:3256 config/tc-i386.c:3388 #, c-format msgid "no such instruction: `%s'" msgstr "" -#: config/tc-i386.c:3236 config/tc-i386.c:3390 +#: config/tc-i386.c:3267 config/tc-i386.c:3421 #, c-format msgid "invalid character %s in mnemonic" msgstr "" -#: config/tc-i386.c:3243 +#: config/tc-i386.c:3274 msgid "expecting prefix; got nothing" msgstr "" -#: config/tc-i386.c:3245 +#: config/tc-i386.c:3276 msgid "expecting mnemonic; got nothing" msgstr "" -#: config/tc-i386.c:3260 config/tc-i386.c:3408 +#: config/tc-i386.c:3291 config/tc-i386.c:3439 #, c-format msgid "`%s' is only supported in 64-bit mode" msgstr "" -#: config/tc-i386.c:3261 config/tc-i386.c:3407 +#: config/tc-i386.c:3292 config/tc-i386.c:3438 #, c-format msgid "`%s' is not supported in 64-bit mode" msgstr "" -#: config/tc-i386.c:3273 +#: config/tc-i386.c:3304 #, c-format msgid "redundant %s prefix" msgstr "" -#: config/tc-i386.c:3414 +#: config/tc-i386.c:3445 #, c-format msgid "`%s' is not supported on `%s%s'" msgstr "" -#: config/tc-i386.c:3425 +#: config/tc-i386.c:3456 msgid "use .code16 to ensure correct addressing mode" msgstr "" -#: config/tc-i386.c:3438 +#: config/tc-i386.c:3469 #, c-format msgid "expecting string instruction after `%s'" msgstr "" -#: config/tc-i386.c:3470 +#: config/tc-i386.c:3501 #, c-format msgid "invalid character %s before operand %d" msgstr "" -#: config/tc-i386.c:3484 +#: config/tc-i386.c:3515 #, c-format msgid "unbalanced parenthesis in operand %d." msgstr "" -#: config/tc-i386.c:3487 +#: config/tc-i386.c:3518 #, c-format msgid "unbalanced brackets in operand %d." msgstr "" -#: config/tc-i386.c:3496 +#: config/tc-i386.c:3527 #, c-format msgid "invalid character %s in operand %d" msgstr "" -#: config/tc-i386.c:3524 +#: config/tc-i386.c:3555 #, c-format msgid "spurious operands; (%d operands/instruction max)" msgstr "" -#: config/tc-i386.c:3547 +#: config/tc-i386.c:3578 msgid "expecting operand after ','; got nothing" msgstr "" -#: config/tc-i386.c:3552 +#: config/tc-i386.c:3583 msgid "expecting operand before ','; got nothing" msgstr "" -#: config/tc-i386.c:4190 +#: config/tc-i386.c:4257 msgid "operand size mismatch" msgstr "" -#: config/tc-i386.c:4193 +#: config/tc-i386.c:4260 msgid "operand type mismatch" msgstr "" -#: config/tc-i386.c:4196 +#: config/tc-i386.c:4263 msgid "register type mismatch" msgstr "" -#: config/tc-i386.c:4199 +#: config/tc-i386.c:4266 msgid "number of operands mismatch" msgstr "" -#: config/tc-i386.c:4202 +#: config/tc-i386.c:4269 msgid "invalid instruction suffix" msgstr "" -#: config/tc-i386.c:4205 +#: config/tc-i386.c:4272 msgid "Imm4 isn't the first operand" msgstr "" -#: config/tc-i386.c:4208 +#: config/tc-i386.c:4275 msgid "only supported with old gcc" msgstr "" -#: config/tc-i386.c:4211 +#: config/tc-i386.c:4278 msgid "unsupported with Intel mnemonic" msgstr "" -#: config/tc-i386.c:4214 +#: config/tc-i386.c:4281 msgid "unsupported syntax" msgstr "" -#: config/tc-i386.c:4217 +#: config/tc-i386.c:4284 msgid "unsupported" msgstr "" -#: config/tc-i386.c:4220 +#: config/tc-i386.c:4287 +msgid "invalid VSIB address" +msgstr "" + +#: config/tc-i386.c:4290 +msgid "unsupported vector index register" +msgstr "" + +#: config/tc-i386.c:4293 #, c-format msgid "%s for `%s'" msgstr "" -#: config/tc-i386.c:4231 +#: config/tc-i386.c:4304 #, 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:4239 +#: config/tc-i386.c:4312 #, c-format msgid "stand-alone `%s' prefix" msgstr "" -#: config/tc-i386.c:4273 config/tc-i386.c:4289 +#: config/tc-i386.c:4346 config/tc-i386.c:4362 #, c-format msgid "`%s' operand %d must use `%ses' segment" msgstr "" #. We have to know the operand size for crc32. -#: config/tc-i386.c:4343 +#: config/tc-i386.c:4416 #, c-format msgid "ambiguous memory operand size for `%s`" msgstr "" -#: config/tc-i386.c:4462 +#: config/tc-i386.c:4535 msgid "" "no instruction mnemonic suffix given and no register operands; can't size " "instruction" msgstr "" -#: config/tc-i386.c:4599 config/tc-i386.c:4674 config/tc-i386.c:4703 -#: config/tc-i386.c:4749 config/tc-i386.c:4787 +#: config/tc-i386.c:4672 config/tc-i386.c:4747 config/tc-i386.c:4776 +#: config/tc-i386.c:4822 config/tc-i386.c:4860 #, c-format msgid "incorrect register `%s%s' used with `%c' suffix" msgstr "" -#: config/tc-i386.c:4607 config/tc-i386.c:4681 config/tc-i386.c:4794 +#: config/tc-i386.c:4680 config/tc-i386.c:4754 config/tc-i386.c:4867 #, c-format msgid "using `%s%s' instead of `%s%s' due to `%c' suffix" msgstr "" -#: config/tc-i386.c:4633 config/tc-i386.c:4657 config/tc-i386.c:4725 -#: config/tc-i386.c:4770 +#: config/tc-i386.c:4706 config/tc-i386.c:4730 config/tc-i386.c:4798 +#: config/tc-i386.c:4843 #, c-format msgid "`%s%s' not allowed with `%s%c'" msgstr "" -#: config/tc-i386.c:4859 +#: config/tc-i386.c:4932 msgid "no instruction mnemonic suffix given; can't determine immediate size" msgstr "" -#: config/tc-i386.c:4895 +#: config/tc-i386.c:4968 #, c-format msgid "the last operand of `%s' must be `%s%s'" msgstr "" -#: config/tc-i386.c:4898 +#: config/tc-i386.c:4971 #, c-format msgid "the first operand of `%s' must be `%s%s'" msgstr "" -#: config/tc-i386.c:5046 +#: config/tc-i386.c:5119 #, c-format msgid "you can't `pop %scs'" msgstr "" #. Reversed arguments on faddp, fsubp, etc. -#: config/tc-i386.c:5075 +#: config/tc-i386.c:5148 #, c-format msgid "translating to `%s %s%s,%s%s'" msgstr "" #. Extraneous `l' suffix on fp insn. -#: config/tc-i386.c:5082 +#: config/tc-i386.c:5155 #, c-format msgid "translating to `%s %s%s'" msgstr "" -#: config/tc-i386.c:5110 +#: config/tc-i386.c:5183 #, c-format msgid "segment override on `%s' is ineffectual" msgstr "" -#: config/tc-i386.c:5807 config/tc-i386.c:5901 config/tc-i386.c:5946 +#: config/tc-i386.c:5923 config/tc-i386.c:6017 config/tc-i386.c:6062 msgid "skipping prefixes on this instruction" msgstr "" -#: config/tc-i386.c:5966 +#: config/tc-i386.c:6082 msgid "16-bit jump out of range" msgstr "" -#: config/tc-i386.c:5975 +#: config/tc-i386.c:6091 #, c-format msgid "can't handle non absolute segment in `%s'" msgstr "" -#: config/tc-i386.c:6555 +#: config/tc-i386.c:6671 #, c-format msgid "@%s reloc is not supported with %d-bit output format" msgstr "" -#: config/tc-i386.c:6603 +#: config/tc-i386.c:6719 #, c-format msgid "missing or invalid expression `%s'" msgstr "" -#: config/tc-i386.c:6661 +#: config/tc-i386.c:6776 #, c-format msgid "at most %d immediate operands are allowed" msgstr "" -#: config/tc-i386.c:6683 config/tc-i386.c:6930 +#: config/tc-i386.c:6798 config/tc-i386.c:7045 #, c-format msgid "junk `%s' after expression" msgstr "" -#: config/tc-i386.c:6704 +#: config/tc-i386.c:6819 #, c-format msgid "missing or invalid immediate expression `%s'" msgstr "" -#: config/tc-i386.c:6727 config/tc-i386.c:7020 +#: config/tc-i386.c:6842 config/tc-i386.c:7135 #, c-format msgid "unimplemented segment %s in operand" msgstr "" -#: config/tc-i386.c:6734 +#: config/tc-i386.c:6849 #, c-format msgid "illegal immediate register operand %s" msgstr "" -#: config/tc-i386.c:6782 +#: config/tc-i386.c:6897 #, c-format msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'" msgstr "" -#: config/tc-i386.c:6791 +#: config/tc-i386.c:6906 #, c-format msgid "scale factor of %d without an index register" msgstr "" -#: config/tc-i386.c:6813 +#: config/tc-i386.c:6928 #, c-format msgid "at most %d displacement operands are allowed" msgstr "" -#: config/tc-i386.c:6986 +#: config/tc-i386.c:7101 #, c-format msgid "missing or invalid displacement expression `%s'" msgstr "" -#: config/tc-i386.c:7003 +#: config/tc-i386.c:7118 #, c-format msgid "0x%lx out range of signed 32bit displacement" msgstr "" -#: config/tc-i386.c:7107 +#: config/tc-i386.c:7222 #, c-format msgid "`%s' is not valid here (expected `%c%s%s%c')" msgstr "" -#: config/tc-i386.c:7187 +#: config/tc-i386.c:7306 #, c-format msgid "`%s' is not a valid %s expression" msgstr "" -#: config/tc-i386.c:7192 +#: config/tc-i386.c:7311 #, c-format msgid "`%s' is not a valid %s-bit %s expression" msgstr "" -#: config/tc-i386.c:7273 +#: config/tc-i386.c:7392 #, c-format msgid "bad memory operand `%s'" msgstr "" -#: config/tc-i386.c:7288 +#: config/tc-i386.c:7407 #, c-format msgid "junk `%s' after register" msgstr "" -#: config/tc-i386.c:7301 config/tc-i386.c:7417 config/tc-i386.c:7458 +#: config/tc-i386.c:7420 config/tc-i386.c:7536 config/tc-i386.c:7577 #, c-format msgid "bad register name `%s'" msgstr "" -#: config/tc-i386.c:7309 +#: config/tc-i386.c:7428 msgid "immediate operand illegal with absolute jump" msgstr "" -#: config/tc-i386.c:7331 +#: config/tc-i386.c:7450 #, c-format msgid "too many memory references for `%s'" msgstr "" -#: config/tc-i386.c:7409 +#: config/tc-i386.c:7528 #, c-format msgid "expecting `,' or `)' after index register in `%s'" msgstr "" -#: config/tc-i386.c:7434 +#: config/tc-i386.c:7553 #, c-format msgid "expecting `)' after scale factor in `%s'" msgstr "" -#: config/tc-i386.c:7442 +#: config/tc-i386.c:7561 #, c-format msgid "expecting index register or scale factor after `,'; got '%c'" msgstr "" -#: config/tc-i386.c:7450 +#: config/tc-i386.c:7569 #, c-format msgid "expecting `,' or `)' after base register in `%s'" msgstr "" #. It's not a memory operand; argh! -#: config/tc-i386.c:7494 +#: config/tc-i386.c:7613 #, c-format msgid "invalid char %s beginning operand %d `%s'" msgstr "" -#: config/tc-i386.c:7676 +#: config/tc-i386.c:7791 msgid "long jump required" msgstr "" -#: config/tc-i386.c:7731 +#: config/tc-i386.c:7846 msgid "jump target out of range" msgstr "" -#: config/tc-i386.c:8249 +#: config/tc-i386.c:8360 msgid "no compiled in support for x86_64" msgstr "" -#: config/tc-i386.c:8269 +#: config/tc-i386.c:8380 msgid "no compiled in support for 32bit x86_64" msgstr "" -#: config/tc-i386.c:8273 +#: config/tc-i386.c:8384 msgid "32bit x86_64 is only supported for ELF" msgstr "" -#: config/tc-i386.c:8303 config/tc-i386.c:8359 +#: config/tc-i386.c:8414 config/tc-i386.c:8470 #, c-format msgid "invalid -march= option: `%s'" msgstr "" -#: config/tc-i386.c:8368 config/tc-i386.c:8380 +#: config/tc-i386.c:8479 config/tc-i386.c:8491 #, c-format msgid "invalid -mtune= option: `%s'" msgstr "" -#: config/tc-i386.c:8389 +#: config/tc-i386.c:8500 #, c-format msgid "invalid -mmnemonic= option: `%s'" msgstr "" -#: config/tc-i386.c:8398 +#: config/tc-i386.c:8509 #, c-format msgid "invalid -msyntax= option: `%s'" msgstr "" -#: config/tc-i386.c:8425 +#: config/tc-i386.c:8536 #, c-format msgid "invalid -msse-check= option: `%s'" msgstr "" -#: config/tc-i386.c:8434 +#: config/tc-i386.c:8545 #, c-format msgid "invalid -mavxscalar= option: `%s'" msgstr "" -#: config/tc-i386.c:8526 +#: config/tc-i386.c:8637 #, c-format msgid "" " -Q ignored\n" @@ -6266,34 +6399,34 @@ msgid "" " -k ignored\n" msgstr "" -#: config/tc-i386.c:8531 +#: config/tc-i386.c:8642 #, c-format msgid "" " -n Do not optimize code alignment\n" " -q quieten some warnings\n" msgstr "" -#: config/tc-i386.c:8535 +#: config/tc-i386.c:8646 #, c-format msgid " -s ignored\n" msgstr "" -#: config/tc-i386.c:8540 +#: config/tc-i386.c:8651 #, c-format msgid " --32/--64/--x32 generate 32bit/64bit/x32 code\n" msgstr "" -#: config/tc-i386.c:8544 +#: config/tc-i386.c:8655 #, c-format msgid " --divide do not treat `/' as a comment character\n" msgstr "" -#: config/tc-i386.c:8547 +#: config/tc-i386.c:8658 #, c-format msgid " --divide ignored\n" msgstr "" -#: config/tc-i386.c:8550 +#: config/tc-i386.c:8661 #, c-format msgid "" " -march=CPU[,+EXTENSION...]\n" @@ -6301,29 +6434,29 @@ msgid "" "of:\n" msgstr "" -#: config/tc-i386.c:8554 +#: config/tc-i386.c:8665 #, c-format msgid " EXTENSION is combination of:\n" msgstr "" -#: config/tc-i386.c:8557 +#: config/tc-i386.c:8668 #, c-format msgid " -mtune=CPU optimize for CPU, CPU is one of:\n" msgstr "" -#: config/tc-i386.c:8560 +#: config/tc-i386.c:8671 #, c-format msgid " -msse2avx encode SSE instructions with VEX prefix\n" msgstr "" -#: config/tc-i386.c:8562 +#: config/tc-i386.c:8673 #, c-format msgid "" " -msse-check=[none|error|warning]\n" " check SSE instructions\n" msgstr "" -#: config/tc-i386.c:8565 +#: config/tc-i386.c:8676 #, c-format msgid "" " -mavxscalar=[128|256] encode scalar AVX instructions with specific " @@ -6331,71 +6464,71 @@ msgid "" " length\n" msgstr "" -#: config/tc-i386.c:8568 +#: config/tc-i386.c:8679 #, c-format msgid " -mmnemonic=[att|intel] use AT&T/Intel mnemonic\n" msgstr "" -#: config/tc-i386.c:8570 +#: config/tc-i386.c:8681 #, c-format msgid " -msyntax=[att|intel] use AT&T/Intel syntax\n" msgstr "" -#: config/tc-i386.c:8572 +#: config/tc-i386.c:8683 #, c-format msgid " -mindex-reg support pseudo index registers\n" msgstr "" -#: config/tc-i386.c:8574 +#: config/tc-i386.c:8685 #, c-format msgid " -mnaked-reg don't require `%%' prefix for registers\n" msgstr "" -#: config/tc-i386.c:8576 +#: config/tc-i386.c:8687 #, c-format msgid " -mold-gcc support old (<= 2.8.1) versions of gcc\n" msgstr "" -#: config/tc-i386.c:8650 +#: config/tc-i386.c:8761 msgid "Intel L1OM is 64bit only" msgstr "" -#: config/tc-i386.c:8872 +#: config/tc-i386.c:8767 +msgid "Intel K1OM is 64bit only" +msgstr "" + +#: config/tc-i386.c:8984 #, c-format msgid "can not do %d byte pc-relative relocation" msgstr "" -#: config/tc-i386.c:8890 +#: config/tc-i386.c:9002 #, c-format msgid "can not do %d byte relocation" msgstr "" -#: config/tc-i386.c:8959 +#: config/tc-i386.c:9070 #, c-format msgid "cannot represent relocation type %s in x32 mode" msgstr "" -#: config/tc-i386.c:8994 config/tc-s390.c:2346 +#: config/tc-i386.c:9105 config/tc-s390.c:2346 #, c-format msgid "cannot represent relocation type %s" msgstr "" -#: config/tc-i386.c:9101 +#: config/tc-i386.c:9222 msgid "bad .section directive: want a,l,w,x,M,S,G,T in string" msgstr "" -#: config/tc-i386.c:9104 +#: config/tc-i386.c:9225 msgid "bad .section directive: want a,w,x,M,S,G,T in string" msgstr "" -#: config/tc-i386.c:9123 +#: config/tc-i386.c:9244 msgid ".largecomm supported only in 64bit mode, producing .comm" msgstr "" -#: config/tc-i386.c:9178 read.c:3859 -msgid "unexpected `\"' in expression" -msgstr "" - #: config/tc-i860.c:122 msgid "Directive .dual available only with -mintel-syntax option" msgstr "" @@ -6417,7 +6550,7 @@ msgid "Defective assembler. No assembly attempted." msgstr "" #: config/tc-i860.c:393 config/tc-i860.c:939 config/tc-m68k.c:3914 -#: config/tc-m68k.c:3946 config/tc-sparc.c:2697 +#: config/tc-m68k.c:3946 config/tc-sparc.c:2824 msgid "failed sanity check." msgstr "" @@ -7286,7 +7419,7 @@ msgstr "" msgid "Inserting \"%s\" into constant hash table failed: %s" msgstr "" -#: config/tc-ia64.c:7332 config/tc-mips.c:1916 +#: config/tc-ia64.c:7332 config/tc-mips.c:2310 msgid "Could not set architecture and machine" msgstr "" @@ -7348,7 +7481,8 @@ msgid "Expected '('" msgstr "" #: config/tc-ia64.c:7761 config/tc-pdp11.c:448 config/tc-pdp11.c:512 -#: config/tc-pdp11.c:546 config/tc-xstormy16.c:155 +#: config/tc-pdp11.c:546 config/tc-tilegx.c:991 config/tc-tilepro.c:860 +#: config/tc-xstormy16.c:155 msgid "Missing ')'" msgstr "" @@ -7468,12 +7602,12 @@ msgstr "" msgid "Can't add stop bit to mark end of instruction group" msgstr "" -#: config/tc-ia64.c:11598 config/tc-score.c:6109 read.c:1448 read.c:2434 -#: read.c:3138 read.c:3476 read.c:3520 +#: config/tc-ia64.c:11598 config/tc-score.c:6105 read.c:1448 read.c:2434 +#: read.c:3137 read.c:3475 read.c:3519 msgid "expected symbol name" msgstr "" -#: config/tc-ia64.c:11608 read.c:2444 read.c:3148 read.c:3504 stabs.c:469 +#: config/tc-ia64.c:11608 read.c:2444 read.c:3147 read.c:3503 stabs.c:469 #, c-format msgid "expected comma after \"%s\"" msgstr "" @@ -7547,19 +7681,19 @@ msgstr "" msgid "Unmatched high relocation" msgstr "" -#: config/tc-iq2000.c:829 config/tc-mips.c:15333 config/tc-score.c:5819 +#: config/tc-iq2000.c:829 config/tc-mips.c:18680 config/tc-score.c:5815 msgid ".end not in text section" msgstr "" -#: config/tc-iq2000.c:833 config/tc-mips.c:15337 config/tc-score.c:5822 +#: config/tc-iq2000.c:833 config/tc-mips.c:18684 config/tc-score.c:5818 msgid ".end directive without a preceding .ent directive." msgstr "" -#: config/tc-iq2000.c:842 config/tc-mips.c:15346 config/tc-score.c:5830 +#: config/tc-iq2000.c:842 config/tc-mips.c:18693 config/tc-score.c:5826 msgid ".end symbol does not match .ent symbol." msgstr "" -#: config/tc-iq2000.c:845 config/tc-mips.c:15353 config/tc-score.c:5835 +#: config/tc-iq2000.c:845 config/tc-mips.c:18700 config/tc-score.c:5831 msgid ".end directive missing or unknown symbol" msgstr "" @@ -7567,7 +7701,7 @@ msgstr "" msgid "Expected simple number." msgstr "" -#: config/tc-iq2000.c:892 config/tc-mips.c:15258 config/tc-score.c:5670 +#: config/tc-iq2000.c:892 config/tc-mips.c:18605 config/tc-score.c:5667 #, c-format msgid " *input_line_pointer == '%c' 0x%02x\n" msgstr "" @@ -7576,7 +7710,7 @@ msgstr "" msgid "Invalid number" msgstr "" -#: config/tc-iq2000.c:928 config/tc-mips.c:15425 config/tc-score.c:5708 +#: config/tc-iq2000.c:928 config/tc-mips.c:18772 config/tc-score.c:5705 msgid ".ent or .aent not in text section." msgstr "" @@ -7598,7 +7732,7 @@ msgstr "" msgid "Unrecognised option: -hidden" msgstr "" -#: config/tc-m32r.c:358 config/tc-sparc.c:583 +#: config/tc-m32r.c:358 config/tc-sparc.c:610 msgid "Unrecognized option following -K" msgstr "" @@ -7819,10 +7953,6 @@ msgstr "" msgid "Length of .scomm \"%s\" is already %ld. Not changed to %ld." msgstr "" -#: config/tc-m32r.c:1789 -msgid "Addend to unresolved symbol not on word boundary." -msgstr "" - #: config/tc-m32r.c:1930 config/tc-m32r.c:1983 config/tc-sh.c:775 #: config/tc-sh.c:2456 msgid "Invalid PIC expression." @@ -8433,10 +8563,6 @@ msgstr "" msgid "missing label" msgstr "" -#: config/tc-m68k.c:6037 config/tc-m68k.c:6066 -msgid "bad register list" -msgstr "" - #: config/tc-m68k.c:6039 #, c-format msgid "bad register list: %s" @@ -9053,798 +9179,893 @@ msgid "Absolute value in relaxation code. Assembler error....." msgstr "" #: config/tc-microblaze.c:2363 config/tc-mn10300.c:1067 config/tc-sh.c:804 -#: config/tc-z80.c:666 read.c:4351 +#: config/tc-z80.c:666 read.c:4350 #, c-format msgid "unsupported BFD relocation size %u" msgstr "" #. Prototypes for static functions. -#: config/tc-mips.c:1064 +#: config/tc-mips.c:1315 #, c-format msgid "internal Error, line %d, %s" msgstr "" -#: config/tc-mips.c:1825 config/tc-mips.c:13188 +#: config/tc-mips.c:1710 +msgid "48-bit microMIPS instructions are not supported" +msgstr "" + +#: config/tc-mips.c:2119 config/tc-mips.c:16004 #, c-format msgid "Unrecognized register name `%s'" msgstr "" -#: config/tc-mips.c:1911 +#: config/tc-mips.c:2305 msgid "-G may not be used in position-independent code" msgstr "" -#: config/tc-mips.c:1960 +#: config/tc-mips.c:2354 config/tc-mips.c:2387 #, c-format msgid "internal: can't hash `%s': %s" msgstr "" -#: config/tc-mips.c:1968 +#: config/tc-mips.c:2362 #, c-format msgid "internal error: bad mips16 opcode: %s %s\n" msgstr "" -#: config/tc-mips.c:2140 +#: config/tc-mips.c:2573 #, c-format msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n" msgstr "" -#: config/tc-mips.c:3074 config/tc-mips.c:3082 +#: config/tc-mips.c:4013 +#, c-format +msgid "Wrong size instruction in a %u-bit branch delay slot" +msgstr "" + +#: config/tc-mips.c:4061 config/tc-mips.c:4071 #, c-format msgid "jump to misaligned address (0x%lx)" msgstr "" -#: config/tc-mips.c:3093 config/tc-mips.c:4042 +#: config/tc-mips.c:4086 config/tc-mips.c:5016 #, c-format msgid "branch to misaligned address (0x%lx)" msgstr "" -#: config/tc-mips.c:3098 config/tc-mips.c:4045 +#: config/tc-mips.c:4092 config/tc-mips.c:5019 #, c-format msgid "branch address range overflow (0x%lx)" msgstr "" -#: config/tc-mips.c:3253 config/tc-mips.c:14896 +#: config/tc-mips.c:4294 config/tc-mips.c:18182 msgid "extended instruction in delay slot" msgstr "" #. To reproduce this failure try assembling gas/testsuites/ #. gas/mips/mips16-intermix.s with a mips-ecoff targeted #. assembler. -#: config/tc-mips.c:3299 +#: config/tc-mips.c:4350 #, c-format msgid "Unsupported MIPS relocation number %d" msgstr "" -#: config/tc-mips.c:3779 +#: config/tc-mips.c:4645 msgid "" "Macro instruction expanded into multiple instructions in a branch delay slot" msgstr "" -#: config/tc-mips.c:3782 +#: config/tc-mips.c:4648 msgid "Macro instruction expanded into multiple instructions" msgstr "" -#: config/tc-mips.c:4314 +#: config/tc-mips.c:4652 +msgid "" +"Macro instruction expanded into a wrong size instruction in a 16-bit branch " +"delay slot" +msgstr "" + +#: config/tc-mips.c:4654 +msgid "" +"Macro instruction expanded into a wrong size instruction in a 32-bit branch " +"delay slot" +msgstr "" + +#: config/tc-mips.c:5317 msgid "operand overflow" msgstr "" -#: config/tc-mips.c:4333 config/tc-mips.c:4933 config/tc-mips.c:8427 +#: config/tc-mips.c:5336 config/tc-mips.c:5936 config/tc-mips.c:9932 msgid "Macro used $at after \".set noat\"" msgstr "" -#: config/tc-mips.c:4362 +#: config/tc-mips.c:5365 msgid "unsupported large constant" msgstr "" -#: config/tc-mips.c:4364 +#: config/tc-mips.c:5367 #, c-format msgid "Instruction %s requires absolute expression" msgstr "" -#: config/tc-mips.c:4497 config/tc-mips.c:6798 config/tc-mips.c:7390 +#: config/tc-mips.c:5500 config/tc-mips.c:8267 config/tc-mips.c:8900 #, c-format msgid "Number (0x%s) larger than 32 bits" msgstr "" -#: config/tc-mips.c:4517 +#: config/tc-mips.c:5520 msgid "Number larger than 64 bits" msgstr "" -#: config/tc-mips.c:4811 config/tc-mips.c:4839 config/tc-mips.c:4877 -#: config/tc-mips.c:4922 config/tc-mips.c:7012 config/tc-mips.c:7051 -#: config/tc-mips.c:7090 config/tc-mips.c:7485 config/tc-mips.c:7537 +#: config/tc-mips.c:5814 config/tc-mips.c:5842 config/tc-mips.c:5880 +#: config/tc-mips.c:5925 config/tc-mips.c:8522 config/tc-mips.c:8561 +#: config/tc-mips.c:8600 config/tc-mips.c:8995 config/tc-mips.c:9047 msgid "PIC code offset overflow (max 16 signed bits)" msgstr "" -#: config/tc-mips.c:5244 config/tc-mips.c:5310 config/tc-mips.c:5398 -#: config/tc-mips.c:5445 config/tc-mips.c:5507 config/tc-mips.c:5556 -#: config/tc-mips.c:8521 config/tc-mips.c:8528 config/tc-mips.c:8535 -#: config/tc-mips.c:8642 +#: config/tc-mips.c:6484 config/tc-mips.c:6554 config/tc-mips.c:6640 +#: config/tc-mips.c:6686 config/tc-mips.c:6748 config/tc-mips.c:6797 +#: config/tc-mips.c:10026 config/tc-mips.c:10033 config/tc-mips.c:10040 +#: config/tc-mips.c:10147 msgid "Unsupported large constant" msgstr "" #. result is always true -#: config/tc-mips.c:5276 +#: config/tc-mips.c:6518 #, c-format msgid "Branch %s is always true" msgstr "" -#: config/tc-mips.c:5518 config/tc-mips.c:5567 config/tc-mips.c:9297 -#: config/tc-mips.c:9454 +#: config/tc-mips.c:6759 config/tc-mips.c:6808 config/tc-mips.c:11085 +#: config/tc-mips.c:11249 #, c-format msgid "Improper position (%lu)" msgstr "" -#: config/tc-mips.c:5523 config/tc-mips.c:9364 +#: config/tc-mips.c:6764 config/tc-mips.c:11153 #, c-format msgid "Improper extract size (%lu, position %lu)" msgstr "" -#: config/tc-mips.c:5572 config/tc-mips.c:9328 +#: config/tc-mips.c:6813 config/tc-mips.c:11117 #, c-format msgid "Improper insert size (%lu, position %lu)" msgstr "" -#: config/tc-mips.c:5609 config/tc-mips.c:5706 +#: config/tc-mips.c:6850 config/tc-mips.c:6960 msgid "Divide by zero." msgstr "" -#: config/tc-mips.c:5792 +#: config/tc-mips.c:7051 msgid "dla used to load 32-bit register" msgstr "" -#: config/tc-mips.c:5795 +#: config/tc-mips.c:7054 msgid "la used to load 64-bit address" msgstr "" -#: config/tc-mips.c:5819 config/tc-mips.c:6788 config/tc-mips.c:7380 +#: config/tc-mips.c:7078 config/tc-mips.c:8257 config/tc-mips.c:8890 msgid "Expression too complex" msgstr "" -#: config/tc-mips.c:5907 +#: config/tc-mips.c:7166 msgid "Offset too large" msgstr "" -#: config/tc-mips.c:6079 config/tc-mips.c:6354 +#: config/tc-mips.c:7338 config/tc-mips.c:7613 msgid "PIC code offset overflow (max 32 signed bits)" msgstr "" -#: config/tc-mips.c:6432 +#: config/tc-mips.c:7713 msgid "MIPS PIC call to register other than $25" msgstr "" -#: config/tc-mips.c:6438 config/tc-mips.c:6449 config/tc-mips.c:6573 -#: config/tc-mips.c:6584 +#: config/tc-mips.c:7724 config/tc-mips.c:7735 config/tc-mips.c:7863 +#: config/tc-mips.c:7874 msgid "No .cprestore pseudo-op used in PIC code" msgstr "" -#: config/tc-mips.c:6443 config/tc-mips.c:6578 +#: config/tc-mips.c:7729 config/tc-mips.c:7868 msgid "No .frame pseudo-op used in PIC code" msgstr "" -#: config/tc-mips.c:6599 +#: config/tc-mips.c:7889 msgid "Non-PIC jump used in PIC library" msgstr "" -#: config/tc-mips.c:6765 +#: config/tc-mips.c:8249 #, c-format msgid "Opcode not supported on this processor: %s" msgstr "" -#: config/tc-mips.c:7643 +#: config/tc-mips.c:9154 #, c-format msgid "opcode not supported on this processor: %s" msgstr "" -#: config/tc-mips.c:7790 config/tc-mips.c:7821 config/tc-mips.c:7873 -#: config/tc-mips.c:7903 +#: config/tc-mips.c:9311 config/tc-mips.c:9342 config/tc-mips.c:9394 +#: config/tc-mips.c:9424 msgid "Improper rotate count" msgstr "" -#: config/tc-mips.c:7942 +#: config/tc-mips.c:9463 #, c-format msgid "Instruction %s: result is always false" msgstr "" -#: config/tc-mips.c:8103 +#: config/tc-mips.c:9624 #, c-format msgid "Instruction %s: result is always true" msgstr "" -#: config/tc-mips.c:8240 config/tc-mips.c:8264 config/tc-mips.c:8337 -#: config/tc-mips.c:8360 +#: config/tc-mips.c:9819 msgid "Operand overflow" msgstr "" #. FIXME: Check if this is one of the itbl macros, since they #. are added dynamically. -#: config/tc-mips.c:8423 +#: config/tc-mips.c:9928 #, c-format msgid "Macro %s not implemented yet" msgstr "" -#: config/tc-mips.c:8673 +#: config/tc-mips.c:10178 #, c-format msgid "internal: bad mips opcode (mask error): %s %s" msgstr "" -#: config/tc-mips.c:8718 +#: config/tc-mips.c:10223 #, c-format msgid "internal: bad mips opcode (unknown extension operand type `+%c'): %s %s" msgstr "" -#: config/tc-mips.c:8797 +#: config/tc-mips.c:10304 #, c-format msgid "internal: bad mips opcode (unknown operand type `%c'): %s %s" msgstr "" -#: config/tc-mips.c:8804 +#: config/tc-mips.c:10311 #, c-format msgid "internal: bad mips opcode (bits 0x%lx undefined): %s %s" msgstr "" -#: config/tc-mips.c:8927 config/tc-mips.c:8935 +#: config/tc-mips.c:10337 +#, c-format +msgid "Internal error: bad microMIPS opcode (mask error): %s %s" +msgstr "" + +#: config/tc-mips.c:10344 +#, c-format +msgid "Internal error: bad microMIPS opcode (incorrect length: %u): %s %s" +msgstr "" + +#: config/tc-mips.c:10352 +#, c-format +msgid "Internal error: bad microMIPS opcode (opcode/length mismatch): %s %s" +msgstr "" + +#: config/tc-mips.c:10383 config/tc-mips.c:10436 +#, c-format +msgid "" +"Internal error: bad mips opcode (unknown extension operand type `%c%c'): %s " +"%s" +msgstr "" + +#: config/tc-mips.c:10483 +#, c-format +msgid "Internal error: bad microMIPS opcode (unknown operand type `%c'): %s %s" +msgstr "" + +#: config/tc-mips.c:10492 +#, c-format +msgid "Internal error: bad microMIPS opcode (bits 0x%lx undefined): %s %s" +msgstr "" + +#: config/tc-mips.c:10496 +#, c-format +msgid "Internal error: bad microMIPS opcode (bits 0x%lx defined): %s %s" +msgstr "" + +#: config/tc-mips.c:10654 msgid "Unrecognized opcode" msgstr "" -#: config/tc-mips.c:8962 config/tc-mips.c:10524 +#: config/tc-mips.c:10703 config/tc-mips.c:13232 #, c-format msgid "opcode not supported on this processor: %s (%s)" msgstr "" -#: config/tc-mips.c:8996 +#: config/tc-mips.c:10707 +#, c-format +msgid "Unrecognized %u-bit version of microMIPS opcode" +msgstr "" + +#: config/tc-mips.c:10738 #, c-format msgid "BALIGN immediate not 1 or 3 (%lu)" msgstr "" -#: config/tc-mips.c:9009 config/tc-mips.c:9022 config/tc-mips.c:9035 -#: config/tc-mips.c:9048 config/tc-mips.c:9074 config/tc-mips.c:9118 +#: config/tc-mips.c:10752 config/tc-mips.c:10766 config/tc-mips.c:10780 +#: config/tc-mips.c:10794 config/tc-mips.c:10822 config/tc-mips.c:10869 #, c-format msgid "DSP immediate not in range 0..%d (%lu)" msgstr "" -#: config/tc-mips.c:9066 config/tc-mips.c:9093 +#: config/tc-mips.c:10813 config/tc-mips.c:10842 msgid "Invalid dsp acc register" msgstr "" -#: config/tc-mips.c:9104 config/tc-mips.c:9135 config/tc-mips.c:9152 +#: config/tc-mips.c:10854 config/tc-mips.c:10887 config/tc-mips.c:10905 #, c-format msgid "DSP immediate not in range %ld..%ld (%ld)" msgstr "" -#: config/tc-mips.c:9165 +#: config/tc-mips.c:10919 #, c-format msgid "MT usermode bit not 0 or 1 (%lu)" msgstr "" -#: config/tc-mips.c:9176 +#: config/tc-mips.c:10931 #, c-format msgid "MT load high bit not 0 or 1 (%lu)" msgstr "" -#: config/tc-mips.c:9193 config/tc-mips.c:9206 +#: config/tc-mips.c:10949 config/tc-mips.c:10963 msgid "Invalid dsp/smartmips acc register" msgstr "" -#: config/tc-mips.c:9270 +#: config/tc-mips.c:10975 +#, c-format +msgid "Bit position for %s not in range 0..%lu (%lu)" +msgstr "" + +#: config/tc-mips.c:11058 #, c-format msgid "Illegal %s number (%lu, 0x%lx)" msgstr "" -#: config/tc-mips.c:9383 config/tc-mips.c:10032 +#: config/tc-mips.c:11173 config/tc-mips.c:11975 msgid "absolute expression required" msgstr "" -#: config/tc-mips.c:9406 +#: config/tc-mips.c:11198 #, c-format msgid "Invalid register number (%d)" msgstr "" -#: config/tc-mips.c:9414 +#: config/tc-mips.c:11206 msgid "Invalid coprocessor 0 register number" msgstr "" -#: config/tc-mips.c:9424 +#: config/tc-mips.c:11217 #, c-format msgid "Improper bit index (%lu)" msgstr "" -#: config/tc-mips.c:9485 config/tc-mips.c:9502 +#: config/tc-mips.c:11282 config/tc-mips.c:11300 #, c-format msgid "Improper size (%lu)" msgstr "" -#: config/tc-mips.c:9518 +#: config/tc-mips.c:11317 #, c-format msgid "Improper immediate (%ld)" msgstr "" -#: config/tc-mips.c:9535 config/tc-mips.c:9552 config/tc-mips.c:9572 +#: config/tc-mips.c:11335 config/tc-mips.c:11353 config/tc-mips.c:11374 #, c-format msgid "Offset not in range %ld..%ld (%ld)" msgstr "" -#: config/tc-mips.c:9578 +#: config/tc-mips.c:11380 #, c-format msgid "Offset not 16 bytes alignment (%ld)" msgstr "" -#: config/tc-mips.c:9593 config/tc-mips.c:10705 +#: config/tc-mips.c:11397 config/tc-mips.c:13413 msgid "used $at without \".set noat\"" msgstr "" -#: config/tc-mips.c:9595 config/tc-mips.c:10707 +#: config/tc-mips.c:11399 config/tc-mips.c:13415 #, c-format msgid "used $%u with \".set at=$%u\"" msgstr "" -#: config/tc-mips.c:9608 +#: config/tc-mips.c:11413 #, c-format msgid "" -"Internal error: bad mips opcode (unknown extension operand type `+%c'): %s %s" +"Internal error: bad %s opcode (unknown extension operand type `+%c'): %s %s" msgstr "" -#: config/tc-mips.c:9626 +#: config/tc-mips.c:11467 #, c-format msgid "Improper shift amount (%lu)" msgstr "" -#: config/tc-mips.c:9650 config/tc-mips.c:10845 config/tc-mips.c:11098 +#: config/tc-mips.c:11493 config/tc-mips.c:13553 config/tc-mips.c:13806 #, c-format msgid "Invalid value for `%s' (%lu)" msgstr "" -#: config/tc-mips.c:9686 -#, c-format -msgid "Code for %s not in range 0..1023 (%lu)" -msgstr "" - -#: config/tc-mips.c:9698 +#: config/tc-mips.c:11543 config/tc-mips.c:11581 #, c-format -msgid "Lower code for %s not in range 0..1023 (%lu)" +msgid "Code for %s not in range 0..%lu (%lu)" msgstr "" -#: config/tc-mips.c:9710 +#: config/tc-mips.c:11562 #, c-format -msgid "Code for %s not in range 0..1048575 (%lu)" +msgid "Lower code for %s not in range 0..%lu (%lu)" msgstr "" -#: config/tc-mips.c:9723 +#: config/tc-mips.c:11602 #, c-format -msgid "Coproccesor code > 25 bits (%lu)" +msgid "Coproccesor code > %u bits (%lu)" msgstr "" -#: config/tc-mips.c:9737 +#: config/tc-mips.c:11618 #, c-format msgid "Illegal 19-bit code (%lu)" msgstr "" -#: config/tc-mips.c:9750 +#: config/tc-mips.c:11632 #, c-format msgid "Invalid performance register (%lu)" msgstr "" -#: config/tc-mips.c:9795 +#: config/tc-mips.c:11713 config/tc-mips.c:12398 #, c-format msgid "Used $%u with \".set at=$%u\"" msgstr "" -#: config/tc-mips.c:9822 +#: config/tc-mips.c:11740 config/tc-mips.c:12424 msgid "Source and destination must be different" msgstr "" -#: config/tc-mips.c:9828 +#: config/tc-mips.c:11746 config/tc-mips.c:12430 msgid "A destination register must be supplied" msgstr "" -#: config/tc-mips.c:9891 +#: config/tc-mips.c:11828 #, c-format msgid "Improper align amount (%ld), using low bits" msgstr "" -#: config/tc-mips.c:9905 +#: config/tc-mips.c:11843 #, c-format msgid "Invalid MDMX Immediate (%ld)" msgstr "" -#: config/tc-mips.c:9943 +#: config/tc-mips.c:11882 #, c-format msgid "Float register should be even, was %d" msgstr "" -#: config/tc-mips.c:9982 +#: config/tc-mips.c:11923 #, c-format msgid "Bad element selector %ld" msgstr "" -#: config/tc-mips.c:9990 +#: config/tc-mips.c:11931 #, c-format msgid "Expecting ']' found '%s'" msgstr "" -#: config/tc-mips.c:10096 +#: config/tc-mips.c:12039 #, c-format msgid "Bad floating point constant: %s" msgstr "" -#: config/tc-mips.c:10216 +#: config/tc-mips.c:12159 msgid "Can't use floating point insn in this section" msgstr "" -#: config/tc-mips.c:10275 +#: config/tc-mips.c:12218 msgid "Expression out of range" msgstr "" -#: config/tc-mips.c:10319 +#: config/tc-mips.c:12262 #, c-format msgid "lui expression (%lu) not in range 0..65535" msgstr "" -#: config/tc-mips.c:10341 +#: config/tc-mips.c:12284 #, c-format msgid "Condition code register should be even for %s, was %d" msgstr "" -#: config/tc-mips.c:10347 +#: config/tc-mips.c:12290 #, c-format msgid "Condition code register should be 0 or 4 for %s, was %d" msgstr "" -#: config/tc-mips.c:10374 +#: config/tc-mips.c:12317 msgid "Invalid coprocessor sub-selection value (0-7)" msgstr "" -#: config/tc-mips.c:10386 config/tc-mips.c:10403 +#: config/tc-mips.c:12330 config/tc-mips.c:12348 #, c-format msgid "bad byte vector index (%ld)" msgstr "" -#: config/tc-mips.c:10414 +#: config/tc-mips.c:13058 +#, c-format +msgid "" +"Internal error: bad microMIPS opcode (unknown extension operand type `m%c'): " +"%s %s" +msgstr "" + +#: config/tc-mips.c:13110 +#, c-format +msgid "Trap code (%lu) for %s not in 0..15 range" +msgstr "" + +#: config/tc-mips.c:13119 #, c-format msgid "Bad char = '%c'\n" msgstr "" -#: config/tc-mips.c:10498 config/tc-score.c:2696 config/tc-score.c:2742 +#: config/tc-mips.c:13206 config/tc-score.c:2691 config/tc-score.c:2737 msgid "unrecognized opcode" msgstr "" -#: config/tc-mips.c:10881 config/tc-mips.c:10962 config/tc-mips.c:10977 +#: config/tc-mips.c:13589 config/tc-mips.c:13670 config/tc-mips.c:13685 msgid "can't parse register list" msgstr "" -#: config/tc-mips.c:10950 +#: config/tc-mips.c:13658 msgid "more than one frame size in list" msgstr "" -#: config/tc-mips.c:11005 +#: config/tc-mips.c:13713 msgid "unexpected register in list" msgstr "" -#: config/tc-mips.c:11015 +#: config/tc-mips.c:13723 msgid "arg/static registers overlap" msgstr "" -#: config/tc-mips.c:11033 +#: config/tc-mips.c:13741 msgid "invalid arg register list" msgstr "" -#: config/tc-mips.c:11042 config/tc-mips.c:11065 +#: config/tc-mips.c:13750 config/tc-mips.c:13773 msgid "invalid static register list" msgstr "" -#: config/tc-mips.c:11072 +#: config/tc-mips.c:13780 msgid "missing frame size" msgstr "" -#: config/tc-mips.c:11075 +#: config/tc-mips.c:13783 msgid "invalid frame size" msgstr "" -#: config/tc-mips.c:11123 +#: config/tc-mips.c:13831 msgid "illegal operands" msgstr "" -#: config/tc-mips.c:11241 +#: config/tc-mips.c:13949 msgid "extended operand requested but not required" msgstr "" -#: config/tc-mips.c:11243 +#: config/tc-mips.c:13951 msgid "invalid unextended operand value" msgstr "" -#: config/tc-mips.c:11271 +#: config/tc-mips.c:13979 msgid "operand value out of range for instruction" msgstr "" -#: config/tc-mips.c:11376 +#: config/tc-mips.c:14084 #, c-format msgid "relocation %s isn't supported by the current ABI" msgstr "" -#: config/tc-mips.c:11432 +#: config/tc-mips.c:14140 msgid "unclosed '('" msgstr "" -#: config/tc-mips.c:11699 +#: config/tc-mips.c:14415 #, c-format msgid "A different %s was already specified, is now %s" msgstr "" -#: config/tc-mips.c:11970 +#: config/tc-mips.c:14592 +msgid "-mmicromips cannot be used with -mips16" +msgstr "" + +#: config/tc-mips.c:14607 +msgid "-mips16 cannot be used with -micromips" +msgstr "" + +#: config/tc-mips.c:14714 msgid "-call_shared is supported only for ELF format" msgstr "" -#: config/tc-mips.c:11980 +#: config/tc-mips.c:14724 msgid "-call_nonpic is supported only for ELF format" msgstr "" -#: config/tc-mips.c:11990 +#: config/tc-mips.c:14734 msgid "-non_shared is supported only for ELF format" msgstr "" -#: config/tc-mips.c:12023 +#: config/tc-mips.c:14767 msgid "-n32 is supported for ELF format only" msgstr "" -#: config/tc-mips.c:12032 +#: config/tc-mips.c:14776 msgid "-64 is supported for ELF format only" msgstr "" -#: config/tc-mips.c:12037 config/tc-mips.c:12090 +#: config/tc-mips.c:14781 config/tc-mips.c:14834 msgid "No compiled in support for 64 bit object file format" msgstr "" -#: config/tc-mips.c:12077 +#: config/tc-mips.c:14821 msgid "-mabi is supported for ELF format only" msgstr "" -#: config/tc-mips.c:12097 +#: config/tc-mips.c:14841 #, c-format msgid "invalid abi -mabi=%s" msgstr "" -#: config/tc-mips.c:12177 +#: config/tc-mips.c:14921 msgid "-G not supported in this configuration." msgstr "" -#: config/tc-mips.c:12203 +#: config/tc-mips.c:14947 #, c-format msgid "-%s conflicts with the other architecture options, which imply -%s" msgstr "" -#: config/tc-mips.c:12215 +#: config/tc-mips.c:14959 #, c-format msgid "-march=%s is not compatible with the selected ABI" msgstr "" -#: config/tc-mips.c:12234 +#: config/tc-mips.c:14978 msgid "-mgp64 used with a 32-bit processor" msgstr "" -#: config/tc-mips.c:12236 +#: config/tc-mips.c:14980 msgid "-mgp32 used with a 64-bit ABI" msgstr "" -#: config/tc-mips.c:12238 +#: config/tc-mips.c:14982 msgid "-mgp64 used with a 32-bit ABI" msgstr "" -#: config/tc-mips.c:12276 +#: config/tc-mips.c:15020 msgid "-mfp64 used with a 32-bit fpu" msgstr "" -#: config/tc-mips.c:12279 +#: config/tc-mips.c:15023 msgid "-mfp64 used with a 32-bit ABI" msgstr "" -#: config/tc-mips.c:12283 +#: config/tc-mips.c:15027 msgid "-mfp32 used with a 64-bit ABI" msgstr "" -#: config/tc-mips.c:12297 +#: config/tc-mips.c:15041 msgid "trap exception not supported at ISA 1" msgstr "" -#: config/tc-mips.c:12307 +#: config/tc-mips.c:15053 msgid "-mfp32 used with -mips3d" msgstr "" -#: config/tc-mips.c:12313 +#: config/tc-mips.c:15059 msgid "-mfp32 used with -mdmx" msgstr "" -#: config/tc-mips.c:12318 +#: config/tc-mips.c:15064 #, c-format msgid "%s ISA does not support SmartMIPS" msgstr "" -#: config/tc-mips.c:12324 config/tc-mips.c:13280 +#: config/tc-mips.c:15070 config/tc-mips.c:16108 #, c-format msgid "%s ISA does not support DSP ASE" msgstr "" -#: config/tc-mips.c:12333 config/tc-mips.c:13293 +#: config/tc-mips.c:15079 config/tc-mips.c:16121 #, c-format msgid "%s ISA does not support DSP R2 ASE" msgstr "" -#: config/tc-mips.c:12339 config/tc-mips.c:13306 +#: config/tc-mips.c:15085 config/tc-mips.c:16134 #, c-format msgid "%s ISA does not support MT ASE" msgstr "" -#: config/tc-mips.c:12387 +#: config/tc-mips.c:15091 +#, c-format +msgid "%s ISA does not support MCU ASE" +msgstr "" + +#: config/tc-mips.c:15147 msgid "PC relative MIPS16 instruction references a different section" msgstr "" -#: config/tc-mips.c:12685 config/tc-sparc.c:3184 config/tc-sparc.c:3191 -#: config/tc-sparc.c:3198 config/tc-sparc.c:3205 config/tc-sparc.c:3212 -#: config/tc-sparc.c:3221 config/tc-sparc.c:3232 config/tc-sparc.c:3254 -#: config/tc-sparc.c:3278 write.c:1138 +#: config/tc-mips.c:15484 config/tc-sparc.c:3327 config/tc-sparc.c:3334 +#: config/tc-sparc.c:3341 config/tc-sparc.c:3348 config/tc-sparc.c:3355 +#: config/tc-sparc.c:3364 config/tc-sparc.c:3375 config/tc-sparc.c:3397 +#: config/tc-sparc.c:3421 write.c:1151 msgid "relocation overflow" msgstr "" -#: config/tc-mips.c:12695 +#: config/tc-mips.c:15497 #, c-format msgid "Branch to misaligned address (%lx)" msgstr "" -#: config/tc-mips.c:12742 +#: config/tc-mips.c:15544 msgid "Branch out of range" msgstr "" -#: config/tc-mips.c:12824 +#: config/tc-mips.c:15640 #, c-format msgid "Alignment too large: %d. assumed." msgstr "" -#: config/tc-mips.c:12827 +#: config/tc-mips.c:15643 msgid "Alignment negative: 0 assumed." msgstr "" -#: config/tc-mips.c:13085 +#: config/tc-mips.c:15901 #, c-format msgid "%s: no such section" msgstr "" -#: config/tc-mips.c:13134 +#: config/tc-mips.c:15950 #, c-format msgid ".option pic%d not supported" msgstr "" -#: config/tc-mips.c:13139 config/tc-mips.c:13446 +#: config/tc-mips.c:15955 config/tc-mips.c:16278 msgid "-G may not be used with SVR4 PIC code" msgstr "" -#: config/tc-mips.c:13145 +#: config/tc-mips.c:15961 #, c-format msgid "Unrecognized option \"%s\"" msgstr "" -#: config/tc-mips.c:13205 +#: config/tc-mips.c:16021 msgid "`noreorder' must be set before `nomacro'" msgstr "" -#: config/tc-mips.c:13231 +#: config/tc-mips.c:16047 #, c-format msgid "%s isa does not support 64-bit registers" msgstr "" -#: config/tc-mips.c:13242 +#: config/tc-mips.c:16058 #, c-format msgid "%s isa does not support 64-bit floating point registers" msgstr "" -#: config/tc-mips.c:13263 +#: config/tc-mips.c:16074 +msgid "`mips16' cannot be used with `micromips'" +msgstr "" + +#: config/tc-mips.c:16083 +msgid "`micromips' cannot be used with `mips16'" +msgstr "" + +#: config/tc-mips.c:16091 #, c-format msgid "%s ISA does not support SmartMIPS ASE" msgstr "" -#: config/tc-mips.c:13330 +#: config/tc-mips.c:16162 #, c-format msgid "unknown architecture %s" msgstr "" -#: config/tc-mips.c:13343 config/tc-mips.c:13373 +#: config/tc-mips.c:16175 config/tc-mips.c:16205 #, c-format msgid "unknown ISA level %s" msgstr "" -#: config/tc-mips.c:13351 +#: config/tc-mips.c:16183 #, c-format msgid "unknown ISA or architecture %s" msgstr "" -#: config/tc-mips.c:13401 +#: config/tc-mips.c:16233 msgid ".set pop with no .set push" msgstr "" -#: config/tc-mips.c:13430 +#: config/tc-mips.c:16262 #, c-format msgid "Tried to set unrecognized symbol: %s\n" msgstr "" -#: config/tc-mips.c:13488 +#: config/tc-mips.c:16320 msgid ".cpload not in noreorder section" msgstr "" -#: config/tc-mips.c:13556 config/tc-mips.c:13575 +#: config/tc-mips.c:16388 config/tc-mips.c:16407 msgid "missing argument separator ',' for .cpsetup" msgstr "" -#: config/tc-mips.c:13733 +#: config/tc-mips.c:16565 #, c-format msgid "Unsupported use of %s" msgstr "" -#: config/tc-mips.c:13815 config/tc-score.c:6035 +#: config/tc-mips.c:16647 config/tc-score.c:6031 msgid "Unsupported use of .gpword" msgstr "" -#: config/tc-mips.c:13855 +#: config/tc-mips.c:16687 msgid "Unsupported use of .gpdword" msgstr "" -#: config/tc-mips.c:13949 +#: config/tc-mips.c:16781 #, c-format msgid "ignoring attempt to redefine symbol %s" msgstr "" -#: config/tc-mips.c:13964 ecoff.c:3378 +#: config/tc-mips.c:16796 ecoff.c:3378 msgid "bad .weakext directive" msgstr "" -#: config/tc-mips.c:14200 +#: config/tc-mips.c:17032 msgid "unsupported PC relative reference to different section" msgstr "" -#: config/tc-mips.c:14313 config/tc-xtensa.c:1583 config/tc-xtensa.c:1859 +#: config/tc-mips.c:17145 config/tc-xtensa.c:1583 config/tc-xtensa.c:1859 msgid "unsupported relocation" msgstr "" -#: config/tc-mips.c:14571 config/tc-pdp11.c:1424 +#: config/tc-mips.c:17577 config/tc-pdp11.c:1424 #, c-format msgid "Can not represent %s relocation in this object file format" msgstr "" -#: config/tc-mips.c:14656 +#: config/tc-mips.c:17676 config/tc-mips.c:17970 msgid "Relaxed out-of-range branch into a jump" msgstr "" -#: config/tc-mips.c:15217 +#: config/tc-mips.c:18564 msgid "missing .end at end of assembly" msgstr "" -#: config/tc-mips.c:15232 config/tc-score.c:5644 +#: config/tc-mips.c:18579 config/tc-score.c:5641 msgid "expected simple number" msgstr "" -#: config/tc-mips.c:15260 config/tc-score.c:5671 +#: config/tc-mips.c:18607 config/tc-score.c:5668 msgid "invalid number" msgstr "" -#: config/tc-mips.c:15428 config/tc-score.c:5710 +#: config/tc-mips.c:18775 config/tc-score.c:5707 msgid "missing .end" msgstr "" -#: config/tc-mips.c:15480 +#: config/tc-mips.c:18827 msgid "Bad .frame directive" msgstr "" -#: config/tc-mips.c:15512 +#: config/tc-mips.c:18859 msgid ".mask/.fmask outside of .ent" msgstr "" -#: config/tc-mips.c:15519 +#: config/tc-mips.c:18866 msgid "Bad .mask/.fmask directive" msgstr "" -#: config/tc-mips.c:15796 +#: config/tc-mips.c:19145 #, c-format msgid "Bad value (%s) for %s" msgstr "" -#: config/tc-mips.c:15860 +#: config/tc-mips.c:19209 #, c-format msgid "" "MIPS options:\n" @@ -9855,7 +10076,7 @@ msgid "" "\t\t\timplicitly with the gp register [default 8]\n" msgstr "" -#: config/tc-mips.c:15867 +#: config/tc-mips.c:19216 #, c-format msgid "" "-mips1\t\t\tgenerate MIPS ISA I instructions\n" @@ -9870,7 +10091,7 @@ msgid "" "-march=CPU/-mtune=CPU\tgenerate code/schedule for CPU, where CPU is one of:\n" msgstr "" -#: config/tc-mips.c:15886 +#: config/tc-mips.c:19235 #, c-format msgid "" "-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n" @@ -9878,42 +10099,56 @@ msgid "" "\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n" msgstr "" -#: config/tc-mips.c:15899 +#: config/tc-mips.c:19248 #, c-format msgid "" "-mips16\t\t\tgenerate mips16 instructions\n" "-no-mips16\t\tdo not generate mips16 instructions\n" msgstr "" -#: config/tc-mips.c:15902 +#: config/tc-mips.c:19251 +#, c-format +msgid "" +"-mmicromips\t\tgenerate microMIPS instructions\n" +"-mno-micromips\t\tdo not generate microMIPS instructions\n" +msgstr "" + +#: config/tc-mips.c:19254 #, c-format msgid "" "-msmartmips\t\tgenerate smartmips instructions\n" "-mno-smartmips\t\tdo not generate smartmips instructions\n" msgstr "" -#: config/tc-mips.c:15905 +#: config/tc-mips.c:19257 #, c-format msgid "" "-mdsp\t\t\tgenerate DSP instructions\n" "-mno-dsp\t\tdo not generate DSP instructions\n" msgstr "" -#: config/tc-mips.c:15908 +#: config/tc-mips.c:19260 #, 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:15911 +#: config/tc-mips.c:19263 #, 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:15914 +#: config/tc-mips.c:19266 +#, c-format +msgid "" +"-mmcu\t\t\tgenerate MCU instructions\n" +"-mno-mcu\t\tdo not generate MCU instructions\n" +msgstr "" + +#: config/tc-mips.c:19269 #, c-format msgid "" "-mfix-loongson2f-jump\twork around Loongson2F JUMP instructions\n" @@ -9931,7 +10166,7 @@ msgid "" "--break, --no-trap\tbreak exception on div by 0 and mult overflow\n" msgstr "" -#: config/tc-mips.c:15928 +#: config/tc-mips.c:19283 #, c-format msgid "" "-mhard-float\t\tallow floating-point instructions\n" @@ -9941,7 +10176,7 @@ msgid "" "--[no-]construct-floats [dis]allow floating point values to be constructed\n" msgstr "" -#: config/tc-mips.c:15936 +#: config/tc-mips.c:19291 #, c-format msgid "" "-KPIC, -call_shared\tgenerate SVR4 position independent code\n" @@ -9955,7 +10190,7 @@ msgid "" "-mabi=ABI\t\tcreate ABI conformant object file for:\n" msgstr "" -#: config/tc-mips.c:15957 +#: config/tc-mips.c:19312 #, c-format msgid "" "-32\t\t\tcreate o32 ABI object file (default)\n" @@ -10847,7 +11082,8 @@ msgstr "" msgid "6-bit displacement out of range" msgstr "" -#: config/tc-pdp11.c:974 config/tc-vax.c:1944 +#: config/tc-pdp11.c:974 config/tc-tilegx.c:1160 config/tc-tilepro.c:1023 +#: config/tc-vax.c:1944 msgid "Too many operands" msgstr "" @@ -11134,7 +11370,7 @@ msgstr "" msgid "missing rename string" msgstr "" -#: config/tc-ppc.c:3864 config/tc-ppc.c:4406 read.c:3364 +#: config/tc-ppc.c:3864 config/tc-ppc.c:4406 read.c:3363 msgid "missing value" msgstr "" @@ -11205,188 +11441,203 @@ msgstr "" msgid "Unrecognized symbol suffix" msgstr "" -#: config/tc-ppc.c:5424 +#: config/tc-ppc.c:5425 msgid "two .function pseudo-ops with no intervening .ef" msgstr "" -#: config/tc-ppc.c:5437 +#: config/tc-ppc.c:5438 msgid ".ef with no preceding .function" msgstr "" -#: config/tc-ppc.c:5566 +#: config/tc-ppc.c:5567 #, c-format msgid "warning: symbol %s has no csect" msgstr "" -#: config/tc-ppc.c:5828 +#: config/tc-ppc.c:5829 msgid "symbol in .toc does not match any .tc" msgstr "" -#: config/tc-ppc.c:6230 +#: config/tc-ppc.c:6200 #, c-format msgid "unsupported relocation against %s" msgstr "" -#: config/tc-ppc.c:6303 +#: config/tc-ppc.c:6273 #, c-format msgid "cannot emit PC relative %s relocation against %s" msgstr "" -#: config/tc-ppc.c:6308 +#: config/tc-ppc.c:6278 #, c-format msgid "cannot emit PC relative %s relocation" msgstr "" -#: config/tc-ppc.c:6497 +#: config/tc-ppc.c:6467 #, c-format msgid "Unable to handle reference to symbol %s" msgstr "" -#: config/tc-ppc.c:6500 +#: config/tc-ppc.c:6470 msgid "Unable to resolve expression" msgstr "" -#: config/tc-ppc.c:6527 +#: config/tc-ppc.c:6497 msgid "must branch to an address a multiple of 4" msgstr "" -#: config/tc-ppc.c:6531 +#: config/tc-ppc.c:6501 #, c-format msgid "@local or @plt branch destination is too far away, %ld bytes" msgstr "" -#: config/tc-ppc.c:6562 +#: config/tc-ppc.c:6532 #, c-format msgid "Gas failure, reloc value %d\n" msgstr "" -#: config/tc-rx.c:133 +#: config/tc-rx.c:151 #, c-format msgid " RX specific command line options:\n" msgstr "" -#: config/tc-rx.c:134 +#: config/tc-rx.c:152 #, c-format msgid " --mbig-endian-data\n" msgstr "" -#: config/tc-rx.c:135 +#: config/tc-rx.c:153 #, c-format msgid " --mlittle-endian-data [default]\n" msgstr "" -#: config/tc-rx.c:136 +#: config/tc-rx.c:154 #, c-format msgid " --m32bit-doubles [default]\n" msgstr "" -#: config/tc-rx.c:137 +#: config/tc-rx.c:155 #, c-format msgid " --m64bit-doubles\n" msgstr "" -#: config/tc-rx.c:138 +#: config/tc-rx.c:156 #, c-format msgid " --muse-conventional-section-names\n" msgstr "" -#: config/tc-rx.c:139 +#: config/tc-rx.c:157 #, c-format msgid " --muse-renesas-section-names [default]\n" msgstr "" -#: config/tc-rx.c:140 +#: config/tc-rx.c:158 #, c-format msgid " --msmall-data-limit\n" msgstr "" -#: config/tc-rx.c:220 +#: config/tc-rx.c:159 +#, c-format +msgid " --mrelax\n" +msgstr "" + +#: config/tc-rx.c:160 +#, c-format +msgid " --mpid\n" +msgstr "" + +#: config/tc-rx.c:161 +#, c-format +msgid " --mint-register=\n" +msgstr "" + +#: config/tc-rx.c:241 msgid "no filename following .INCLUDE pseudo-op" msgstr "" -#: config/tc-rx.c:323 +#: config/tc-rx.c:344 #, c-format msgid "unable to locate include file: %s" msgstr "" -#: config/tc-rx.c:374 +#: config/tc-rx.c:395 #, c-format msgid "unrecognised alignment value in .SECTION directive: %s" msgstr "" -#: config/tc-rx.c:391 +#: config/tc-rx.c:412 #, c-format msgid "unknown parameter following .SECTION directive: %s" msgstr "" -#: config/tc-rx.c:480 +#: config/tc-rx.c:501 msgid "expecting either ON or OFF after .list" msgstr "" -#: config/tc-rx.c:516 +#: config/tc-rx.c:537 #, c-format msgid "The \".%s\" pseudo-op is not implemented\n" msgstr "" -#: config/tc-rx.c:748 +#: config/tc-rx.c:797 #, c-format msgid "Value %d doesn't fit in unsigned %d-bit field" msgstr "" -#: config/tc-rx.c:754 +#: config/tc-rx.c:803 #, c-format msgid "Value %d doesn't fit in signed %d-bit field" msgstr "" -#: config/tc-rx.c:954 +#: config/tc-rx.c:1003 msgid "The .DEFINE pseudo-op is not implemented" msgstr "" -#: config/tc-rx.c:956 +#: config/tc-rx.c:1005 msgid "The .MACRO pseudo-op is not implemented" msgstr "" -#: config/tc-rx.c:958 +#: config/tc-rx.c:1007 msgid "The .BTEQU pseudo-op is not implemented." msgstr "" -#: config/tc-rx.c:1883 +#: config/tc-rx.c:1932 msgid "invalid immediate size" msgstr "" -#: config/tc-rx.c:1902 +#: config/tc-rx.c:1951 msgid "invalid immediate field position" msgstr "" -#: config/tc-rx.c:1951 +#: config/tc-rx.c:2000 #, c-format msgid "bad frag at %p : fix %ld addr %ld %ld \n" msgstr "" -#: config/tc-rx.c:2018 +#: config/tc-rx.c:2067 #, c-format msgid "unsupported constant size %d\n" msgstr "" -#: config/tc-rx.c:2025 +#: config/tc-rx.c:2074 msgid "difference of two symbols only supported with .long, .short, or .byte" msgstr "" -#: config/tc-rx.c:2069 +#: config/tc-rx.c:2118 #, c-format msgid "jump not 3..10 bytes away (is %d)" msgstr "" -#: config/tc-rx.c:2215 +#: config/tc-rx.c:2264 #, c-format msgid "Unknown reloc in md_apply_fix: %s" msgstr "" -#: config/tc-s390.c:332 config/tc-sparc.c:272 +#: config/tc-s390.c:332 config/tc-sparc.c:296 msgid "Invalid default architecture, broken assembler." msgstr "" -#: config/tc-s390.c:439 config/tc-sparc.c:475 +#: config/tc-s390.c:439 config/tc-sparc.c:499 #, c-format msgid "invalid architecture -A%s" msgstr "" @@ -11552,7 +11803,7 @@ msgstr "" msgid "S+core co-processor register expected" msgstr "" -#: config/tc-score.c:1074 config/tc-score.c:2073 +#: config/tc-score.c:1074 config/tc-score.c:2068 msgid "Using temp register(r1)" msgstr "" @@ -11561,343 +11812,343 @@ msgstr "" msgid "register expected, not '%.100s'" msgstr "" -#: config/tc-score.c:1149 config/tc-score.c:5488 +#: config/tc-score.c:1149 config/tc-score.c:5485 msgid "rd must be even number." msgstr "" -#: config/tc-score.c:1520 config/tc-score.c:1527 +#: config/tc-score.c:1513 config/tc-score.c:1520 #, c-format msgid "invalid constant: %d bit expression not in range %u..%u" msgstr "" -#: config/tc-score.c:1533 config/tc-score.c:1540 config/tc-score.c:2900 -#: config/tc-score.c:2905 config/tc-score.c:3172 config/tc-score.c:3177 -#: config/tc-score.c:3470 +#: config/tc-score.c:1526 config/tc-score.c:1533 config/tc-score.c:2895 +#: config/tc-score.c:2900 config/tc-score.c:3165 config/tc-score.c:3170 +#: config/tc-score.c:3462 #, c-format msgid "invalid constant: %d bit expression not in range %d..%d" msgstr "" -#: config/tc-score.c:1565 +#: config/tc-score.c:1558 msgid "invalid constant: bit expression not defined" msgstr "" -#: config/tc-score.c:2087 +#: config/tc-score.c:2082 #, c-format msgid "low register(r0-r15)expected, not '%.100s'" msgstr "" -#: config/tc-score.c:2149 config/tc-score.c:3491 config/tc-score.c:3659 -#: config/tc-score.c:3704 +#: config/tc-score.c:2144 config/tc-score.c:3482 config/tc-score.c:3650 +#: config/tc-score.c:3695 #, c-format msgid "missing [" msgstr "" -#: config/tc-score.c:2163 config/tc-score.c:3110 config/tc-score.c:3312 -#: config/tc-score.c:3328 config/tc-score.c:3399 config/tc-score.c:3455 -#: config/tc-score.c:3680 config/tc-score.c:3725 config/tc-score.c:3874 -#: config/tc-score.c:3928 config/tc-score.c:3974 +#: config/tc-score.c:2158 config/tc-score.c:3103 config/tc-score.c:3305 +#: config/tc-score.c:3321 config/tc-score.c:3392 config/tc-score.c:3447 +#: config/tc-score.c:3671 config/tc-score.c:3716 config/tc-score.c:3865 +#: config/tc-score.c:3919 config/tc-score.c:3965 #, c-format msgid "missing ]" msgstr "" -#: config/tc-score.c:2352 +#: config/tc-score.c:2347 #, c-format msgid "Fix data dependency: %s %s -- %s %s (insert %d nop!/%d)" msgstr "" -#: config/tc-score.c:2371 +#: config/tc-score.c:2366 #, c-format msgid "Fix data dependency: %s %s -- %s %s (insert 1 pflush/%d)" msgstr "" -#: config/tc-score.c:2387 config/tc-score.c:2394 +#: config/tc-score.c:2382 config/tc-score.c:2389 #, c-format msgid "data dependency: %s %s -- %s %s (%d/%d bubble)" msgstr "" -#: config/tc-score.c:2755 config/tc-score.c:6508 +#: config/tc-score.c:2750 config/tc-score.c:6504 #, c-format msgid "%s -- `%s'" msgstr "" -#: config/tc-score.c:2843 +#: config/tc-score.c:2838 msgid "address offset must be half word alignment" msgstr "" -#: config/tc-score.c:2851 +#: config/tc-score.c:2846 msgid "address offset must be word alignment" msgstr "" -#: config/tc-score.c:2993 config/tc-score.c:3130 +#: config/tc-score.c:2986 config/tc-score.c:3123 msgid "register same as write-back base" msgstr "" -#: config/tc-score.c:3100 +#: config/tc-score.c:3093 msgid "pre-indexed expression expected" msgstr "" -#: config/tc-score.c:3430 +#: config/tc-score.c:3422 #, c-format msgid "invalid register number: %d is not in [r0--r7]" msgstr "" -#: config/tc-score.c:3447 +#: config/tc-score.c:3439 msgid "comma is expected" msgstr "" -#: config/tc-score.c:3478 +#: config/tc-score.c:3470 #, c-format msgid "invalid constant: %d is not word align integer" msgstr "" -#: config/tc-score.c:3518 config/tc-score.c:3561 +#: config/tc-score.c:3509 config/tc-score.c:3552 msgid "invalid constant: 32 bit expression not word align" msgstr "" -#: config/tc-score.c:3527 config/tc-score.c:3570 +#: config/tc-score.c:3518 config/tc-score.c:3561 msgid "invalid constant: 32 bit expression not in range [0, 0xffffffff]" msgstr "" -#: config/tc-score.c:3603 +#: config/tc-score.c:3594 msgid "" "invalid constant: 32 bit expression not in range [-0x80000000, 0x7fffffff]" msgstr "" -#: config/tc-score.c:3792 config/tc-score.c:3820 +#: config/tc-score.c:3783 config/tc-score.c:3811 msgid "imm5 should >= 2" msgstr "" -#: config/tc-score.c:3797 config/tc-score.c:3826 +#: config/tc-score.c:3788 config/tc-score.c:3817 msgid "reg should <= 31" msgstr "" -#: config/tc-score.c:3868 config/tc-score.c:3919 +#: config/tc-score.c:3859 config/tc-score.c:3910 msgid "missing +" msgstr "" -#: config/tc-score.c:3912 +#: config/tc-score.c:3903 #, c-format msgid "%s register same as write-back base" msgstr "" -#: config/tc-score.c:3914 +#: config/tc-score.c:3905 msgid "destination" msgstr "" -#: config/tc-score.c:3914 +#: config/tc-score.c:3905 msgid "source" msgstr "" -#: config/tc-score.c:4244 config/tc-score.c:4320 config/tc-score.c:4949 +#: config/tc-score.c:4235 config/tc-score.c:4311 config/tc-score.c:4946 msgid "expression error" msgstr "" -#: config/tc-score.c:4250 +#: config/tc-score.c:4241 msgid "value not in range [0, 0xffffffff]" msgstr "" -#: config/tc-score.c:4326 +#: config/tc-score.c:4317 msgid "value not in range [-0xffffffff, 0xffffffff]" msgstr "" -#: config/tc-score.c:4354 +#: config/tc-score.c:4345 msgid "li rd label isn't correct instruction form" msgstr "" -#: config/tc-score.c:4523 config/tc-score.c:4674 config/tc-score.c:5200 -#: config/tc-score.c:5228 +#: config/tc-score.c:4515 config/tc-score.c:4670 config/tc-score.c:5197 +#: config/tc-score.c:5225 msgid "lacking label " msgstr "" -#: config/tc-score.c:4899 +#: config/tc-score.c:4896 msgid "s3_PIC code offset overflow (max 16 signed bits)" msgstr "" -#: config/tc-score.c:4955 +#: config/tc-score.c:4952 msgid "value not in range [0, 0x7fffffff]" msgstr "" -#: config/tc-score.c:4960 +#: config/tc-score.c:4957 msgid "end on line error" msgstr "" -#: config/tc-score.c:5207 +#: config/tc-score.c:5204 msgid "invalid constant: 25 bit expression not in range [-16777216, 16777215]" msgstr "" -#: config/tc-score.c:5234 +#: config/tc-score.c:5231 msgid "invalid constant: 20 bit expression not in range -2^19..2^19" msgstr "" -#: config/tc-score.c:5267 +#: config/tc-score.c:5264 msgid "lacking label" msgstr "" -#: config/tc-score.c:5272 +#: config/tc-score.c:5269 msgid "invalid constant: 10 bit expression not in range [-2^9, 2^9-1]" msgstr "" -#: config/tc-score.c:5368 +#: config/tc-score.c:5365 msgid "pce instruction error (16 bit || 16 bit)'" msgstr "" -#: config/tc-score.c:5386 config/tc-score.c:5410 config/tc-score.c:5437 -#: config/tc-score.c:5466 config/tc-score.c:5515 +#: config/tc-score.c:5383 config/tc-score.c:5407 config/tc-score.c:5434 +#: config/tc-score.c:5463 config/tc-score.c:5512 msgid "score3d instruction." msgstr "" -#: config/tc-score.c:6126 read.c:1465 +#: config/tc-score.c:6122 read.c:1465 msgid "missing size expression" msgstr "" -#: config/tc-score.c:6132 +#: config/tc-score.c:6128 #, c-format msgid "BSS length (%d) < 0 ignored" msgstr "" -#: config/tc-score.c:6147 read.c:2298 +#: config/tc-score.c:6143 read.c:2298 #, c-format msgid "error setting flags for \".sbss\": %s" msgstr "" -#: config/tc-score.c:6161 config/tc-sparc.c:3695 +#: config/tc-score.c:6157 config/tc-sparc.c:3838 msgid "missing alignment" msgstr "" -#: config/tc-score.c:6198 +#: config/tc-score.c:6194 #, c-format msgid "alignment too large; %d assumed" msgstr "" -#: config/tc-score.c:6203 read.c:2359 +#: config/tc-score.c:6199 read.c:2359 msgid "alignment negative; 0 assumed" msgstr "" -#: config/tc-score.c:6270 ecoff.c:3365 read.c:1484 read.c:1590 read.c:2476 -#: read.c:3098 read.c:3488 symbols.c:334 symbols.c:430 +#: config/tc-score.c:6266 ecoff.c:3365 read.c:1484 read.c:1590 read.c:2476 +#: read.c:3097 read.c:3487 symbols.c:336 symbols.c:432 #, c-format msgid "symbol `%s' is already defined" msgstr "" #. Error routine. -#: config/tc-score.c:6612 config/tc-score.c:6636 +#: config/tc-score.c:6608 config/tc-score.c:6632 msgid "size is not 4 or 6" msgstr "" -#: config/tc-score.c:6695 +#: config/tc-score.c:6691 msgid "bad call to MD_ATOF()" msgstr "" -#: config/tc-score.c:7203 +#: config/tc-score.c:7198 #, c-format msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9]" msgstr "" -#: config/tc-score.c:7218 config/tc-score.c:7247 config/tc-score.c:7299 +#: config/tc-score.c:7213 config/tc-score.c:7242 config/tc-score.c:7294 #, c-format msgid " branch relocation truncate (0x%x) [-2^19 ~ 2^19]" msgstr "" -#: config/tc-score.c:7269 config/tc-score.c:7324 +#: config/tc-score.c:7264 config/tc-score.c:7319 #, c-format msgid " branch relocation truncate (0x%x) [-2^9 ~ 2^9]" msgstr "" -#: config/tc-score.c:7500 +#: config/tc-score.c:7488 #, c-format msgid "cannot represent %s relocation in this object file format1" msgstr "" -#: config/tc-score.c:7791 +#: config/tc-score.c:7779 #, c-format msgid "Sunplus-v2-0-0-20060510\n" msgstr "" -#: config/tc-score.c:7811 +#: config/tc-score.c:7799 #, c-format msgid " Score-specific assembler options:\n" msgstr "" -#: config/tc-score.c:7813 +#: config/tc-score.c:7801 #, c-format msgid " -EB\t\tassemble code for a big-endian cpu\n" msgstr "" -#: config/tc-score.c:7818 +#: config/tc-score.c:7806 #, c-format msgid " -EL\t\tassemble code for a little-endian cpu\n" msgstr "" -#: config/tc-score.c:7822 +#: config/tc-score.c:7810 #, c-format msgid " -FIXDD\t\tassemble code for fix data dependency\n" msgstr "" -#: config/tc-score.c:7824 +#: config/tc-score.c:7812 #, c-format msgid "" " -NWARN\t\tassemble code for no warning message for fix data " "dependency\n" msgstr "" -#: config/tc-score.c:7826 +#: config/tc-score.c:7814 #, c-format msgid " -SCORE5\t\tassemble code for target is SCORE5\n" msgstr "" -#: config/tc-score.c:7828 +#: config/tc-score.c:7816 #, c-format msgid " -SCORE5U\tassemble code for target is SCORE5U\n" msgstr "" -#: config/tc-score.c:7830 +#: config/tc-score.c:7818 #, c-format msgid "" " -SCORE7\t\tassemble code for target is SCORE7, this is default " "setting\n" msgstr "" -#: config/tc-score.c:7832 +#: config/tc-score.c:7820 #, c-format msgid " -SCORE3\t\tassemble code for target is SCORE3\n" msgstr "" -#: config/tc-score.c:7834 +#: config/tc-score.c:7822 #, c-format msgid "" " -march=score7\tassemble code for target is SCORE7, this is default " "setting\n" msgstr "" -#: config/tc-score.c:7836 +#: config/tc-score.c:7824 #, c-format msgid " -march=score3\tassemble code for target is SCORE3\n" msgstr "" -#: config/tc-score.c:7838 +#: config/tc-score.c:7826 #, c-format msgid "" " -USE_R1\t\tassemble code for no warning message when using temp " "register r1\n" msgstr "" -#: config/tc-score.c:7840 +#: config/tc-score.c:7828 #, c-format msgid " -KPIC\t\tassemble code for PIC\n" msgstr "" -#: config/tc-score.c:7842 +#: config/tc-score.c:7830 #, c-format msgid " -O0\t\tassembler will not perform any optimizations\n" msgstr "" -#: config/tc-score.c:7844 +#: config/tc-score.c:7832 #, c-format msgid "" " -G gpnum\tassemble code for setting gpsize and default is 8 byte\n" msgstr "" -#: config/tc-score.c:7846 +#: config/tc-score.c:7834 #, c-format msgid " -V \t\tSunplus release version \n" msgstr "" @@ -12190,8 +12441,8 @@ msgstr "" msgid "overflow in branch to %s; converted into longer instruction sequence" msgstr "" -#: config/tc-sh.c:3749 config/tc-sh.c:3796 config/tc-sparc.c:4202 -#: config/tc-sparc.c:4226 +#: config/tc-sh.c:3749 config/tc-sh.c:3796 config/tc-sparc.c:4345 +#: config/tc-sparc.c:4369 msgid "misaligned data" msgstr "" @@ -12393,26 +12644,26 @@ msgstr "" msgid "Invalid DataLabel expression" msgstr "" -#: config/tc-sparc.c:276 config/tc-sparc.c:481 +#: config/tc-sparc.c:300 config/tc-sparc.c:505 msgid "Bad opcode table, broken assembler." msgstr "" -#: config/tc-sparc.c:473 +#: config/tc-sparc.c:497 #, c-format msgid "invalid architecture -xarch=%s" msgstr "" -#: config/tc-sparc.c:542 +#: config/tc-sparc.c:569 #, c-format msgid "No compiled in support for %d bit object file format" msgstr "" -#: config/tc-sparc.c:623 +#: config/tc-sparc.c:650 #, c-format msgid "SPARC options:\n" msgstr "" -#: config/tc-sparc.c:652 +#: config/tc-sparc.c:679 #, c-format msgid "" "\n" @@ -12424,24 +12675,24 @@ msgid "" "-no-relax\t\tavoid changing any jumps and branches\n" msgstr "" -#: config/tc-sparc.c:660 +#: config/tc-sparc.c:687 #, c-format msgid "-k\t\t\tgenerate PIC\n" msgstr "" -#: config/tc-sparc.c:664 +#: config/tc-sparc.c:691 #, 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:667 +#: config/tc-sparc.c:694 #, c-format msgid "\t\t\t[default is %d]\n" msgstr "" -#: config/tc-sparc.c:669 +#: config/tc-sparc.c:696 #, c-format msgid "" "-TSO\t\t\tuse Total Store Ordering\n" @@ -12449,12 +12700,12 @@ msgid "" "-RMO\t\t\tuse Relaxed Memory Ordering\n" msgstr "" -#: config/tc-sparc.c:673 +#: config/tc-sparc.c:700 #, c-format msgid "\t\t\t[default is %s]\n" msgstr "" -#: config/tc-sparc.c:675 +#: config/tc-sparc.c:702 #, c-format msgid "" "-KPIC\t\t\tgenerate PIC\n" @@ -12468,7 +12719,7 @@ msgid "" "-s\t\t\tignored\n" msgstr "" -#: config/tc-sparc.c:687 +#: config/tc-sparc.c:714 #, c-format msgid "" "-EL\t\t\tgenerate code for a little endian machine\n" @@ -12477,316 +12728,321 @@ msgid "" " instructions and little endian data.\n" msgstr "" -#: config/tc-sparc.c:823 +#: config/tc-sparc.c:851 #, c-format msgid "Internal error: losing opcode: `%s' \"%s\"\n" msgstr "" -#: config/tc-sparc.c:842 +#: config/tc-sparc.c:870 #, c-format msgid "Internal error: can't find opcode `%s' for `%s'\n" msgstr "" -#: config/tc-sparc.c:983 +#: config/tc-sparc.c:1053 msgid "Support for 64-bit arithmetic not compiled in." msgstr "" -#: config/tc-sparc.c:1029 +#: config/tc-sparc.c:1099 msgid "set: number not in 0..4294967295 range" msgstr "" -#: config/tc-sparc.c:1036 +#: config/tc-sparc.c:1106 msgid "set: number not in -2147483648..4294967295 range" msgstr "" -#: config/tc-sparc.c:1095 +#: config/tc-sparc.c:1165 msgid "setsw: number not in -2147483648..4294967295 range" msgstr "" -#: config/tc-sparc.c:1143 +#: config/tc-sparc.c:1213 msgid "setx: temporary register same as destination register" msgstr "" -#: config/tc-sparc.c:1214 +#: config/tc-sparc.c:1284 msgid "setx: illegal temporary register g0" msgstr "" -#: config/tc-sparc.c:1311 +#: config/tc-sparc.c:1381 msgid "FP branch in delay slot" msgstr "" -#: config/tc-sparc.c:1326 +#: config/tc-sparc.c:1396 msgid "FP branch preceded by FP instruction; NOP inserted" msgstr "" -#: config/tc-sparc.c:1366 +#: config/tc-sparc.c:1436 msgid "failed special case insn sanity check" msgstr "" -#: config/tc-sparc.c:1454 +#: config/tc-sparc.c:1562 msgid ": invalid membar mask name" msgstr "" -#: config/tc-sparc.c:1470 +#: config/tc-sparc.c:1578 msgid ": invalid membar mask expression" msgstr "" -#: config/tc-sparc.c:1475 +#: config/tc-sparc.c:1583 msgid ": invalid membar mask number" msgstr "" -#: config/tc-sparc.c:1490 +#: config/tc-sparc.c:1598 msgid ": invalid siam mode expression" msgstr "" -#: config/tc-sparc.c:1495 +#: config/tc-sparc.c:1603 msgid ": invalid siam mode number" msgstr "" -#: config/tc-sparc.c:1511 +#: config/tc-sparc.c:1619 msgid ": invalid prefetch function name" msgstr "" -#: config/tc-sparc.c:1519 +#: config/tc-sparc.c:1627 msgid ": invalid prefetch function expression" msgstr "" -#: config/tc-sparc.c:1524 +#: config/tc-sparc.c:1632 msgid ": invalid prefetch function number" msgstr "" -#: config/tc-sparc.c:1552 config/tc-sparc.c:1564 +#: config/tc-sparc.c:1660 config/tc-sparc.c:1672 msgid ": unrecognizable privileged register" msgstr "" -#: config/tc-sparc.c:1588 config/tc-sparc.c:1600 +#: config/tc-sparc.c:1696 config/tc-sparc.c:1708 msgid ": unrecognizable hyperprivileged register" msgstr "" -#: config/tc-sparc.c:1624 config/tc-sparc.c:1649 +#: config/tc-sparc.c:1732 config/tc-sparc.c:1757 msgid ": unrecognizable v9a or v9b ancillary state register" msgstr "" -#: config/tc-sparc.c:1629 +#: config/tc-sparc.c:1737 msgid ": rd on write only ancillary state register" msgstr "" #. %sys_tick and %sys_tick_cmpr are v9bnotv9a -#: config/tc-sparc.c:1637 +#: config/tc-sparc.c:1745 msgid ": unrecognizable v9a ancillary state register" msgstr "" -#: config/tc-sparc.c:1673 +#: config/tc-sparc.c:1781 msgid ": asr number must be between 16 and 31" msgstr "" -#: config/tc-sparc.c:1681 +#: config/tc-sparc.c:1789 msgid ": asr number must be between 0 and 31" msgstr "" -#: config/tc-sparc.c:1691 +#: config/tc-sparc.c:1799 #, c-format msgid ": expecting %asrN" msgstr "" -#: config/tc-sparc.c:1878 config/tc-sparc.c:1916 config/tc-sparc.c:2329 -#: config/tc-sparc.c:2365 +#: config/tc-sparc.c:1986 config/tc-sparc.c:2024 config/tc-sparc.c:2454 +#: config/tc-sparc.c:2490 #, c-format msgid "Illegal operands: %%%s requires arguments in ()" msgstr "" -#: config/tc-sparc.c:1884 +#: config/tc-sparc.c:1992 #, c-format msgid "" "Illegal operands: %%%s cannot be used together with other relocs in the insn " "()" msgstr "" -#: config/tc-sparc.c:1895 +#: config/tc-sparc.c:2003 #, c-format msgid "Illegal operands: %%%s can be only used with call __tls_get_addr" msgstr "" -#: config/tc-sparc.c:2102 +#: config/tc-sparc.c:2210 msgid "detected global register use not covered by .register pseudo-op" msgstr "" -#: config/tc-sparc.c:2173 +#: config/tc-sparc.c:2285 msgid ": There are only 64 f registers; [0-63]" msgstr "" -#: config/tc-sparc.c:2175 config/tc-sparc.c:2193 +#: config/tc-sparc.c:2287 config/tc-sparc.c:2305 msgid ": There are only 32 f registers; [0-31]" msgstr "" -#: config/tc-sparc.c:2185 +#: config/tc-sparc.c:2297 msgid ": There are only 32 single precision f registers; [0-31]" msgstr "" -#: config/tc-sparc.c:2377 +#: config/tc-sparc.c:2502 #, c-format msgid "" "Illegal operands: Can't do arithmetics other than + and - involving %%%s()" msgstr "" -#: config/tc-sparc.c:2487 +#: config/tc-sparc.c:2614 #, c-format msgid "Illegal operands: Can't add non-constant expression to %%%s()" msgstr "" -#: config/tc-sparc.c:2497 +#: config/tc-sparc.c:2624 #, c-format msgid "" "Illegal operands: Can't do arithmetics involving %%%s() of a relocatable " "symbol" msgstr "" -#: config/tc-sparc.c:2515 +#: config/tc-sparc.c:2642 msgid ": PC-relative operand can't be a constant" msgstr "" -#: config/tc-sparc.c:2522 +#: config/tc-sparc.c:2649 msgid ": TLS operand can't be a constant" msgstr "" -#: config/tc-sparc.c:2555 +#: config/tc-sparc.c:2682 msgid ": invalid ASI name" msgstr "" -#: config/tc-sparc.c:2563 +#: config/tc-sparc.c:2690 msgid ": invalid ASI expression" msgstr "" -#: config/tc-sparc.c:2568 +#: config/tc-sparc.c:2695 msgid ": invalid ASI number" msgstr "" -#: config/tc-sparc.c:2665 +#: config/tc-sparc.c:2792 msgid "OPF immediate operand out of range (0-0x1ff)" msgstr "" -#: config/tc-sparc.c:2670 +#: config/tc-sparc.c:2797 msgid "non-immediate OPF operand, ignored" msgstr "" -#: config/tc-sparc.c:2689 +#: config/tc-sparc.c:2816 msgid ": invalid cpreg name" msgstr "" -#: config/tc-sparc.c:2718 +#: config/tc-sparc.c:2845 #, c-format msgid "Illegal operands%s" msgstr "" -#: config/tc-sparc.c:2752 +#: config/tc-sparc.c:2884 #, c-format msgid "architecture bumped from \"%s\" to \"%s\" on \"%s\"" msgstr "" -#: config/tc-sparc.c:2788 +#: config/tc-sparc.c:2920 #, c-format msgid "Architecture mismatch on \"%s\"." msgstr "" -#: config/tc-sparc.c:2789 +#: config/tc-sparc.c:2921 #, c-format msgid " (Requires %s; requested architecture is %s.)" msgstr "" -#: config/tc-sparc.c:3324 +#: config/tc-sparc.c:2933 +#, c-format +msgid "Hardware capability \"%s\" not enabled for \"%s\"." +msgstr "" + +#: config/tc-sparc.c:3467 #, c-format msgid "bad or unhandled relocation type: 0x%02x" msgstr "" -#: config/tc-sparc.c:3657 +#: config/tc-sparc.c:3800 msgid "Expected comma after name" msgstr "" -#: config/tc-sparc.c:3666 +#: config/tc-sparc.c:3809 #, c-format msgid "BSS length (%d.) <0! Ignored." msgstr "" -#: config/tc-sparc.c:3678 +#: config/tc-sparc.c:3821 msgid "bad .reserve segment -- expected BSS segment" msgstr "" -#: config/tc-sparc.c:3706 +#: config/tc-sparc.c:3849 #, c-format msgid "alignment too large; assuming %d" msgstr "" -#: config/tc-sparc.c:3712 config/tc-sparc.c:3862 +#: config/tc-sparc.c:3855 config/tc-sparc.c:4005 msgid "negative alignment" msgstr "" -#: config/tc-sparc.c:3722 config/tc-sparc.c:3884 read.c:1321 read.c:2371 +#: config/tc-sparc.c:3865 config/tc-sparc.c:4027 read.c:1321 read.c:2371 msgid "alignment not a power of 2" msgstr "" -#: config/tc-sparc.c:3775 +#: config/tc-sparc.c:3918 #, c-format msgid "Ignoring attempt to re-define symbol %s" msgstr "" -#: config/tc-sparc.c:3799 config/tc-v850.c:275 +#: config/tc-sparc.c:3942 config/tc-v850.c:275 msgid "Expected comma after symbol-name" msgstr "" -#: config/tc-sparc.c:3809 +#: config/tc-sparc.c:3952 #, c-format msgid ".COMMon length (%lu) out of range ignored" msgstr "" -#: config/tc-sparc.c:3842 +#: config/tc-sparc.c:3985 msgid "Expected comma after common length" msgstr "" -#: config/tc-sparc.c:3856 +#: config/tc-sparc.c:3999 #, c-format msgid "alignment too large; assuming %ld" msgstr "" -#: config/tc-sparc.c:3999 +#: config/tc-sparc.c:4142 msgid "Unknown segment type" msgstr "" -#: config/tc-sparc.c:4074 config/tc-sparc.c:4084 +#: config/tc-sparc.c:4217 config/tc-sparc.c:4227 #, c-format msgid "register syntax is .register %%g[2367],{#scratch|symbolname|#ignore}" msgstr "" -#: config/tc-sparc.c:4102 +#: config/tc-sparc.c:4245 msgid "redefinition of global register" msgstr "" -#: config/tc-sparc.c:4113 +#: config/tc-sparc.c:4256 #, c-format msgid "Register symbol %s already defined." msgstr "" -#: config/tc-sparc.c:4317 +#: config/tc-sparc.c:4460 #, c-format msgid "Illegal operands: %%r_plt in %d-byte data field" msgstr "" -#: config/tc-sparc.c:4327 +#: config/tc-sparc.c:4470 #, c-format msgid "Illegal operands: %%r_tls_dtpoff in %d-byte data field" msgstr "" -#: config/tc-sparc.c:4364 config/tc-vax.c:3312 +#: config/tc-sparc.c:4507 config/tc-vax.c:3312 #, c-format msgid "Illegal operands: Only %%r_%s%d allowed in %d-byte data fields" msgstr "" -#: config/tc-sparc.c:4372 config/tc-sparc.c:4403 config/tc-sparc.c:4412 +#: config/tc-sparc.c:4515 config/tc-sparc.c:4546 config/tc-sparc.c:4555 #: config/tc-vax.c:3320 config/tc-vax.c:3351 config/tc-vax.c:3360 #, c-format msgid "Illegal operands: %%r_%s%d requires arguments in ()" msgstr "" -#: config/tc-sparc.c:4421 config/tc-vax.c:3369 +#: config/tc-sparc.c:4564 config/tc-vax.c:3369 #, c-format msgid "Illegal operands: garbage after %%r_%s%d()" msgstr "" @@ -14289,6 +14545,118 @@ msgstr "" msgid "unwound frame has negative size" msgstr "" +#: config/tc-tilegx.c:126 +#, c-format +msgid "" +" -Q ignored\n" +" -V print assembler version number\n" +" --32/--64 generate 32bit/64bit code\n" +msgstr "" + +#: config/tc-tilegx.c:685 config/tc-tilepro.c:554 +msgid "Invalid operator for operand." +msgstr "" + +#: config/tc-tilegx.c:696 config/tc-tilepro.c:565 +msgid "Operator may only be applied to symbols." +msgstr "" + +#: config/tc-tilegx.c:766 config/tc-tilepro.c:635 +#, c-format +msgid "Writes to register '%s' are not allowed." +msgstr "" + +#: config/tc-tilegx.c:793 config/tc-tilepro.c:662 +#, c-format +msgid "" +"Two instructions in the same bundle both write to register %s, which is not " +"allowed." +msgstr "" + +#: config/tc-tilegx.c:858 config/tc-tilepro.c:726 +#, c-format +msgid "'%s' may not be bundled with other instructions." +msgstr "" + +#: config/tc-tilegx.c:888 config/tc-tilepro.c:756 +msgid "Invalid combination of instructions for bundle." +msgstr "" + +#: config/tc-tilegx.c:923 config/tc-tilepro.c:791 +msgid "instruction address is not a multiple of 8" +msgstr "" + +#: config/tc-tilegx.c:1000 config/tc-tilepro.c:869 +msgid "Invalid expression." +msgstr "" + +#: config/tc-tilegx.c:1043 config/tc-tilepro.c:911 +#, c-format +msgid "Expected register, got '%s'." +msgstr "" + +#: config/tc-tilegx.c:1052 config/tc-tilepro.c:918 +#, c-format +msgid "Found use of non-canonical register name %s; use %s instead." +msgstr "" + +#: config/tc-tilegx.c:1114 config/tc-tilepro.c:977 +#, c-format +msgid "Too few operands to '%s'." +msgstr "" + +#: config/tc-tilegx.c:1119 config/tc-tilepro.c:982 +#, c-format +msgid "Unexpected character '%c' after operand %d to %s." +msgstr "" + +#: config/tc-tilegx.c:1140 config/tc-tilepro.c:1003 +msgid "Expected immediate expression" +msgstr "" + +#: config/tc-tilegx.c:1153 config/tc-tilegx.c:1762 config/tc-tilepro.c:1016 +#: config/tc-tilepro.c:1561 +msgid "Found '}' when not bundling." +msgstr "" + +#: config/tc-tilegx.c:1194 config/tc-tilepro.c:1056 +#, c-format +msgid "Unknown opcode `%.*s'." +msgstr "" + +#: config/tc-tilegx.c:1205 config/tc-tilepro.c:1067 +msgid "Too many instructions for bundle." +msgstr "" + +#: config/tc-tilegx.c:1291 config/tc-tilepro.c:1152 +msgid "Bad call to md_atof ()" +msgstr "" + +#: config/tc-tilegx.c:1367 config/tc-tilepro.c:1215 +msgid "This operator only produces two byte values." +msgstr "" + +#: config/tc-tilegx.c:1393 config/tc-tilepro.c:1241 +#, c-format +msgid "unsupported BFD relocation size %d" +msgstr "" + +#: config/tc-tilegx.c:1707 config/tc-tilepro.c:1506 +#, c-format +msgid "internal error? cannot generate `%s' relocation (%d, %d)" +msgstr "" + +#: config/tc-tilegx.c:1750 config/tc-tilepro.c:1549 +msgid "Found '{' when already bundling." +msgstr "" + +#: config/tc-tilepro.c:99 +#, c-format +msgid "" +" -Q ignored\n" +" -V print assembler version number\n" +msgstr "" + #: config/tc-v850.c:286 #, c-format msgid ".COMMon length (%d.) < 0! Ignored." @@ -15449,7 +15817,7 @@ msgstr "" msgid "parentheses ignored" msgstr "" -#: config/tc-z80.c:1913 read.c:3603 +#: config/tc-z80.c:1913 read.c:3602 #, c-format msgid "junk at end of line, first unrecognized character is `%c'" msgstr "" @@ -15755,38 +16123,38 @@ msgstr "" msgid "CFI is not supported for this target" msgstr "" -#: dwarf2dbg.c:552 dwarf2dbg.c:587 +#: dwarf2dbg.c:585 dwarf2dbg.c:620 msgid "file number less than one" msgstr "" -#: dwarf2dbg.c:562 +#: dwarf2dbg.c:595 #, c-format msgid "file number %ld already allocated" msgstr "" -#: dwarf2dbg.c:592 dwarf2dbg.c:1345 +#: dwarf2dbg.c:625 dwarf2dbg.c:1378 #, c-format msgid "unassigned file number %ld" msgstr "" -#: dwarf2dbg.c:661 +#: dwarf2dbg.c:694 msgid "is_stmt value not 0 or 1" msgstr "" -#: dwarf2dbg.c:673 +#: dwarf2dbg.c:706 msgid "isa number less than zero" msgstr "" -#: dwarf2dbg.c:685 +#: dwarf2dbg.c:718 msgid "discriminator less than zero" msgstr "" -#: dwarf2dbg.c:691 +#: dwarf2dbg.c:724 #, c-format msgid "unknown .loc sub-directive `%s'" msgstr "" -#: dwarf2dbg.c:1408 +#: dwarf2dbg.c:1441 msgid "internal error: unknown dwarf2 format" msgstr "" @@ -15976,11 +16344,11 @@ msgstr "" msgid "GP prologue size exceeds field size, using 0 instead" msgstr "" -#: expr.c:87 read.c:3668 +#: expr.c:87 read.c:3667 msgid "bignum invalid" msgstr "" -#: expr.c:89 read.c:3670 read.c:4147 read.c:5031 +#: expr.c:89 read.c:3669 read.c:4146 read.c:5030 msgid "floating point number invalid" msgstr "" @@ -16024,7 +16392,7 @@ msgstr "" msgid "missing '%c'" msgstr "" -#: expr.c:977 read.c:4513 +#: expr.c:977 read.c:4512 msgid "EBCDIC constants are not supported" msgstr "" @@ -16062,7 +16430,7 @@ msgstr "" msgid "right operand is a float; integer 0 assumed" msgstr "" -#: expr.c:1879 symbols.c:1379 +#: expr.c:1879 symbols.c:1381 msgid "division by zero" msgstr "" @@ -16082,7 +16450,7 @@ msgstr "" msgid "attempt to allocate data in common section" msgstr "" -#: frags.c:112 write.c:1379 +#: frags.c:102 write.c:1422 #, c-format msgid "can't extend frag %u chars" msgstr "" @@ -16113,7 +16481,7 @@ msgstr "" msgid "can't read from %s: %s" msgstr "" -#: input-file.c:267 listing.c:1397 output-file.c:69 +#: input-file.c:267 listing.c:1397 output-file.c:72 #, c-format msgid "can't close %s: %s" msgstr "" @@ -16576,192 +16944,196 @@ msgstr "" msgid "%s without %s" msgstr "" -#: read.c:3247 +#: read.c:3246 msgid "unsupported variable size or fill value" msgstr "" -#: read.c:3275 +#: read.c:3274 msgid ".space repeat count is zero, ignored" msgstr "" -#: read.c:3277 +#: read.c:3276 msgid ".space repeat count is negative, ignored" msgstr "" -#: read.c:3306 +#: read.c:3305 msgid "space allocation too complex in absolute section" msgstr "" -#: read.c:3312 +#: read.c:3311 msgid "space allocation too complex in common section" msgstr "" -#: read.c:3403 read.c:4759 +#: read.c:3402 read.c:4758 #, c-format msgid "bad floating literal: %s" msgstr "" -#: read.c:3560 +#: read.c:3559 #, c-format msgid "%s: would close weakref loop: %s" msgstr "" -#: read.c:3606 +#: read.c:3605 #, c-format msgid "junk at end of line, first unrecognized character valued 0x%x" msgstr "" -#: read.c:3734 +#: read.c:3733 #, c-format msgid "`%s' can't be equated to common symbol '%s'" msgstr "" -#: read.c:3871 +#: read.c:3858 +msgid "unexpected `\"' in expression" +msgstr "" + +#: read.c:3870 msgid "rva without symbol" msgstr "" -#: read.c:3928 +#: read.c:3927 msgid "missing or bad offset expression" msgstr "" -#: read.c:3949 +#: read.c:3948 msgid "missing reloc type" msgstr "" -#: read.c:3961 +#: read.c:3960 msgid "unrecognized reloc type" msgstr "" -#: read.c:3977 +#: read.c:3976 msgid "bad reloc expression" msgstr "" -#: read.c:4103 +#: read.c:4102 msgid "attempt to store value in absolute section" msgstr "" -#: read.c:4141 read.c:5025 +#: read.c:4140 read.c:5024 msgid "zero assumed for missing expression" msgstr "" -#: read.c:4153 read.c:5037 write.c:266 write.c:987 +#: read.c:4152 read.c:5036 write.c:266 write.c:1000 msgid "register value used as expression" msgstr "" -#: read.c:4233 +#: read.c:4232 #, c-format msgid "value 0x%llx truncated to 0x%llx" msgstr "" -#: read.c:4236 +#: read.c:4235 msgid "value 0x%I64x truncated to 0x%I64x" msgstr "" -#: read.c:4240 +#: read.c:4239 #, c-format msgid "value 0x%lx truncated to 0x%lx" msgstr "" -#: read.c:4267 +#: read.c:4266 #, c-format msgid "bignum truncated to %d bytes" msgstr "" -#: read.c:4586 read.c:4781 +#: read.c:4585 read.c:4780 msgid "unresolvable or nonpositive repeat count; using 1" msgstr "" -#: read.c:4635 +#: read.c:4634 #, c-format msgid "unknown floating type type '%c'" msgstr "" -#: read.c:4657 +#: read.c:4656 msgid "floating point constant too large" msgstr "" -#: read.c:5193 +#: read.c:5192 msgid "strings must be placed into a section" msgstr "" -#: read.c:5241 +#: read.c:5240 msgid "expected " msgstr "" #. To be compatible with BSD 4.2 as: give the luser a linefeed!! -#: read.c:5274 read.c:5360 +#: read.c:5273 read.c:5359 msgid "unterminated string; newline inserted" msgstr "" -#: read.c:5368 +#: read.c:5367 msgid "bad escaped character in string" msgstr "" -#: read.c:5393 +#: read.c:5392 msgid "expected address expression" msgstr "" -#: read.c:5412 +#: read.c:5411 #, c-format msgid "symbol \"%s\" undefined; zero assumed" msgstr "" -#: read.c:5415 +#: read.c:5414 msgid "some symbol undefined; zero assumed" msgstr "" -#: read.c:5450 +#: read.c:5449 msgid "this string may not contain '\\0'" msgstr "" -#: read.c:5486 +#: read.c:5485 msgid "missing string" msgstr "" -#: read.c:5577 +#: read.c:5576 #, c-format msgid ".incbin count zero, ignoring `%s'" msgstr "" -#: read.c:5603 +#: read.c:5602 #, c-format msgid "file not found: %s" msgstr "" -#: read.c:5617 +#: read.c:5616 #, c-format msgid "seek to end of .incbin file failed `%s'" msgstr "" -#: read.c:5628 +#: read.c:5627 #, c-format msgid "skip (%ld) or count (%ld) invalid for file size (%ld)" msgstr "" -#: read.c:5635 +#: read.c:5634 #, c-format msgid "could not skip to %ld in file `%s'" msgstr "" -#: read.c:5644 +#: read.c:5643 #, c-format msgid "truncated file `%s', %ld of %ld bytes read" msgstr "" -#: read.c:5803 +#: read.c:5802 msgid "missing .func" msgstr "" -#: read.c:5820 +#: read.c:5819 msgid ".endfunc missing for previous .func" msgstr "" -#: read.c:5957 +#: read.c:5956 #, c-format msgid "missing closing `%c'" msgstr "" -#: read.c:5959 +#: read.c:5958 msgid "stray `\\'" msgstr "" @@ -16787,81 +17159,81 @@ msgstr "" msgid "comma missing in .xstabs" msgstr "" -#: symbols.c:285 +#: symbols.c:287 #, c-format msgid "cannot define symbol `%s' in absolute section" msgstr "" -#: symbols.c:415 +#: symbols.c:417 #, c-format msgid "symbol `%s' is already defined as \"%s\"/%s%ld" msgstr "" -#: symbols.c:490 symbols.c:497 +#: symbols.c:492 symbols.c:499 #, c-format msgid "inserting \"%s\" into symbol table failed: %s" msgstr "" -#: symbols.c:1008 +#: symbols.c:1010 #, c-format msgid "invalid operands (%s and %s sections) for `%s'" msgstr "" -#: symbols.c:1012 +#: symbols.c:1014 #, c-format msgid "invalid operand (%s section) for `%s'" msgstr "" -#: symbols.c:1020 +#: symbols.c:1022 #, c-format msgid "invalid operands (%s and %s sections) for `%s' when setting `%s'" msgstr "" -#: symbols.c:1023 +#: symbols.c:1025 #, c-format msgid "invalid operand (%s section) for `%s' when setting `%s'" msgstr "" -#: symbols.c:1072 +#: symbols.c:1074 #, c-format msgid "symbol definition loop encountered at `%s'" msgstr "" -#: symbols.c:1099 +#: symbols.c:1101 #, c-format msgid "cannot convert expression symbol %s to complex relocation" msgstr "" -#: symbols.c:1381 +#: symbols.c:1383 #, c-format msgid "division by zero when setting `%s'" msgstr "" -#: symbols.c:1462 write.c:2048 +#: symbols.c:1464 write.c:2091 #, c-format msgid "can't resolve value for symbol `%s'" msgstr "" -#: symbols.c:1909 +#: symbols.c:1911 #, c-format msgid "\"%d\" (instance number %d of a %s label)" msgstr "" -#: symbols.c:1938 +#: symbols.c:1940 #, c-format msgid "attempt to get value of unresolved symbol `%s'" msgstr "" -#: symbols.c:2213 +#: symbols.c:2226 msgid "section symbols are already global" msgstr "" -#: symbols.c:2326 +#: symbols.c:2339 #, c-format msgid "Accessing function `%s' as thread-local object" msgstr "" -#: symbols.c:2330 +#: symbols.c:2343 #, c-format msgid "Accessing `%s' as thread-local object" msgstr "" @@ -16884,108 +17256,108 @@ msgstr "" msgid "invalid reloc expression" msgstr "" -#: write.c:1072 +#: write.c:1085 #, c-format msgid "value of %s too large for field of %d bytes at %s" msgstr "" -#: write.c:1084 +#: write.c:1097 #, c-format msgid "signed .word overflow; switch may be too large; %ld at 0x%lx" msgstr "" -#: write.c:1128 +#: write.c:1141 msgid "redefined symbol cannot be used on reloc" msgstr "" -#: write.c:1141 +#: write.c:1154 msgid "relocation out of range" msgstr "" -#: write.c:1144 +#: write.c:1157 #, c-format msgid "%s:%u: bad return from bfd_install_relocation: %x" msgstr "" -#: write.c:1208 -msgid "internal error: fixup not contained within frag" +#: write.c:1180 +msgid "reloc not within (fixed part of) section" msgstr "" -#: write.c:1261 -msgid "reloc not within (fixed part of) section" +#: write.c:1250 +msgid "internal error: fixup not contained within frag" msgstr "" -#: write.c:1325 write.c:1455 +#: write.c:1368 write.c:1498 msgid "can't extend frag" msgstr "" -#: write.c:1517 write.c:1538 +#: write.c:1560 write.c:1581 #, c-format msgid "can't write %s: %s" msgstr "" -#: write.c:1568 +#: write.c:1611 #, c-format msgid "cannot write to output file '%s': %s" msgstr "" -#: write.c:1724 +#: write.c:1767 #, c-format msgid "%d error%s, %d warning%s, generating bad object file" msgstr "" -#: write.c:1731 +#: write.c:1774 #, c-format msgid "%d error%s, %d warning%s, no object file generated" msgstr "" -#: write.c:1963 +#: write.c:2006 #, c-format msgid "%s: global symbols not supported in common sections" msgstr "" -#: write.c:1977 +#: write.c:2020 #, c-format msgid "local label `%s' is not defined" msgstr "" -#: write.c:1999 +#: write.c:2042 #, c-format msgid "Local symbol `%s' can't be equated to common symbol `%s'" msgstr "" -#: write.c:2006 +#: write.c:2049 #, c-format msgid "can't make global register symbol `%s'" msgstr "" -#: write.c:2299 +#: write.c:2342 #, c-format msgid "alignment padding (%lu bytes) not a multiple of %ld" msgstr "" -#: write.c:2461 +#: write.c:2504 #, c-format msgid ".word %s-%s+%s didn't fit" msgstr "" -#: write.c:2555 +#: write.c:2598 msgid "padding added" msgstr "" -#: write.c:2605 +#: write.c:2648 msgid "attempt to move .org backwards" msgstr "" -#: write.c:2629 +#: write.c:2672 msgid ".space specifies non-absolute value" msgstr "" -#: write.c:2644 +#: write.c:2687 msgid ".space or .fill with negative value, ignored" msgstr "" -#: write.c:2715 +#: write.c:2758 #, c-format msgid "" "Infinite loop encountered whilst attempting to compute the addresses of " diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 6c4e38f..2210cf5 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,21 @@ +2011-10-25 Joern Rennecke + + * gas/epiphany: New directory. + * gas/testsuite/gas/epiphany/addr-syntax.d: New file. + * gas/testsuite/gas/epiphany/addr-syntax.s: New file. + * gas/testsuite/gas/epiphany/allinsn.d: New file. + * gas/testsuite/gas/epiphany/allinsn.exp: New file. + * gas/testsuite/gas/epiphany/allinsn.s: New file. + * gas/testsuite/gas/epiphany/badpostmod.s: New file. + * gas/testsuite/gas/epiphany/badrelax.d: New file. + * gas/testsuite/gas/epiphany/badrelax.s: New file. + * gas/testsuite/gas/epiphany/branch_lit.d: New file. + * gas/testsuite/gas/epiphany/branch_lit.s: New file. + * gas/testsuite/gas/epiphany/regression.d: New file. + * gas/testsuite/gas/epiphany/regression.s: New file. + * gas/testsuite/gas/epiphany/sample.d: New file. + * gas/testsuite/gas/epiphany/sample.s: New file. + 2011-10-24 Julian Brown * gas/m68k/all.exp (movem-offset): Add test. diff --git a/gas/testsuite/gas/epiphany/addr-syntax.d b/gas/testsuite/gas/epiphany/addr-syntax.d new file mode 100644 index 0000000..d9dc3e6 --- /dev/null +++ b/gas/testsuite/gas/epiphany/addr-syntax.d @@ -0,0 +1,15 @@ +#as: +#objdump: -dr +#name: addr-syntax + +.*.o: file format elf32-epiphany + + +Disassembly of section \.text: + +00000000 \<\.text\>: + 0: 2bcc 01ff ldr.l r1,\[r2,-0x7ff\] + 4: 4c4c 0301 ldr.l r2,\[r3\],-0x8 + 8: 107c 2201 strd.l r8,\[r4\],\+0x8 + c: 506c 2400 ldrd sl,\[ip\] + 10: 587c 2400 strd sl,\[lr\] diff --git a/gas/testsuite/gas/epiphany/addr-syntax.s b/gas/testsuite/gas/epiphany/addr-syntax.s new file mode 100644 index 0000000..2d12580 --- /dev/null +++ b/gas/testsuite/gas/epiphany/addr-syntax.s @@ -0,0 +1,9 @@ +; Check that we can do negative displacements + ldr r1,[r2,-2047] +; Check postmodified immediate with positive and negative displacements + ldr r2,[r3],-8 + strd r8,[r4],8 + +; Check that zero displacements work + ldrd r10,[r12] + strd r10,[r14] diff --git a/gas/testsuite/gas/epiphany/allinsn.d b/gas/testsuite/gas/epiphany/allinsn.d new file mode 100644 index 0000000..3a8039b --- /dev/null +++ b/gas/testsuite/gas/epiphany/allinsn.d @@ -0,0 +1,1400 @@ +#as: +#objdump: -dr +#name: allinsn + +.*\.o: file format elf32-epiphany + +Disassembly of section .text: + +00000000 \: + 0: 0260 bgt 4 \ + 2: 0260 bgt 6 \ + 4: fe60 bgt 0 \ + 6: fd60 bgt 0 \ + 8: 0068 0000 bgt 8 \ + 8: R_EPIPHANY_SIMM24 \.data + c: 0260 bgt 10 \ + e: f960 bgt 0 \ + 10: f860 bgt 0 \ + +00000012 \: + 12: 0220 bgtu 16 \ + 14: fe20 bgtu 10 \ + 16: f520 bgtu 0 \ + 18: 0220 bgtu 1c \ + 1a: fe20 bgtu 16 \ + 1c: f220 bgtu 0 \ + 1e: f120 bgtu 0 \ + 20: 0220 bgtu 24 \ + +00000022 \: + 22: ef70 bgte 0 \ + 24: ee70 bgte 0 \ + 26: ed70 bgte 0 \ + 28: ec70 bgte 0 \ + 2a: eb70 bgte 0 \ + 2c: fe70 bgte 28 \ + 2e: 0078 0000 bgte 2e \ + 2e: R_EPIPHANY_SIMM24 \.data + 32: 0078 0000 bgte 32 \ + 32: R_EPIPHANY_SIMM24 \.data + +00000036 \: + 36: 0230 bgteu 3a \ + 38: fe30 bgteu 34 \ + 3a: 0038 0000 bgteu 3a \ + 3a: R_EPIPHANY_SIMM24 \.data + 3e: 0230 bgteu 42 \ + 40: e030 bgteu 0 \ + 42: 0230 bgteu 46 \ + 44: 0038 0000 bgteu 44 \ + 44: R_EPIPHANY_SIMM24 \.data + 48: 0038 0000 bgteu 48 \ + 48: R_EPIPHANY_SIMM24 \.data + +0000004c \: + 4c: fe80 blt 48 \ + 4e: 0280 blt 52 \ + 50: fe80 blt 4c \ + 52: 0280 blt 56 \ + 54: fe80 blt 50 \ + 56: 0280 blt 5a \ + 58: 0088 0000 blt 58 \ + 58: R_EPIPHANY_SIMM24 \.data + 5c: 0088 0000 blt 5c \ + 5c: R_EPIPHANY_SIMM24 \.data + +00000060 \: + 60: fe50 bltu 5c \ + 62: 0250 bltu 66 \ + 64: fe50 bltu 60 \ + 66: cd50 bltu 0 \ + 68: cc50 bltu 0 \ + 6a: cb50 bltu 0 \ + 6c: 0250 bltu 70 \ + 6e: 0058 0000 bltu 6e \ + 6e: R_EPIPHANY_SIMM24 \.data + +00000072 \: + 72: c790 blte 0 \ + 74: 0098 0000 blte 74 \ + 74: R_EPIPHANY_SIMM24 \.data + 78: 0098 0000 blte 78 \ + 78: R_EPIPHANY_SIMM24 \.data + 7c: c290 blte 0 \ + 7e: fe90 blte 7a \ + 80: c090 blte 0 \ + 82: bf90 blte 0 \ + 84: 0290 blte 88 \ + +00000086 \: + 86: bd40 blteu 0 \ + 88: 0048 0000 blteu 88 \ + 88: R_EPIPHANY_SIMM24 \.data + 8c: ba40 blteu 0 \ + 8e: 0048 0000 blteu 8e \ + 8e: R_EPIPHANY_SIMM24 \.data + 92: b740 blteu 0 \ + 94: fe40 blteu 90 \ + 96: 0048 0000 blteu 96 \ + 96: R_EPIPHANY_SIMM24 \.data + 9a: 0048 0000 blteu 9a \ + 9a: R_EPIPHANY_SIMM24 \.data + +0000009e \: + 9e: b1a0 bbeq 0 \ + a0: b0a0 bbeq 0 \ + a2: 00a8 0000 bbeq a2 \ + a2: R_EPIPHANY_SIMM24 \.data + a6: ada0 bbeq 0 \ + a8: 02a0 bbeq ac \ + aa: 00a8 0000 bbeq aa \ + aa: R_EPIPHANY_SIMM24 \.data + ae: 00a8 0000 bbeq ae \ + ae: R_EPIPHANY_SIMM24 \.data + b2: 02a0 bbeq b6 \ + +000000b4 \: + b4: 00b8 0000 bbne b4 \ + b4: R_EPIPHANY_SIMM24 \.data + b8: feb0 bbne b4 \ + ba: 02b0 bbne be \ + bc: a2b0 bbne 0 \ + be: 02b0 bbne c2 \ + c0: 02b0 bbne c4 \ + c2: 9fb0 bbne 0 \ + c4: 9eb0 bbne 0 \ + +000000c6 \: + c6: 00c8 0000 bblt c6 \ + c6: R_EPIPHANY_SIMM24 \.data + ca: 02c0 bblt ce \ + cc: 02c0 bblt d0 \ + ce: 02c0 bblt d2 \ + d0: fec0 bblt cc \ + d2: 02c0 bblt d6 \ + d4: 96c0 bblt 0 \ + d6: fec0 bblt d2 \ + +000000d8 \: + d8: 02d0 bblte dc \ + da: 02d0 bblte de \ + dc: 92d0 bblte 0 \ + de: 91d0 bblte 0 \ + e0: 02d0 bblte e4 \ + e2: fed0 bblte de \ + e4: 00d8 0000 bblte e4 \ + e4: R_EPIPHANY_SIMM24 \.data + e8: 02d0 bblte ec \ + +000000ea \: + ea: 8be0 b 0 \ + ec: 8ae0 b 0 \ + ee: 02e0 b f2 \ + f0: fee0 b ec \ + f2: 87e0 b 0 \ + f4: 00e8 0000 b f4 \ + f4: R_EPIPHANY_SIMM24 \.data + f8: 00e8 0000 b f8 \ + f8: R_EPIPHANY_SIMM24 \.data + fc: fee0 b f8 \ + +000000fe \: + fe: fef0 bl fa \ + 100: 02f0 bl 104 \ + 102: 7ff8 ffff bl 0 \ + 106: fef0 bl 102 \ + 108: 7cf8 ffff bl 0 \ + 10c: fef0 bl 108 \ + 10e: fef0 bl 10a \ + 110: 78f8 ffff bl 0 \ + +00000114 \: + 114: 114f 0402 jr ip + 118: 0d42 jr r3 + 11a: 0142 jr r0 + 11c: 0d4f 0402 jr fp + 120: 154f 0402 jr sp + 124: 0142 jr r0 + 126: 0d42 jr r3 + 128: 0142 jr r0 + +0000012a \: + 12a: 114f 0402 jr ip + 12e: 0d4f 1c02 jr r59 + 132: 114f 0c02 jr r28 + 136: 0d4f 0c02 jr r27 + 13a: 154f 0402 jr sp + 13e: 0d4f 1802 jr r51 + 142: 014f 1c02 jr r56 + 146: 154f 1402 jr r45 + +0000014a \: + 14a: 115f 0402 jalr ip + 14e: 0d52 jalr r3 + 150: 0152 jalr r0 + 152: 0d5f 0402 jalr fp + 156: 155f 0402 jalr sp + 15a: 0d52 jalr r3 + 15c: 0d5f 0402 jalr fp + 160: 115f 0402 jalr ip + +00000164 \: + 164: 115f 0402 jalr ip + 168: 0d5f 1c02 jalr r59 + 16c: 115f 0c02 jalr r28 + 170: 0d5f 0c02 jalr r27 + 174: 155f 0402 jalr sp + 178: 0d5f 0402 jalr fp + 17c: 115f 0c02 jalr r28 + 180: 0d5f 1c02 jalr r59 + +00000184 \: + 184: 9209 2480 ldrb.l ip,\[ip,\+ip] + 188: 6d81 ldrb r3,\[r3,r3] + 18a: 0001 ldrb r0,\[r0,r0] + 18c: 6d89 2480 ldrb.l fp,\[fp,\+fp] + 190: b689 2480 ldrb.l sp,\[sp,\+sp] + 194: 8009 2000 ldrb.l ip,\[r0,\+r0] + 198: 6b09 0080 ldrb.l r3,\[r2,\+lr] + 19c: 5189 0400 ldrb.l r2,\[ip,\+r3] + +000001a0 \: + 1a0: a18d 2080 ldrb.l sp,\[r0],\+fp + 1a4: c60d 2080 ldrb.l lr,\[r1],\+ip + 1a8: 618d 2080 ldrb.l fp,\[r0],\+fp + +000001ac \: + 1ac: 9209 2480 ldrb.l ip,\[ip,\+ip] + 1b0: 6d89 ff80 ldrb.l r59,\[r59,\+r59] + 1b4: 9209 6d80 ldrb.l r28,\[r28,\+r28] + 1b8: 6d89 6d80 ldrb.l r27,\[r27,\+r27] + 1bc: b689 2480 ldrb.l sp,\[sp,\+sp] + 1c0: 2b89 aa80 ldrb.l r41,\[r18,\+r47] + 1c4: 6289 a900 ldrb.l r43,\[r16,\+r21] + 1c8: 0009 8480 ldrb.l r32,\[r8,\+r8] + +000001cc \: + 1cc: 850d 9900 ldrb.l r36,\[r49],\+r18 + 1d0: 0d0d 9f00 ldrb.l r32,\[r59],\+r50 + 1d4: 4c8d e580 ldrb.l r58,\[fp],\+r25 + +000001d8 \: + 1d8: 900c 2400 ldrb ip,\[ip] + 1dc: 6f84 ldrb r3,\[r3,0x7] + 1de: 0204 ldrb r0,\[r0,0x4] + 1e0: 6d8c 2400 ldrb.l fp,\[fp,\+0x3] + 1e4: b48c 2400 ldrb.l sp,\[sp,\+0x1] + 1e8: d48c 2400 ldrb.l lr,\[sp,\+0x1] + 1ec: 2004 ldrb r1,\[r0] + 1ee: 2484 ldrb r1,\[r1,0x1] + +000001f0 \: + 1f0: 900c 2400 ldrb ip,\[ip] + 1f4: 6f8c fcff ldrb.l r59,\[r59,\+0x7ff] + 1f8: 900c 6c80 ldrb.l r28,\[r28,\+0x400] + 1fc: 6f8c 6c7f ldrb.l r27,\[r27,\+0x3ff] + 200: b48c 2400 ldrb.l sp,\[sp,\+0x1] + 204: e70c 10c4 ldrb.l r7,\[r33,\+0x626] + 208: fa8c 60f4 ldrb.l r31,\[r6,\+0x7a5] + 20c: 438c 20e4 ldrb.l sl,\[r0,\+0x727] + +00000210 \: + 210: 9229 2480 ldrh.l ip,\[ip,\+ip] + 214: 6da1 ldrh r3,\[r3,r3] + 216: 0021 ldrh r0,\[r0,r0] + 218: 6da9 2480 ldrh.l fp,\[fp,\+fp] + 21c: b6a9 2480 ldrh.l sp,\[sp,\+sp] + 220: 0329 0080 ldrh.l r0,\[r0,\+lr] + 224: daa9 2480 ldrh.l lr,\[lr,\+sp] + 228: 0da9 0480 ldrh.l r0,\[fp,\+fp] + +0000022c \: + 22c: 55ad 0480 ldrh.l r2,\[sp],\+fp + 230: d5ad 4480 ldrh.l r22,\[sp],\+fp + +00000234 \: + 234: 9229 2480 ldrh.l ip,\[ip,\+ip] + 238: 6da9 ff80 ldrh.l r59,\[r59,\+r59] + 23c: 9229 6d80 ldrh.l r28,\[r28,\+r28] + 240: 6da9 6d80 ldrh.l r27,\[r27,\+r27] + 244: b6a9 2480 ldrh.l sp,\[sp,\+sp] + 248: c6a9 a900 ldrh.l r46,\[r17,\+r21] + 24c: c7a9 6280 ldrh.l r30,\[r1,\+r47] + 250: 6e29 a900 ldrh.l r43,\[r19,\+r20] + +00000254 \: + 254: 1ead 8d80 ldrh.l r32,\[r31],\+r29 + 258: 9d2d d480 ldrh.l r52,\[r47],\+sl + 25c: e1ad 7400 ldrh.l r31,\[r40],\+r3 + +00000260 \: + 260: 902c 2400 ldrh ip,\[ip] + 264: 6fa4 ldrh r3,\[r3,0x7] + 266: 0224 ldrh r0,\[r0,0x4] + 268: 6dac 2400 ldrh.l fp,\[fp,\+0x3] + 26c: b4ac 2400 ldrh.l sp,\[sp,\+0x1] + 270: c82c 2000 ldrh lr,\[r2] + 274: 63a4 ldrh r3,\[r0,0x7] + 276: 0f24 ldrh r0,\[r3,0x6] + +00000278 \: + 278: 902c 2400 ldrh ip,\[ip] + 27c: 6fac fcff ldrh.l r59,\[r59,\+0x7ff] + 280: 902c 6c80 ldrh.l r28,\[r28,\+0x400] + 284: 6fac 6c7f ldrh.l r27,\[r27,\+0x3ff] + 288: b4ac 2400 ldrh.l sp,\[sp,\+0x1] + 28c: a2ac ac98 ldrh.l r45,\[r24,\+0x4c5] + 290: 8d2c 94d9 ldrh.l r36,\[r43,\+0x6ca] + 294: 40ac b803 ldrh.l r42,\[r48,\+0x19] + +00000298 \: + 298: 9249 2480 ldr.l ip,\[ip,\+ip] + 29c: 6dc1 ldr r3,\[r3,r3] + 29e: 0041 ldr r0,\[r0,r0] + 2a0: 6dc9 2480 ldr.l fp,\[fp,\+fp] + 2a4: b6c9 2480 ldr.l sp,\[sp,\+sp] + 2a8: 6f49 0480 ldr.l r3,\[fp,\+lr] + 2ac: 9949 2400 ldr.l ip,\[lr,\+r2] + 2b0: 6b49 0080 ldr.l r3,\[r2,\+lr] + +000002b4 \: + 2b4: cecd 2480 ldr.l lr,\[fp],\+sp + 2b8: 144d 0400 ldr.l r0,\[sp],\+r0 + 2bc: 68cd 2000 ldr.l fp,\[r2],\+r1 + +000002c0 \: + 2c0: 9249 2480 ldr.l ip,\[ip,\+ip] + 2c4: 6dc9 ff80 ldr.l r59,\[r59,\+r59] + 2c8: 9249 6d80 ldr.l r28,\[r28,\+r28] + 2cc: 6dc9 6d80 ldr.l r27,\[r27,\+r27] + 2d0: b6c9 2480 ldr.l sp,\[sp,\+sp] + 2d4: 03c9 6a80 ldr.l r24,\[r16,\+r47] + 2d8: c4c9 5700 ldr.l r22,\[r41,\+r49] + 2dc: cfc9 2600 ldr.l lr,\[fp,\+r39] + +000002e0 \: + 2e0: b74d 4180 ldr.l r21,\[r5],\+r30 + 2e4: 934d 8480 ldr.l r36,\[ip],\+lr + 2e8: 91cd 2080 ldr.l ip,\[r4],\+fp + +000002ec \: + 2ec: 904c 2400 ldr ip,\[ip] + 2f0: 6fc4 ldr r3,\[r3,0x7] + 2f2: 0244 ldr r0,\[r0,0x4] + 2f4: 6dcc 2400 ldr.l fp,\[fp,\+0x3] + 2f8: b4cc 2400 ldr.l sp,\[sp,\+0x1] + 2fc: 144c 0400 ldr r0,\[sp] + 300: 87cc 2000 ldr.l ip,\[r1,\+0x7] + 304: 64cc 2000 ldr.l fp,\[r1,\+0x1] + +00000308 \: + 308: 904c 2400 ldr ip,\[ip] + 30c: 6fcc fcff ldr.l r59,\[r59,\+0x7ff] + 310: 904c 6c80 ldr.l r28,\[r28,\+0x400] + 314: 6fcc 6c7f ldr.l r27,\[r27,\+0x3ff] + 318: b4cc 2400 ldr.l sp,\[sp,\+0x1] + 31c: dbcc 4c79 ldr.l r22,\[r30,\+0x3cf] + 320: f0cc 14aa ldr.l r7,\[r44,\+0x551] + 324: efcc 48e7 ldr.l r23,\[r19,\+0x73f] + +00000328 \: + 328: 9269 2480 ldrd.l ip,\[ip,\+ip] + 32c: 8de1 ldrd r4,\[r3,r3] + 32e: 0061 ldrd r0,\[r0,r0] + 330: cde9 2480 ldrd.l lr,\[fp,\+fp] + 334: 16e9 4480 ldrd.l r16,\[sp,\+sp] + 338: ca69 6080 ldrd.l r30,\[r2,\+ip] + 33c: 0de9 0400 ldrd.l r0,\[fp,\+r3] + 340: 9369 4480 ldrd.l r20,\[ip,\+lr] + +00000344 \: + 344: 8de5 ldrd r4,\[r3],r3 + 346: 0ded 4480 ldrd.l r16,\[fp],\+fp + 34a: 96ed 4480 ldrd.l r20,\[sp],\+sp + 34e: 50ed 2400 ldrd.l sl,\[ip],\+r1 + 352: cf6d 6480 ldrd.l r30,\[fp],\+lr + 356: daed e480 ldrd.l r62,\[lr],\+sp + +0000035a \: + 35a: 9269 2480 ldrd.l ip,\[ip,\+ip] + 35e: 4de9 ff80 ldrd.l r58,\[r59,\+r59] + 362: 9269 6d80 ldrd.l r28,\[r28,\+r28] + 366: 4de9 6d80 ldrd.l r26,\[r27,\+r27] + 36a: 96e9 2480 ldrd.l ip,\[sp,\+sp] + 36e: 0de9 8780 ldrd.l r32,\[fp,\+r59] + 372: 8769 0800 ldrd.l r4,\[r17,\+r6] + 376: 00e9 9400 ldrd.l r32,\[r40,\+r1] + +0000037a \: + 37a: 16ed 4480 ldrd.l r16,\[sp],\+sp + 37e: c76d b180 ldrd.l r46,\[r33],\+r30 + 382: 11ed 7380 ldrd.l r24,\[r36],\+r59 + 386: 41ed f080 ldrd.l r58,\[r32],\+fp + +0000038a \: + 38a: 906c 2400 ldrd ip,\[ip] + 38e: 8fe4 ldrd r4,\[r3,0x7] + 390: 0264 ldrd r0,\[r0,0x4] + 392: 0dec 4400 ldrd.l r16,\[fp,\+0x3] + 396: 54ec 4400 ldrd.l r18,\[sp,\+0x1] + 39a: 0dec 0400 ldrd.l r0,\[fp,\+0x3] + 39e: cfec 2400 ldrd.l lr,\[fp,\+0x7] + 3a2: d0ec 2400 ldrd.l lr,\[ip,\+0x1] + +000003a6 \: + 3a6: 906c 2400 ldrd ip,\[ip] + 3aa: 4fec fcff ldrd.l r58,\[r59,\+0x7ff] + 3ae: 906c 6c80 ldrd.l r28,\[r28,\+0x400] + 3b2: 4fec 0c7f ldrd.l r2,\[r27,\+0x3ff] + 3b6: 14ec 4400 ldrd.l r16,\[sp,\+0x1] + 3ba: 94ec 085f ldrd.l r4,\[r21,\+0x2f9] + 3be: c4ec 34c2 ldrd.l lr,\[r41,\+0x611] + 3c2: d96c 04f0 ldrd.l r6,\[lr,\+0x782] + +000003c6 \: + 3c6: 9219 2480 strb.l ip,\[ip,\+ip] + 3ca: 6d91 strb r3,\[r3,r3] + 3cc: 0011 strb r0,\[r0,r0] + 3ce: 6d99 2480 strb.l fp,\[fp,\+fp] + 3d2: b699 2480 strb.l sp,\[sp,\+sp] + 3d6: 3999 0400 strb.l r1,\[lr,\+r3] + 3da: 8f19 2080 strb.l ip,\[r3,\+lr] + 3de: d219 2480 strb.l lr,\[ip,\+ip] + +000003e2 \: + 3e2: 9219 2480 strb.l ip,\[ip,\+ip] + 3e6: 6d99 ff80 strb.l r59,\[r59,\+r59] + 3ea: 9219 6d80 strb.l r28,\[r28,\+r28] + 3ee: 6d99 6d80 strb.l r27,\[r27,\+r27] + 3f2: b699 2480 strb.l sp,\[sp,\+sp] + 3f6: 5e99 c480 strb.l r50,\[r15,\+sp] + 3fa: ce19 2700 strb.l lr,\[fp,\+r52] + 3fe: c199 2f00 strb.l lr,\[r24,\+r51] + +00000402 \: + 402: 921d 2480 strb.l ip,\[ip],\+ip + 406: 6d95 strb r3,\[r3],r3 + 408: 0015 strb r0,\[r0],r0 + 40a: 6d9d 2480 strb.l fp,\[fp],\+fp + 40e: b69d 2480 strb.l sp,\[sp],\+sp + 412: 4e1d 0480 strb.l r2,\[fp],\+ip + 416: 609d 2000 strb.l fp,\[r0],\+r1 + 41a: 4995 strb r2,\[r2],r3 + +0000041c \: + 41c: 921d 2480 strb.l ip,\[ip],\+ip + 420: 6d9d ff80 strb.l r59,\[r59],\+r59 + 424: 921d 6d80 strb.l r28,\[r28],\+r28 + 428: 6d9d 6d80 strb.l r27,\[r27],\+r27 + 42c: b69d 2480 strb.l sp,\[sp],\+sp + 430: cd1d 3800 strb.l lr,\[r51],\+r2 + 434: d11d 1700 strb.l r6,\[r44],\+r50 + 438: 849d a700 strb.l r44,\[sb],\+r49 + +0000043c \: + 43c: 901c 2400 strb ip,\[ip] + 440: 6f94 strb r3,\[r3,0x7] + 442: 0214 strb r0,\[r0,0x4] + 444: 6d9c 2400 strb.l fp,\[fp,\+0x3] + 448: b49c 2400 strb.l sp,\[sp,\+0x1] + 44c: 0894 strb r0,\[r2,0x1] + 44e: a99c 2000 strb.l sp,\[r2,\+0x3] + 452: 6a1c 2000 strb.l fp,\[r2,\+0x4] + +00000456 \: + 456: 901c 2400 strb ip,\[ip] + 45a: 6f9c fcff strb.l r59,\[r59,\+0x7ff] + 45e: 901c 6c80 strb.l r28,\[r28,\+0x400] + 462: 6f9c 6c7f strb.l r27,\[r27,\+0x3ff] + 466: b49c 2400 strb.l sp,\[sp,\+0x1] + 46a: ea1c 44af strb.l r23,\[sl,\+0x57c] + 46e: 8e9c 30b6 strb.l ip,\[r35,\+0x5b5] + 472: c91c dc88 strb.l r54,\[r58,\+0x442] + +00000476 \: + 476: 9239 2480 strh.l ip,\[ip,\+ip] + 47a: 6db1 strh r3,\[r3,r3] + 47c: 0031 strh r0,\[r0,r0] + 47e: 6db9 2480 strh.l fp,\[fp,\+fp] + 482: b6b9 2480 strh.l sp,\[sp,\+sp] + 486: 0cb1 strh r0,\[r3,r1] + 488: 2d39 0400 strh.l r1,\[fp,\+r2] + 48c: 6db9 0080 strh.l r3,\[r3,\+fp] + +00000490 \: + 490: 9239 2480 strh.l ip,\[ip,\+ip] + 494: 6db9 ff80 strh.l r59,\[r59,\+r59] + 498: 9239 6d80 strh.l r28,\[r28,\+r28] + 49c: 6db9 6d80 strh.l r27,\[r27,\+r27] + 4a0: b6b9 2480 strh.l sp,\[sp,\+sp] + 4a4: 1bb9 5180 strh.l r16,\[r38,\+r31] + 4a8: 1239 8580 strh.l r32,\[ip,\+r28] + 4ac: 2cb9 e480 strh.l r57,\[fp,\+sb] + +000004b0 \: + 4b0: 923d 2480 strh.l ip,\[ip],\+ip + 4b4: 6db5 strh r3,\[r3],r3 + 4b6: 0035 strh r0,\[r0],r0 + 4b8: 6dbd 2480 strh.l fp,\[fp],\+fp + 4bc: b6bd 2480 strh.l sp,\[sp],\+sp + 4c0: 0abd 0080 strh.l r0,\[r2],\+sp + 4c4: ac3d 2000 strh.l sp,\[r3],\+r0 + 4c8: 2035 strh r1,\[r0],r0 + +000004ca \: + 4ca: 923d 2480 strh.l ip,\[ip],\+ip + 4ce: 6dbd ff80 strh.l r59,\[r59],\+r59 + 4d2: 923d 6d80 strh.l r28,\[r28],\+r28 + 4d6: 6dbd 6d80 strh.l r27,\[r27],\+r27 + 4da: b6bd 2480 strh.l sp,\[sp],\+sp + 4de: 773d 1300 strh.l r3,\[r37],\+r54 + 4e2: 98bd 1980 strh.l r4,\[r54],\+r25 + 4e6: a0bd 1180 strh.l r5,\[r32],\+r25 + +000004ea \: + 4ea: 903c 2400 strh ip,\[ip] + 4ee: 6fb4 strh r3,\[r3,0x7] + 4f0: 0234 strh r0,\[r0,0x4] + 4f2: 6dbc 2400 strh.l fp,\[fp,\+0x3] + 4f6: b4bc 2400 strh.l sp,\[sp,\+0x1] + 4fa: 61b4 strh r3,\[r0,0x3] + 4fc: d3bc 2400 strh.l lr,\[ip,\+0x7] + 500: 6bb4 strh r3,\[r2,0x7] + +00000502 \: + 502: 903c 2400 strh ip,\[ip] + 506: 6fbc fcff strh.l r59,\[r59,\+0x7ff] + 50a: 903c 6c80 strh.l r28,\[r28,\+0x400] + 50e: 6fbc 6c7f strh.l r27,\[r27,\+0x3ff] + 512: b4bc 2400 strh.l sp,\[sp,\+0x1] + 516: fabc 1093 strh.l r7,\[r38,\+0x49d] + 51a: 32bc 6009 strh.l r25,\[r4,\+0x4d] + 51e: 6fbc 244e strh.l fp,\[fp,\+0x277] + +00000522 \: + 522: 9259 2480 str.l ip,\[ip,\+ip] + 526: 6dd1 str r3,\[r3,r3] + 528: 0051 str r0,\[r0,r0] + 52a: 6dd9 2480 str.l fp,\[fp,\+fp] + 52e: b6d9 2480 str.l sp,\[sp,\+sp] + 532: cdd9 2000 str.l lr,\[r3,\+r3] + 536: 6c59 0400 str.l r3,\[fp,\+r0] + 53a: 94d9 2400 str.l ip,\[sp,\+r1] + +0000053e \: + 53e: 9259 2480 str.l ip,\[ip,\+ip] + 542: 6dd9 ff80 str.l r59,\[r59,\+r59] + 546: 9259 6d80 str.l r28,\[r28,\+r28] + 54a: 6dd9 6d80 str.l r27,\[r27,\+r27] + 54e: b6d9 2480 str.l sp,\[sp,\+sp] + 552: b659 cd80 str.l r53,\[r29,\+r28] + 556: d959 6a00 str.l r30,\[r22,\+r34] + 55a: 9259 6e80 str.l r28,\[r28,\+r44] + +0000055e \: + 55e: 925d 2480 str.l ip,\[ip],\+ip + 562: 6dd5 str r3,\[r3],r3 + 564: 0055 str r0,\[r0],r0 + 566: 6ddd 2480 str.l fp,\[fp],\+fp + 56a: b6dd 2480 str.l sp,\[sp],\+sp + 56e: c05d 2000 str.l lr,\[r0],\+r0 + 572: 62dd 2080 str.l fp,\[r0],\+sp + 576: 6c5d 0400 str.l r3,\[fp],\+r0 + +0000057a \: + 57a: 925d 2480 str.l ip,\[ip],\+ip + 57e: 6ddd ff80 str.l r59,\[r59],\+r59 + 582: 925d 6d80 str.l r28,\[r28],\+r28 + 586: 6ddd 6d80 str.l r27,\[r27],\+r27 + 58a: b6dd 2480 str.l sp,\[sp],\+sp + 58e: d3dd 5080 str.l r22,\[r36],\+r15 + 592: 97dd a680 str.l r44,\[sp],\+r47 + 596: 62dd 5880 str.l r19,\[r48],\+sp + +0000059a \: + 59a: 905c 2400 str ip,\[ip] + 59e: 6fd4 str r3,\[r3,0x7] + 5a0: 0254 str r0,\[r0,0x4] + 5a2: 6ddc 2400 str.l fp,\[fp,\+0x3] + 5a6: b4dc 2400 str.l sp,\[sp,\+0x1] + 5aa: 6ddc 0400 str.l r3,\[fp,\+0x3] + 5ae: b35c 2400 str.l sp,\[ip,\+0x6] + 5b2: 39dc 0400 str.l r1,\[lr,\+0x3] + +000005b6 \: + 5b6: 905c 2400 str ip,\[ip] + 5ba: 6fdc fcff str.l r59,\[r59,\+0x7ff] + 5be: 905c 6c80 str.l r28,\[r28,\+0x400] + 5c2: 6fdc 6c7f str.l r27,\[r27,\+0x3ff] + 5c6: b4dc 2400 str.l sp,\[sp,\+0x1] + 5ca: b15c b409 str.l r45,\[r44,\+0x4a] + 5ce: 495c f82e str.l r58,\[r50,\+0x172] + 5d2: 0d5c a04e str.l r40,\[r3,\+0x272] + +000005d6 \: + 5d6: 9279 2480 strd.l ip,\[ip,\+ip] + 5da: 4df1 strd r2,\[r3,r3] + 5dc: 0071 strd r0,\[r0,r0] + 5de: 0df9 4480 strd.l r16,\[fp,\+fp] + 5e2: 56f9 4480 strd.l r18,\[sp,\+sp] + 5e6: 8cf9 2000 strd.l ip,\[r3,\+r1] + 5ea: 59f9 0480 strd.l r2,\[lr,\+fp] + 5ee: 8979 2000 strd.l ip,\[r2,\+r2] + +000005f2 \: + 5f2: 9279 2480 strd.l ip,\[ip,\+ip] + 5f6: 4df9 ff80 strd.l r58,\[r59,\+r59] + 5fa: 9279 6d80 strd.l r28,\[r28,\+r28] + 5fe: 4df9 6d80 strd.l r26,\[r27,\+r27] + 602: d6f9 2480 strd.l lr,\[sp,\+sp] + 606: d779 9880 strd.l r38,\[r53,\+lr] + 60a: 0df9 6a80 strd.l r24,\[r19,\+r43] + 60e: 8b79 2580 strd.l ip,\[sl,\+r30] + +00000612 \: + 612: 927d 2480 strd.l ip,\[ip],\+ip + 616: 4df5 strd r2,\[r3],r3 + 618: 0075 strd r0,\[r0],r0 + 61a: cdfd 0480 strd.l r6,\[fp],\+fp + 61e: 96fd 0480 strd.l r4,\[sp],\+sp + 622: 4c75 strd r2,\[r3],r0 + 624: 40f5 strd r2,\[r0],r1 + 626: 58fd 0400 strd.l r2,\[lr],\+r1 + +0000062a \: + 62a: 927d 2480 strd.l ip,\[ip],\+ip + 62e: 4dfd ff80 strd.l r58,\[r59],\+r59 + 632: 927d 6d80 strd.l r28,\[r28],\+r28 + 636: 4dfd 6d80 strd.l r26,\[r27],\+r27 + 63a: d6fd 4480 strd.l r22,\[sp],\+sp + 63e: ca7d 0680 strd.l r6,\[sl],\+r44 + 642: 4efd 3400 strd.l sl,\[r43],\+r5 + 646: c77d a880 strd.l r46,\[r17],\+lr + +0000064a \: + 64a: 107c 0400 strd r0,\[ip] + 64e: 4ff4 strd r2,\[r3,0x7] + 650: 0274 strd r0,\[r0,0x4] + 652: 4dfc 0400 strd.l r2,\[fp,\+0x3] + 656: 94fc 0400 strd.l r4,\[sp,\+0x1] + 65a: 4af4 strd r2,\[r2,0x5] + 65c: cff4 strd r6,\[r3,0x7] + 65e: c574 strd r6,\[r1,0x2] + +00000660 \: + 660: 907c 2400 strd ip,\[ip] + 664: 4ffc fcff strd.l r58,\[r59,\+0x7ff] + 668: 907c 6c80 strd.l r28,\[r28,\+0x400] + 66c: 4ffc 6c7f strd.l r26,\[r27,\+0x3ff] + 670: d4fc 2400 strd.l lr,\[sp,\+0x1] + 674: 93fc 7859 strd.l r28,\[r52,\+0x2cf] + 678: 157c b8f9 strd.l r40,\[r53,\+0x7ca] + 67c: 877c bc3d strd.l r44,\[r57,\+0x1ee] + +00000680 \: + 680: 900f 2402 moveq.l ip,ip + 684: 6c02 moveq r3,r3 + 686: 0002 moveq r0,r0 + 688: 6c0f 2402 moveq.l fp,fp + 68c: b40f 2402 moveq.l sp,sp + 690: 880f 2002 moveq.l ip,r2 + 694: 4c0f 0402 moveq.l r2,fp + 698: 740f 2402 moveq.l fp,sp + +0000069c \: + 69c: 900f 2402 moveq.l ip,ip + 6a0: 6c0f fc02 moveq.l r59,r59 + 6a4: 900f 6c02 moveq.l r28,r28 + 6a8: 6c0f 6c02 moveq.l r27,r27 + 6ac: b40f 2402 moveq.l sp,sp + 6b0: 180f 8c02 moveq.l r32,r30 + 6b4: 7c0f b002 moveq.l r43,r39 + 6b8: 240f 7002 moveq.l r25,r33 + +000006bc \: + 6bc: 901f 2402 movne.l ip,ip + 6c0: 6c12 movne r3,r3 + 6c2: 0012 movne r0,r0 + 6c4: 6c1f 2402 movne.l fp,fp + 6c8: b41f 2402 movne.l sp,sp + 6cc: 6c12 movne r3,r3 + 6ce: 0c1f 0402 movne.l r0,fp + 6d2: 6c1f 2402 movne.l fp,fp + +000006d6 \: + 6d6: 901f 2402 movne.l ip,ip + 6da: 6c1f fc02 movne.l r59,r59 + 6de: 901f 6c02 movne.l r28,r28 + 6e2: 6c1f 6c02 movne.l r27,r27 + 6e6: b41f 2402 movne.l sp,sp + 6ea: 8c12 movne r4,r3 + 6ec: 8c1f 6402 movne.l r28,fp + 6f0: fc1f 5002 movne.l r23,r39 + +000006f4 \: + 6f4: 906f 2402 movgt.l ip,ip + 6f8: 6c62 movgt r3,r3 + 6fa: 0062 movgt r0,r0 + 6fc: 6c6f 2402 movgt.l fp,fp + 700: b46f 2402 movgt.l sp,sp + 704: 2c62 movgt r1,r3 + 706: cc6f 2002 movgt.l lr,r3 + 70a: 306f 0402 movgt.l r1,ip + +0000070e \: + 70e: 906f 2402 movgt.l ip,ip + 712: 6c6f fc02 movgt.l r59,r59 + 716: 906f 6c02 movgt.l r28,r28 + 71a: 6c6f 6c02 movgt.l r27,r27 + 71e: b46f 2402 movgt.l sp,sp + 722: 346f 0802 movgt.l r1,r21 + 726: ac6f 2002 movgt.l sp,r3 + 72a: 8c6f 7402 movgt.l r28,r43 + +0000072e \: + 72e: 902f 2402 movgtu.l ip,ip + 732: 6c22 movgtu r3,r3 + 734: 0022 movgtu r0,r0 + 736: 6c2f 2402 movgtu.l fp,fp + 73a: b42f 2402 movgtu.l sp,sp + 73e: 982f 2402 movgtu.l ip,lr + 742: b02f 2402 movgtu.l sp,ip + 746: 942f 2402 movgtu.l ip,sp + +0000074a \: + 74a: 902f 2402 movgtu.l ip,ip + 74e: 6c2f fc02 movgtu.l r59,r59 + 752: 902f 6c02 movgtu.l r28,r28 + 756: 6c2f 6c02 movgtu.l r27,r27 + 75a: b42f 2402 movgtu.l sp,sp + 75e: 442f 9002 movgtu.l r34,r33 + 762: 202f 5802 movgtu.l r17,r48 + 766: 602f 8c02 movgtu.l r35,r24 + +0000076a \: + 76a: 907f 2402 movgte.l ip,ip + 76e: 6c72 movgte r3,r3 + 770: 0072 movgte r0,r0 + 772: 6c7f 2402 movgte.l fp,fp + 776: b47f 2402 movgte.l sp,sp + 77a: 0072 movgte r0,r0 + 77c: 547f 0402 movgte.l r2,sp + 780: c87f 2002 movgte.l lr,r2 + +00000784 \: + 784: 907f 2402 movgte.l ip,ip + 788: 6c7f fc02 movgte.l r59,r59 + 78c: 907f 6c02 movgte.l r28,r28 + 790: 6c7f 6c02 movgte.l r27,r27 + 794: b47f 2402 movgte.l sp,sp + 798: 8c7f 3c02 movgte.l ip,r59 + 79c: a87f 9402 movgte.l r37,r42 + 7a0: 887f ac02 movgte.l r44,r26 + +000007a4 \: + 7a4: 903f 2402 movgteu.l ip,ip + 7a8: 6c32 movgteu r3,r3 + 7aa: 0032 movgteu r0,r0 + 7ac: 6c3f 2402 movgteu.l fp,fp + 7b0: b43f 2402 movgteu.l sp,sp + 7b4: d03f 2402 movgteu.l lr,ip + 7b8: a43f 2002 movgteu.l sp,r1 + 7bc: 983f 2402 movgteu.l ip,lr + +000007c0 \: + 7c0: 903f 2402 movgteu.l ip,ip + 7c4: 6c3f fc02 movgteu.l r59,r59 + 7c8: 903f 6c02 movgteu.l r28,r28 + 7cc: 6c3f 6c02 movgteu.l r27,r27 + 7d0: b43f 2402 movgteu.l sp,sp + 7d4: 5c3f f402 movgteu.l r58,r47 + 7d8: 143f e002 movgteu.l r56,r5 + 7dc: 903f 5802 movgteu.l r20,r52 + +000007e0 \: + 7e0: 908f 2402 movlt.l ip,ip + 7e4: 6c82 movlt r3,r3 + 7e6: 0082 movlt r0,r0 + 7e8: 6c8f 2402 movlt.l fp,fp + 7ec: b48f 2402 movlt.l sp,sp + 7f0: 6c82 movlt r3,r3 + 7f2: 4882 movlt r2,r2 + 7f4: 988f 2402 movlt.l ip,lr + +000007f8 \: + 7f8: 908f 2402 movlt.l ip,ip + 7fc: 6c8f fc02 movlt.l r59,r59 + 800: 908f 6c02 movlt.l r28,r28 + 804: 6c8f 6c02 movlt.l r27,r27 + 808: b48f 2402 movlt.l sp,sp + 80c: 908f c402 movlt.l r52,ip + 810: 388f e802 movlt.l r57,r22 + 814: 1c8f 2002 movlt.l r8,r7 + +00000818 \: + 818: 905f 2402 movltu.l ip,ip + 81c: 6c52 movltu r3,r3 + 81e: 0052 movltu r0,r0 + 820: 6c5f 2402 movltu.l fp,fp + 824: b45f 2402 movltu.l sp,sp + 828: 885f 2002 movltu.l ip,r2 + 82c: b05f 2402 movltu.l sp,ip + 830: 2052 movltu r1,r0 + +00000832 \: + 832: 905f 2402 movltu.l ip,ip + 836: 6c5f fc02 movltu.l r59,r59 + 83a: 905f 6c02 movltu.l r28,r28 + 83e: 6c5f 6c02 movltu.l r27,r27 + 842: b45f 2402 movltu.l sp,sp + 846: bc5f 2c02 movltu.l sp,r31 + 84a: 705f a402 movltu.l r43,ip + 84e: e05f 1c02 movltu.l r7,r56 + +00000852 \: + 852: 909f 2402 movlte.l ip,ip + 856: 6c92 movlte r3,r3 + 858: 0092 movlte r0,r0 + 85a: 6c9f 2402 movlte.l fp,fp + 85e: b49f 2402 movlte.l sp,sp + 862: 0c92 movlte r0,r3 + 864: 709f 0402 movlte.l r3,ip + 868: 789f 0402 movlte.l r3,lr + +0000086c \: + 86c: 909f 2402 movlte.l ip,ip + 870: 6c9f fc02 movlte.l r59,r59 + 874: 909f 6c02 movlte.l r28,r28 + 878: 6c9f 6c02 movlte.l r27,r27 + 87c: b49f 2402 movlte.l sp,sp + 880: cc9f 6c02 movlte.l r30,r27 + 884: 709f 9802 movlte.l r35,r52 + 888: f49f 3802 movlte.l r15,r53 + +0000088c \: + 88c: 904f 2402 movlteu.l ip,ip + 890: 6c42 movlteu r3,r3 + 892: 0042 movlteu r0,r0 + 894: 6c4f 2402 movlteu.l fp,fp + 898: b44f 2402 movlteu.l sp,sp + 89c: 984f 2402 movlteu.l ip,lr + 8a0: 4842 movlteu r2,r2 + 8a2: 4c4f 0402 movlteu.l r2,fp + +000008a6 \: + 8a6: 904f 2402 movlteu.l ip,ip + 8aa: 6c4f fc02 movlteu.l r59,r59 + 8ae: 904f 6c02 movlteu.l r28,r28 + 8b2: 6c4f 6c02 movlteu.l r27,r27 + 8b6: b44f 2402 movlteu.l sp,sp + 8ba: f04f 7002 movlteu.l r31,r36 + 8be: 084f 7802 movlteu.l r24,r50 + 8c2: 984f d802 movlteu.l r52,r54 + +000008c6 \: + 8c6: 90ef 2402 mov.l ip,ip + 8ca: 6ce2 mov r3,r3 + 8cc: 00e2 mov r0,r0 + 8ce: 6cef 2402 mov.l fp,fp + 8d2: b4ef 2402 mov.l sp,sp + 8d6: 84ef 2002 mov.l ip,r1 + 8da: 80ef 2002 mov.l ip,r0 + 8de: 10ef 0402 mov.l r0,ip + +000008e2 \: + 8e2: 90ef 2402 mov.l ip,ip + 8e6: 6cef fc02 mov.l r59,r59 + 8ea: 90ef 6c02 mov.l r28,r28 + 8ee: 6cef 6c02 mov.l r27,r27 + 8f2: b4ef 2402 mov.l sp,sp + 8f6: 2cef 1c02 mov.l r1,r59 + 8fa: 90ef 6402 mov.l r28,ip + 8fe: a8ef 1402 mov.l r5,r42 + +00000902 \: + 902: 90af 2402 movbeq.l ip,ip + 906: 6ca2 movbeq r3,r3 + 908: 00a2 movbeq r0,r0 + 90a: 6caf 2402 movbeq.l fp,fp + 90e: b4af 2402 movbeq.l sp,sp + 912: c8af 2002 movbeq.l lr,r2 + 916: 68af 2002 movbeq.l fp,r2 + 91a: 84af 2002 movbeq.l ip,r1 + +0000091e \: + 91e: 90af 2402 movbeq.l ip,ip + 922: 6caf fc02 movbeq.l r59,r59 + 926: 90af 6c02 movbeq.l r28,r28 + 92a: 6caf 6c02 movbeq.l r27,r27 + 92e: b4af 2402 movbeq.l sp,sp + 932: a0af 6802 movbeq.l r29,r16 + 936: 58af 5402 movbeq.l r18,r46 + 93a: c4af 2002 movbeq.l lr,r1 + +0000093e \: + 93e: 90bf 2402 movbne.l ip,ip + 942: 6cb2 movbne r3,r3 + 944: 00b2 movbne r0,r0 + 946: 6cbf 2402 movbne.l fp,fp + 94a: b4bf 2402 movbne.l sp,sp + 94e: 28b2 movbne r1,r2 + 950: 84bf 2002 movbne.l ip,r1 + 954: 8cbf 2002 movbne.l ip,r3 + +00000958 \: + 958: 90bf 2402 movbne.l ip,ip + 95c: 6cbf fc02 movbne.l r59,r59 + 960: 90bf 6c02 movbne.l r28,r28 + 964: 6cbf 6c02 movbne.l r27,r27 + 968: b4bf 2402 movbne.l sp,sp + 96c: fcbf 2002 movbne.l r15,r7 + 970: 0cbf 7402 movbne.l r24,r43 + 974: f0bf 5802 movbne.l r23,r52 + +00000978 \: + 978: 90cf 2402 movblt.l ip,ip + 97c: 6cc2 movblt r3,r3 + 97e: 00c2 movblt r0,r0 + 980: 6ccf 2402 movblt.l fp,fp + 984: b4cf 2402 movblt.l sp,sp + 988: b8cf 2402 movblt.l sp,lr + 98c: 98cf 2402 movblt.l ip,lr + 990: d4cf 2402 movblt.l lr,sp + +00000994 \: + 994: 90cf 2402 movblt.l ip,ip + 998: 6ccf fc02 movblt.l r59,r59 + 99c: 90cf 6c02 movblt.l r28,r28 + 9a0: 6ccf 6c02 movblt.l r27,r27 + 9a4: b4cf 2402 movblt.l sp,sp + 9a8: 90cf d402 movblt.l r52,r44 + 9ac: 2ccf f002 movblt.l r57,r35 + 9b0: a4cf d002 movblt.l r53,r33 + +000009b4 \: + 9b4: 90df 2402 movblte.l ip,ip + 9b8: 6cd2 movblte r3,r3 + 9ba: 00d2 movblte r0,r0 + 9bc: 6cdf 2402 movblte.l fp,fp + 9c0: b4df 2402 movblte.l sp,sp + 9c4: b0df 2402 movblte.l sp,ip + 9c8: 0cdf 0402 movblte.l r0,fp + 9cc: 14df 0402 movblte.l r0,sp + +000009d0 \: + 9d0: 90df 2402 movblte.l ip,ip + 9d4: 6cdf fc02 movblte.l r59,r59 + 9d8: 90df 6c02 movblte.l r28,r28 + 9dc: 6cdf 6c02 movblte.l r27,r27 + 9e0: b4df 2402 movblte.l sp,sp + 9e4: 50df f402 movblte.l r58,r44 + 9e8: 78df 8802 movblte.l r35,r22 + 9ec: 08df 2002 movblte.l r8,r2 + +000009f0 \: + 9f0: 810f 2002 movts.l config,ip + 9f4: 750f 0402 movts.l ipend,r3 + 9f8: 010f 0402 movts.l iret,r0 + 9fc: 6d0f 2002 movts.l debug,fp + a00: a50f 2002 movts.l status,sp + a04: 650f 2002 movts.l status,fp + a08: 690f 2002 movts.l pc,fp + a0c: 050f 0402 movts.l imask,r0 + +00000a10 \: + a10: 810f 2002 movts.l config,ip + a14: 750f e402 movts.l ipend,r59 + a18: 810f 6402 movts.l iret,r28 + a1c: 6d0f 6002 movts.l debug,r27 + a20: a50f 2002 movts.l status,sp + a24: 4d0f c002 movts.l debug,r50 + a28: 350f 8402 movts.l ipend,r33 + a2c: 850f 2002 movts.l status,ip + +00000a30 \: + a30: 811f 2002 movfs.l ip,config + a34: 751f 0402 movfs.l r3,ipend + a38: 011f 0402 movfs.l r0,iret + a3c: 6d1f 2002 movfs.l fp,debug + a40: a51f 2002 movfs.l sp,status + a44: 211f 0402 movfs.l r1,iret + a48: 4512 movfs r2,status + a4a: cd1f 2002 movfs.l lr,debug + +00000a4e \: + a4e: 811f 2002 movfs.l ip,config + a52: 751f e402 movfs.l r59,ipend + a56: 811f 6402 movfs.l r28,iret + a5a: 6d1f 6002 movfs.l r27,debug + a5e: a51f 2002 movfs.l sp,status + a62: ad1f 2002 movfs.l sp,debug + a66: e51f 2002 movfs.l r15,status + a6a: 051f 4402 movfs.l r16,imask + +00000a6e \: + a6e: 01a2 nop + +00000a70 \: + a70: 01b2 idle + +00000a72 \: + a72: 01c2 bkpt + +00000a74 \: + a74: 01d2 rti + +00000a76 \: + a76: 03e2 trap 0x0 + a78: 1fe2 trap 0x7 + a7a: 13e2 trap 0x4 + a7c: 0fe2 trap 0x3 + a7e: 07e2 trap 0x1 + a80: 1be2 trap 0x6 + a82: 0fe2 trap 0x3 + a84: 17e2 trap 0x5 + +00000a86 \: + a86: 921f 248a add.l ip,ip,ip + a8a: 6d9a add r3,r3,r3 + a8c: 001a add r0,r0,r0 + a8e: 6d9f 248a add.l fp,fp,fp + a92: b69f 248a add.l sp,sp,sp + a96: ab1f 208a add.l sp,r2,lr + a9a: 089a add r0,r2,r1 + a9c: 8d9f 248a add.l ip,fp,fp + +00000aa0 \: + aa0: 921f 248a add.l ip,ip,ip + aa4: 6d9f ff8a add.l r59,r59,r59 + aa8: 921f 6d8a add.l r28,r28,r28 + aac: 6d9f 6d8a add.l r27,r27,r27 + ab0: b69f 248a add.l sp,sp,sp + ab4: 081f e50a add.l r56,sl,r16 + ab8: 851f 8e0a add.l r36,r25,r34 + abc: 449f 190a add.l r2,r49,r17 + +00000ac0 \: + ac0: 923f 248a sub.l ip,ip,ip + ac4: 6dba sub r3,r3,r3 + ac6: 003a sub r0,r0,r0 + ac8: 6dbf 248a sub.l fp,fp,fp + acc: b6bf 248a sub.l sp,sp,sp + ad0: 533f 048a sub.l r2,ip,lr + ad4: d83f 240a sub.l lr,lr,r0 + ad8: 6dba sub r3,r3,r3 + +00000ada \: + ada: 923f 248a sub.l ip,ip,ip + ade: 6dbf ff8a sub.l r59,r59,r59 + ae2: 923f 6d8a sub.l r28,r28,r28 + ae6: 6dbf 6d8a sub.l r27,r27,r27 + aea: b6bf 248a sub.l sp,sp,sp + aee: 9a3f 250a sub.l ip,lr,r20 + af2: 1bbf ca8a sub.l r48,r22,r47 + af6: 62bf 588a sub.l r19,r48,sp + +00000afa \: + afa: 925f 248a and.l ip,ip,ip + afe: 6dda and r3,r3,r3 + b00: 005a and r0,r0,r0 + b02: 6ddf 248a and.l fp,fp,fp + b06: b6df 248a and.l sp,sp,sp + b0a: 75df 240a and.l fp,sp,r3 + b0e: 6dda and r3,r3,r3 + b10: 96df 248a and.l ip,sp,sp + +00000b14 \: + b14: 925f 248a and.l ip,ip,ip + b18: 6ddf ff8a and.l r59,r59,r59 + b1c: 925f 6d8a and.l r28,r28,r28 + b20: 6ddf 6d8a and.l r27,r27,r27 + b24: b6df 248a and.l sp,sp,sp + b28: 935f c68a and.l r52,ip,r46 + b2c: 825f b68a and.l r44,r40,r44 + b30: 0bdf 7d8a and.l r24,r58,r31 + +00000b34 \: + b34: 927f 248a orr.l ip,ip,ip + b38: 6dfa orr r3,r3,r3 + b3a: 007a orr r0,r0,r0 + b3c: 6dff 248a orr.l fp,fp,fp + b40: b6ff 248a orr.l sp,sp,sp + b44: c6ff 208a orr.l lr,r1,sp + b48: 7b7f 048a orr.l r3,lr,lr + b4c: 4d7a orr r2,r3,r2 + +00000b4e \: + b4e: 927f 248a orr.l ip,ip,ip + b52: 6dff ff8a orr.l r59,r59,r59 + b56: 927f 6d8a orr.l r28,r28,r28 + b5a: 6dff 6d8a orr.l r27,r27,r27 + b5e: b6ff 248a orr.l sp,sp,sp + b62: 95ff c38a orr.l r52,r5,r59 + b66: e1ff 328a orr.l r15,r32,r43 + b6a: 167f ee8a orr.l r56,r29,r44 + +00000b6e \: + b6e: 920f 248a eor.l ip,ip,ip + b72: 6d8a eor r3,r3,r3 + b74: 000a eor r0,r0,r0 + b76: 6d8f 248a eor.l fp,fp,fp + b7a: b68f 248a eor.l sp,sp,sp + b7e: 8d0f 200a eor.l ip,r3,r2 + b82: 750f 040a eor.l r3,sp,r2 + b86: 750f 240a eor.l fp,sp,r2 + +00000b8a \: + b8a: 920f 248a eor.l ip,ip,ip + b8e: 6d8f ff8a eor.l r59,r59,r59 + b92: 920f 6d8a eor.l r28,r28,r28 + b96: 6d8f 6d8a eor.l r27,r27,r27 + b9a: b68f 248a eor.l sp,sp,sp + b9e: 228f 5d8a eor.l r17,r56,r29 + ba2: a58f 358a eor.l sp,r41,r27 + ba6: 698f 268a eor.l fp,sl,r43 + +00000baa \: + baa: 926f 248a asr.l ip,ip,ip + bae: 6dea asr r3,r3,r3 + bb0: 006a asr r0,r0,r0 + bb2: 6def 248a asr.l fp,fp,fp + bb6: b6ef 248a asr.l sp,sp,sp + bba: 61ea asr r3,r0,r3 + bbc: 676f 008a asr.l r3,r1,lr + bc0: 0eef 048a asr.l r0,fp,sp + +00000bc4 \: + bc4: 926f 248a asr.l ip,ip,ip + bc8: 6def ff8a asr.l r59,r59,r59 + bcc: 926f 6d8a asr.l r28,r28,r28 + bd0: 6def 6d8a asr.l r27,r27,r27 + bd4: b6ef 248a asr.l sp,sp,sp + bd8: 44ef 858a asr.l r34,sb,r25 + bdc: 64ef ca0a asr.l r51,r17,r33 + be0: 9def 208a asr.l ip,r7,fp + +00000be4 \: + be4: 924f 248a lsr.l ip,ip,ip + be8: 6dca lsr r3,r3,r3 + bea: 004a lsr r0,r0,r0 + bec: 6dcf 248a lsr.l fp,fp,fp + bf0: b6cf 248a lsr.l sp,sp,sp + bf4: adcf 208a lsr.l sp,r3,fp + bf8: 674f 208a lsr.l fp,r1,lr + bfc: c94f 200a lsr.l lr,r2,r2 + +00000c00 \: + c00: 924f 248a lsr.l ip,ip,ip + c04: 6dcf ff8a lsr.l r59,r59,r59 + c08: 924f 6d8a lsr.l r28,r28,r28 + c0c: 6dcf 6d8a lsr.l r27,r27,r27 + c10: b6cf 248a lsr.l sp,sp,sp + c14: c5cf 0d0a lsr.l r6,r25,r19 + c18: 984f 3a0a lsr.l ip,r54,r32 + c1c: b64f 248a lsr.l sp,sp,ip + +00000c20 \: + c20: 922f 248a lsl.l ip,ip,ip + c24: 6daa lsl r3,r3,r3 + c26: 002a lsl r0,r0,r0 + c28: 6daf 248a lsl.l fp,fp,fp + c2c: b6af 248a lsl.l sp,sp,sp + c30: 922f 248a lsl.l ip,ip,ip + c34: c62f 208a lsl.l lr,r1,ip + c38: d5af 240a lsl.l lr,sp,r3 + +00000c3c \: + c3c: 922f 248a lsl.l ip,ip,ip + c40: 6daf ff8a lsl.l r59,r59,r59 + c44: 922f 6d8a lsl.l r28,r28,r28 + c48: 6daf 6d8a lsl.l r27,r27,r27 + c4c: b6af 248a lsl.l sp,sp,sp + c50: 8faf 948a lsl.l r36,r43,r15 + c54: 5eaf 920a lsl.l r34,r39,r37 + c58: e6af 518a lsl.l r23,r33,r29 + +00000c5c \: + c5c: 901b 2400 add ip,ip,0 + c60: 6f9b 0000 add r3,r3,7 + c64: 021b 0000 add r0,r0,4 + c68: 6d9b 2400 add fp,fp,3 + c6c: b49b 2400 add sp,sp,1 + c70: 6493 add r3,r1,1 + c72: 2d9b 0400 add r1,fp,3 + c76: 0f9b 0400 add r0,fp,7 + +00000c7a \: + c7a: 901b 2400 add ip,ip,0 + c7e: 6f9b fc7f add r59,r59,1023 + c82: 939b 6c04 add r28,r28,39 + c86: 6f9b 6c7f add r27,r27,1023 + c8a: b49b 2400 add sp,sp,1 + c8e: 329b cc14 add r49,r28,165 + c92: eb9b 604d add r31,r2,623 + c96: 049b 4476 add r16,sb,945 + +00000c9a \: + c9a: 903b 2400 sub ip,ip,0 + c9e: 6fbb 0000 sub r3,r3,7 + ca2: 023b 0000 sub r0,r0,4 + ca6: 6dbb 2400 sub fp,fp,3 + caa: b4bb 2400 sub sp,sp,1 + cae: 8d3b 2000 sub ip,r3,2 + cb2: ce3b 2000 sub lr,r3,4 + cb6: 88bb 2000 sub ip,r2,1 + +00000cba \: + cba: 903b 2400 sub ip,ip,0 + cbe: 6cbb fc00 sub r59,r59,1 + cc2: 93bb 6c7f sub r28,r28,1023 + cc6: 6f3b 6c7f sub r27,r27,1022 + cca: b4bb 2400 sub sp,sp,1 + cce: 7a3b c068 sub r51,r6,836 + cd2: e23b b460 sub r47,r40,772 + cd6: f03b c03d sub r55,r4,488 + +00000cda \: + cda: 900f 2406 lsr.l ip,ip,0x0 + cde: 6fe6 lsr r3,r3,0x1f + ce0: 0206 lsr r0,r0,0x10 + ce2: 6def 2406 lsr.l fp,fp,0xf + ce6: b42f 2406 lsr.l sp,sp,0x1 + cea: 0cc6 lsr r0,r3,0x6 + cec: 2906 lsr r1,r2,0x8 + cee: 79cf 2406 lsr.l fp,lr,0xe + +00000cf2 \: + cf2: 900f 2406 lsr.l ip,ip,0x0 + cf6: 6fef fc06 lsr.l r59,r59,0x1f + cfa: 920f 6c06 lsr.l r28,r28,0x10 + cfe: 6def 6c06 lsr.l r27,r27,0xf + d02: b42f 2406 lsr.l sp,sp,0x1 + d06: c26f 7806 lsr.l r30,r48,0x13 + d0a: 7eef a006 lsr.l r43,r7,0x17 + d0e: 8b8f 6006 lsr.l r28,r2,0x1c + +00000d12 \: + d12: 901f 2406 lsl.l ip,ip,0x0 + d16: 6ff6 lsl r3,r3,0x1f + d18: 0216 lsl r0,r0,0x10 + d1a: 6dff 2406 lsl.l fp,fp,0xf + d1e: b43f 2406 lsl.l sp,sp,0x1 + d22: 4d76 lsl r2,r3,0xb + d24: c8df 2006 lsl.l lr,r2,0x6 + d28: 0a16 lsl r0,r2,0x10 + +00000d2a \: + d2a: 901f 2406 lsl.l ip,ip,0x0 + d2e: 6fff fc06 lsl.l r59,r59,0x1f + d32: 921f 6c06 lsl.l r28,r28,0x10 + d36: 6dff 6c06 lsl.l r27,r27,0xf + d3a: b43f 2406 lsl.l sp,sp,0x1 + d3e: 0e7f f806 lsl.l r56,r51,0x13 + d42: 3e7f 5006 lsl.l r17,r39,0x13 + d46: 519f 0406 lsl.l r2,ip,0xc + +00000d4a \: + d4a: 900f 240e asr.l ip,ip,0x0 + d4e: 6fee asr r3,r3,0x1f + d50: 020e asr r0,r0,0x10 + d52: 6def 240e asr.l fp,fp,0xf + d56: b42f 240e asr.l sp,sp,0x1 + d5a: d2af 240e asr.l lr,ip,0x15 + d5e: 6ece asr r3,r3,0x16 + d60: 6d2e asr r3,r3,0x9 + +00000d62 \: + d62: 900f 240e asr.l ip,ip,0x0 + d66: 6fef fc0e asr.l r59,r59,0x1f + d6a: 920f 6c0e asr.l r28,r28,0x10 + d6e: 6def 6c0e asr.l r27,r27,0xf + d72: b42f 240e asr.l sp,sp,0x1 + d76: 9a2f d40e asr.l r52,r46,0x11 + d7a: e2cf 5c0e asr.l r23,r56,0x16 + d7e: bb8f 540e asr.l r21,r46,0x1c + +00000d82 \: + d82: 800b 2002 mov ip,0x0 + d86: 7fe3 mov r3,0xff + d88: 1003 mov r0,0x80 + d8a: 6feb 2002 mov fp,0x7f + d8e: a02b 2002 mov sp,0x1 + d92: cb6b 2002 mov lr,0x5b + d96: 09a3 mov r0,0x4d + d98: 614b 2002 mov fp,0xa + +00000d9c \: + d9c: 800b 2002 mov ip,0x0 + da0: 7feb eff2 mov r59,0xffff + da4: 800b 6802 mov r28,0x8000 + da8: 7feb 67f2 mov r27,0x7fff + dac: a02b 2002 mov sp,0x1 + db0: be2b cee2 mov r53,0xeef1 + db4: 5deb 4cb2 mov r18,0xcbef + db8: 044b 48e2 mov r16,0x8e22 + +00000dbc \: + dbc: 920f 2487 fadd.l ip,ip,ip + dc0: 6d87 fadd r3,r3,r3 + dc2: 0007 fadd r0,r0,r0 + dc4: 6d8f 2487 fadd.l fp,fp,fp + dc8: b68f 2487 fadd.l sp,sp,sp + dcc: b10f 2407 fadd.l sp,ip,r2 + dd0: a90f 2007 fadd.l sp,r2,r2 + dd4: b98f 2487 fadd.l sp,lr,fp + +00000dd8 \: + dd8: 920f 2487 fadd.l ip,ip,ip + ddc: 6d8f ff87 fadd.l r59,r59,r59 + de0: 920f 6d87 fadd.l r28,r28,r28 + de4: 6d8f 6d87 fadd.l r27,r27,r27 + de8: b68f 2487 fadd.l sp,sp,sp + dec: b78f 2e07 fadd.l sp,r29,r39 + df0: 018f 9407 fadd.l r32,r40,r3 + df4: 170f ac87 fadd.l r40,r29,lr + +00000df8 \: + df8: 921f 2487 fsub.l ip,ip,ip + dfc: 6d97 fsub r3,r3,r3 + dfe: 0017 fsub r0,r0,r0 + e00: 6d9f 2487 fsub.l fp,fp,fp + e04: b69f 2487 fsub.l sp,sp,sp + e08: 5a9f 0487 fsub.l r2,lr,sp + e0c: 661f 0087 fsub.l r3,r1,ip + e10: 711f 0407 fsub.l r3,ip,r2 + +00000e14 \: + e14: 921f 2487 fsub.l ip,ip,ip + e18: 6d9f ff87 fsub.l r59,r59,r59 + e1c: 921f 6d87 fsub.l r28,r28,r28 + e20: 6d9f 6d87 fsub.l r27,r27,r27 + e24: b69f 2487 fsub.l sp,sp,sp + e28: 219f 1c87 fsub.l r1,r56,fp + e2c: 7b9f 0887 fsub.l r3,r22,r15 + e30: c29f 1a87 fsub.l r6,r48,r45 + +00000e34 \: + e34: 922f 2487 fmul.l ip,ip,ip + e38: 6da7 fmul r3,r3,r3 + e3a: 0027 fmul r0,r0,r0 + e3c: 6daf 2487 fmul.l fp,fp,fp + e40: b6af 2487 fmul.l sp,sp,sp + e44: 71af 0487 fmul.l r3,ip,fp + e48: c52f 2007 fmul.l lr,r1,r2 + e4c: bb2f 2487 fmul.l sp,lr,lr + +00000e50 \: + e50: 922f 2487 fmul.l ip,ip,ip + e54: 6daf ff87 fmul.l r59,r59,r59 + e58: 922f 6d87 fmul.l r28,r28,r28 + e5c: 6daf 6d87 fmul.l r27,r27,r27 + e60: b6af 2487 fmul.l sp,sp,sp + e64: 5daf eb07 fmul.l r58,r23,r51 + e68: cbaf 4287 fmul.l r22,r2,r47 + e6c: d92f a487 fmul.l r46,lr,sl + +00000e70 \: + e70: 923f 2487 fmadd.l ip,ip,ip + e74: 6db7 fmadd r3,r3,r3 + e76: 0037 fmadd r0,r0,r0 + e78: 6dbf 2487 fmadd.l fp,fp,fp + e7c: b6bf 2487 fmadd.l sp,sp,sp + e80: a5bf 2007 fmadd.l sp,r1,r3 + e84: 6c37 fmadd r3,r3,r0 + e86: 523f 0487 fmadd.l r2,ip,ip + +00000e8a \: + e8a: 923f 2487 fmadd.l ip,ip,ip + e8e: 6dbf ff87 fmadd.l r59,r59,r59 + e92: 923f 6d87 fmadd.l r28,r28,r28 + e96: 6dbf 6d87 fmadd.l r27,r27,r27 + e9a: b6bf 2487 fmadd.l sp,sp,sp + e9e: 983f 7a07 fmadd.l r28,r54,r32 + ea2: 89bf 2087 fmadd.l ip,r2,fp + ea6: 633f 3507 fmadd.l fp,r40,r22 + +00000eaa \: + eaa: 924f 2487 fmsub.l ip,ip,ip + eae: 6dc7 fmsub r3,r3,r3 + eb0: 0047 fmsub r0,r0,r0 + eb2: 6dcf 2487 fmsub.l fp,fp,fp + eb6: b6cf 2487 fmsub.l sp,sp,sp + eba: accf 2407 fmsub.l sp,fp,r1 + ebe: 2ecf 0487 fmsub.l r1,fp,sp + ec2: 0c47 fmsub r0,r3,r0 + +00000ec4 \: + ec4: 924f 2487 fmsub.l ip,ip,ip + ec8: 6dcf ff87 fmsub.l r59,r59,r59 + ecc: 924f 6d87 fmsub.l r28,r28,r28 + ed0: 6dcf 6d87 fmsub.l r27,r27,r27 + ed4: b6cf 2487 fmsub.l sp,sp,sp + ed8: 50cf a887 fmsub.l r42,r20,sb + edc: c14f 4e87 fmsub.l r22,r24,r42 + ee0: f9cf 2907 fmsub.l r15,r22,r19 + ee4: 2a4c 0101 ldr.l r1,\[r2,-0xc] + ee8: dbbc 4dff strh.l r22,\[r30,-0x7ff] + eec: 9bec 24ff ldrd.l ip,\[lr,\+0x7ff] + ef0: 201e bitr r1,r0 + ef2: fc1f 640e bitr.l r31,r15 diff --git a/gas/testsuite/gas/epiphany/allinsn.exp b/gas/testsuite/gas/epiphany/allinsn.exp new file mode 100644 index 0000000..389bc98 --- /dev/null +++ b/gas/testsuite/gas/epiphany/allinsn.exp @@ -0,0 +1,11 @@ +# EPIPHANY assembler testsuite. -*- Tcl -*- + +if [istarget epiphany*-*-*] { + run_dump_test "allinsn" + run_dump_test "regression" + run_dump_test "sample" + run_dump_test "branch_lit" + run_dump_test "badrelax" + gas_test_error "badpostmod" "" "destination register modified by displacement-post-modified address" + run_dump_test "addr-syntax" +} diff --git a/gas/testsuite/gas/epiphany/allinsn.s b/gas/testsuite/gas/epiphany/allinsn.s new file mode 100644 index 0000000..762fe5f --- /dev/null +++ b/gas/testsuite/gas/epiphany/allinsn.s @@ -0,0 +1,1563 @@ + .data +foodata: .hword 42 + .text +footext: + .text + .global beq16 + + .text + .global beq +bgt16: + bgt 4 + bgt 4 + bgt -4 + bgt footext + bgt foodata + bgt 4 + bgt footext + bgt footext + .text + .global bgt + +bgtu16: + bgtu 4 + bgtu -4 + bgtu footext + bgtu 4 + bgtu -4 + bgtu footext + bgtu footext + bgtu 4 + .text + .global bgtu + +bgte16: + bgte footext + bgte footext + bgte footext + bgte footext + bgte footext + bgte -4 + bgte foodata + bgte foodata + + .text + .global bgteu16 +bgteu16: + bgteu 4 + bgteu -4 + bgteu foodata + bgteu 4 + bgteu footext + bgteu 4 + bgteu foodata + bgteu foodata + .text + .global bgteu +bgteu: + .text + .global blt16 +blt16: + blt -4 + blt 4 + blt -4 + blt 4 + blt -4 + blt 4 + blt foodata + blt foodata + .text + .global blt +blt: + .text + .global bltu16 +bltu16: + bltu -4 + bltu 4 + bltu -4 + bltu footext + bltu footext + bltu footext + bltu 4 + bltu foodata + .text + .global bltu +bltu: + .text + .global blte16 +blte16: + blte footext + blte foodata + blte foodata + blte footext + blte -4 + blte footext + blte footext + blte 4 + .text + .global blte +blte: + .text + .global blteu16 +blteu16: + blteu footext + blteu foodata + blteu footext + blteu foodata + blteu footext + blteu -4 + blteu foodata + blteu foodata + .text + .global blteu +blteu: + .text + .global bbeq16 +bbeq16: + bbeq footext + bbeq footext + bbeq foodata + bbeq footext + bbeq 4 + bbeq foodata + bbeq foodata + bbeq 4 + .text + .global bbeq +bbeq: + .text + .global bbne16 +bbne16: + bbne foodata + bbne -4 + bbne 4 + bbne footext + bbne 4 + bbne 4 + bbne footext + bbne footext + .text + .global bbne +bbne: + .text + .global bblt16 +bblt16: + bblt foodata + bblt 4 + bblt 4 + bblt 4 + bblt -4 + bblt 4 + bblt footext + bblt -4 + .text + .global bblt +bblt: + .text + .global bblte16 +bblte16: + bblte 4 + bblte 4 + bblte footext + bblte footext + bblte 4 + bblte -4 + bblte foodata + bblte 4 + .text + .global bblte +bblte: + .text + .global b16 +b16: + b footext + b footext + b 4 + b -4 + b footext + b foodata + b foodata + b -4 + .text + .global b +b: + .text + .global bl16 +bl16: + bl -4 + bl 4 + bl footext + bl -4 + bl footext + bl -4 + bl -4 + bl footext + .text + .global bl +bl: + .text + .global jr16 +jr16: + jr ip + jr r3 + jr r0 + jr fp + jr sp + jr r0 + jr r3 + jr r0 + .text + .global jr +jr: + jr ip + jr r59 + jr r28 + jr r27 + jr sp + jr r51 + jr r56 + jr r45 + .text + .global jalr16 +jalr16: + jalr ip + jalr r3 + jalr r0 + jalr fp + jalr sp + jalr r3 + jalr fp + jalr ip + .text + .global jalr +jalr: + jalr ip + jalr r59 + jalr r28 + jalr r27 + jalr sp + jalr r11 + jalr r28 + jalr r59 + .text + .global ldrbx16 +ldrbx16: + ldrb ip,[ip,ip] + ldrb r3,[r3,r3] + ldrb r0,[r0,r0] + ldrb fp,[fp,fp] + ldrb sp,[sp,sp] + ldrb ip,[r0,r0] + ldrb r3,[r2,lr] + ldrb r2,[ip,r3] + .text + .global ldrbp16 +ldrbp16: + ldrb sp,[r0],fp + ldrb lr,[r1],ip + ldrb fp,[r0],fp + .text + .global ldrbx +ldrbx: + ldrb ip,[ip,ip] + ldrb r59,[r59,r59] + ldrb r28,[r28,r28] + ldrb r27,[r27,r27] + ldrb sp,[sp,sp] + ldrb r41,[r18,r47] + ldrb r43,[r16,r21] + ldrb r32,[r8,r8] + .text + .global ldrbp +ldrbp: + ldrb r36,[r49],r18 + ldrb r32,[r59],r50 + ldrb r58,[r11],r25 + .text + .global ldrbd16 +ldrbd16: + ldrb ip,[ip,0] + ldrb r3,[r3,7] + ldrb r0,[r0,4] + ldrb fp,[fp,3] + ldrb sp,[sp,1] + ldrb lr,[sp,1] + ldrb r1,[r0,0] + ldrb r1,[r1,1] + .text + .global ldrbd +ldrbd: + ldrb ip,[ip,0] + ldrb r59,[r59,2047] + ldrb r28,[r28,1024] + ldrb r27,[r27,1023] + ldrb sp,[sp,1] + ldrb r7,[r33,1574] + ldrb r31,[r6,1957] + ldrb r10,[r0,1831] + .text + .global ldrhx16 +ldrhx16: + ldrh ip,[ip,ip] + ldrh r3,[r3,r3] + ldrh r0,[r0,r0] + ldrh fp,[fp,fp] + ldrh sp,[sp,sp] + ldrh r0,[r0,lr] + ldrh lr,[lr,sp] + ldrh r0,[fp,fp] + .text + .global ldrhp16 +ldrhp16: + ldrh r2,[sp],fp + ldrh r22,[sp],fp + .text + .global ldrhx +ldrhx: + ldrh ip,[ip,ip] + ldrh r59,[r59,r59] + ldrh r28,[r28,r28] + ldrh r27,[r27,r27] + ldrh sp,[sp,sp] + ldrh r46,[r17,r21] + ldrh r30,[r1,r47] + ldrh r43,[r19,r20] + .text + .global ldrhp +ldrhp: + + + + ldrh r32,[r31],r29 + ldrh r52,[r47],r10 + ldrh r31,[r40],r3 + .text + .global ldrhd16 +ldrhd16: + ldrh ip,[ip,0] + ldrh r3,[r3,7] + ldrh r0,[r0,4] + ldrh fp,[fp,3] + ldrh sp,[sp,1] + ldrh lr,[r2,0] + ldrh r3,[r0,7] + ldrh r0,[r3,6] + .text + .global ldrhd +ldrhd: + ldrh ip,[ip,0] + ldrh r59,[r59,2047] + ldrh r28,[r28,1024] + ldrh r27,[r27,1023] + ldrh sp,[sp,1] + ldrh r45,[r24,1221] + ldrh r36,[r43,1738] + ldrh r42,[r48,25] + .text + .global ldrx16 +ldrx16: + ldr ip,[ip,ip] + ldr r3,[r3,r3] + ldr r0,[r0,r0] + ldr fp,[fp,fp] + ldr sp,[sp,sp] + ldr r3,[fp,lr] + ldr ip,[lr,r2] + ldr r3,[r2,lr] + .text + .global ldrp16 +ldrp16: + ldr lr,[fp],sp + ldr r0,[sp],r0 + ldr fp,[r2],r1 + .text + .global ldrx +ldrx: + ldr ip,[ip,ip] + ldr r59,[r59,r59] + ldr r28,[r28,r28] + ldr r27,[r27,r27] + ldr sp,[sp,sp] + ldr r24,[r16,r47] + ldr r22,[r41,r49] + ldr r14,[fp,r39] + .text + .global ldrp +ldrp: + ldr r21,[r5],r30 + ldr r36,[r12],r14 + ldr r12,[r4],r11 + .text + .global ldrd16 +ldrd16: + ldr ip,[ip,0] + ldr r3,[r3,7] + ldr r0,[r0,4] + ldr fp,[fp,3] + ldr sp,[sp,1] + ldr r0,[sp,0] + ldr ip,[r1,7] + ldr fp,[r1,1] + .text + .global ldrd +ldrd: + ldr ip,[ip,0] + ldr r59,[r59,2047] + ldr r28,[r28,1024] + ldr r27,[r27,1023] + ldr sp,[sp,1] + ldr r22,[r30,975] + ldr r7,[r44,1361] + ldr r23,[r19,1855] + .text + .global ldrdx16 +ldrdx16: + ldrd ip,[ip,ip] + ldrd r4,[r3,r3] + ldrd r0,[r0,r0] + ldrd r14,[fp,fp] + ldrd r16,[sp,sp] + ldrd r30,[r2,ip] + ldrd r0,[fp,r3] + ldrd r20,[ip,lr] + .text + .global ldrdp16 +ldrdp16: + ldrd r4,[r3],r3 + ldrd r16,[fp],fp + ldrd r20,[sp],sp + ldrd r10,[ip],r1 + ldrd r30,[fp],lr + ldrd r62,[lr],sp + .text + .global ldrdx +ldrdx: + ldrd ip,[ip,ip] + ldrd r58,[r59,r59] + ldrd r28,[r28,r28] + ldrd r26,[r27,r27] + ldrd r12,[sp,sp] + ldrd r32,[fp,r59] + ldrd r4,[r17,r6] + ldrd r32,[r40,r1] + .text + .global ldrdp +ldrdp: + ldrd r16,[sp],sp + ldrd r46,[r33],r30 + ldrd r24,[r36],r59 + ldrd r58,[r32],r11 + .text + .global ldrdd16 +ldrdd16: + ldrd ip,[ip,0] + ldrd r4,[r3,7] + ldrd r0,[r0,4] + ldrd r16,[fp,3] + ldrd r18,[sp,1] + ldrd r0,[fp,3] + ldrd lr,[fp,7] + ldrd lr,[ip,1] + .text + .global ldrdd +ldrdd: + ldrd ip,[ip,0] + ldrd r58,[r59,2047] + ldrd r28,[r28,1024] + ldrd r2,[r27,1023] + ldrd r16,[sp,1] + ldrd r4,[r21,761] + ldrd lr,[r41,1553] + ldrd r6,[r14,1922] + .text + .global strbx16 +strbx16: + strb ip,[ip,ip] + strb r3,[r3,r3] + strb r0,[r0,r0] + strb fp,[fp,fp] + strb sp,[sp,sp] + strb r1,[lr,r3] + strb ip,[r3,lr] + strb lr,[ip,ip] + .text + .global strbx +strbx: + strb ip,[ip,ip] + strb r59,[r59,r59] + strb r28,[r28,r28] + strb r27,[r27,r27] + strb sp,[sp,sp] + strb r50,[r15,sp] + strb lr,[fp,r52] + strb r14,[r24,r51] + .text + .global strbp16 +strbp16: + strb ip,[ip],ip + strb r3,[r3],r3 + strb r0,[r0],r0 + strb fp,[fp],fp + strb sp,[sp],sp + strb r2,[fp],ip + strb fp,[r0],r1 + strb r2,[r2],r3 + .text + .global strbp +strbp: + strb ip,[ip],ip + strb r59,[r59],r59 + strb r28,[r28],r28 + strb r27,[r27],r27 + strb sp,[sp],sp + strb r14,[r51],r2 + strb r6,[r44],r50 + strb r44,[r9],r49 + .text + .global strbd16 +strbd16: + strb ip,[ip,0] + strb r3,[r3,7] + strb r0,[r0,4] + strb fp,[fp,3] + strb sp,[sp,1] + strb r0,[r2,1] + strb sp,[r2,3] + strb fp,[r2,4] + .text + .global strbd +strbd: + strb ip,[ip,0] + strb r59,[r59,2047] + strb r28,[r28,1024] + strb r27,[r27,1023] + strb sp,[sp,1] + strb r23,[r10,1404] + strb r12,[r35,1461] + strb r54,[r58,1090] + .text + .global strhx16 +strhx16: + strh ip,[ip,ip] + strh r3,[r3,r3] + strh r0,[r0,r0] + strh fp,[fp,fp] + strh sp,[sp,sp] + strh r0,[r3,r1] + strh r1,[fp,r2] + strh r3,[r3,fp] + .text + .global strhx +strhx: + strh ip,[ip,ip] + strh r59,[r59,r59] + strh r28,[r28,r28] + strh r27,[r27,r27] + strh sp,[sp,sp] + strh r16,[r38,r31] + strh r32,[r12,r28] + strh r57,[r11,r9] + .text + .global strhp16 +strhp16: + strh ip,[ip],ip + strh r3,[r3],r3 + strh r0,[r0],r0 + strh fp,[fp],fp + strh sp,[sp],sp + strh r0,[r2],sp + strh sp,[r3],r0 + strh r1,[r0],r0 + .text + .global strhp +strhp: + strh ip,[ip],ip + strh r59,[r59],r59 + strh r28,[r28],r28 + strh r27,[r27],r27 + strh sp,[sp],sp + strh r3,[r37],r54 + strh r4,[r54],r25 + strh r5,[r32],r25 + .text + .global strhd16 +strhd16: + strh ip,[ip,0] + strh r3,[r3,7] + strh r0,[r0,4] + strh fp,[fp,3] + strh sp,[sp,1] + strh r3,[r0,3] + strh lr,[ip,7] + strh r3,[r2,7] + .text + .global strhd +strhd: + strh ip,[ip,0] + strh r59,[r59,2047] + strh r28,[r28,1024] + strh r27,[r27,1023] + strh sp,[sp,1] + strh r7,[r38,1181] + strh r25,[r4,77] + strh r11,[fp,631] + .text + .global strx16 +strx16: + str ip,[ip,ip] + str r3,[r3,r3] + str r0,[r0,r0] + str fp,[fp,fp] + str sp,[sp,sp] + str lr,[r3,r3] + str r3,[fp,r0] + str ip,[sp,r1] + .text + .global strx +strx: + str ip,[ip,ip] + str r59,[r59,r59] + str r28,[r28,r28] + str r27,[r27,r27] + str sp,[sp,sp] + str r53,[r29,r28] + str r30,[r22,r34] + str r28,[r28,r44] + .text + .global strp16 +strp16: + str ip,[ip],ip + str r3,[r3],r3 + str r0,[r0],r0 + str fp,[fp],fp + str sp,[sp],sp + str lr,[r0],r0 + str fp,[r0],sp + str r3,[fp],r0 + .text + .global strp +strp: + str ip,[ip],ip + str r59,[r59],r59 + str r28,[r28],r28 + str r27,[r27],r27 + str sp,[sp],sp + str r22,[r36],r15 + str r44,[r13],r47 + str r19,[r48],sp + .text + .global strd16 +strd16: + str ip,[ip,0] + str r3,[r3,7] + str r0,[r0,4] + str fp,[fp,3] + str sp,[sp,1] + str r3,[fp,3] + str sp,[ip,6] + str r1,[lr,3] + .text + .global strd +strd: + str ip,[ip,0] + str r59,[r59,2047] + str r28,[r28,1024] + str r27,[r27,1023] + str sp,[sp,1] + str r45,[r44,74] + str r58,[r50,370] + str r40,[r3,626] + .text + .global strdx16 +strdx16: + strd ip,[ip,ip] + strd r2,[r3,r3] + strd r0,[r0,r0] + strd r16,[fp,fp] + strd r18,[sp,sp] + strd ip,[r3,r1] + strd r2,[lr,fp] + strd ip,[r2,r2] + .text + .global strdx +strdx: + strd ip,[ip,ip] + strd r58,[r59,r59] + strd r28,[r28,r28] + strd r26,[r27,r27] + strd r14,[sp,sp] + strd r38,[r53,lr] + strd r24,[r19,r43] + strd r12,[r10,r30] + .text + .global strdp16 +strdp16: + strd ip,[ip],ip + strd r2,[r3],r3 + strd r0,[r0],r0 + strd r6,[fp],fp + strd r4,[sp],sp + strd r2,[r3],r0 + strd r2,[r0],r1 + strd r2,[lr],r1 + .text + .global strdp +strdp: + strd ip,[ip],ip + strd r58,[r59],r59 + strd r28,[r28],r28 + strd r26,[r27],r27 + strd r22,[sp],sp + strd r6,[r10],r44 + strd r10,[r43],r5 + strd r46,[r17],lr + .text + .global strdd16 +strdd16: + strd r0,[ip,0] + strd r2,[r3,7] + strd r0,[r0,4] + strd r2,[fp,3] + strd r4,[sp,1] + strd r2,[r2,5] + strd r6,[r3,7] + strd r6,[r1,2] + .text + .global strdd +strdd: + strd ip,[ip,0] + strd r58,[r59,2047] + strd r28,[r28,1024] + strd r26,[r27,1023] + strd r14,[sp,1] + strd r28,[r52,719] + strd r40,[r53,1994] + strd r44,[r57,494] + .text + .global mov16EQ +mov16EQ: + moveq ip,ip + moveq r3,r3 + moveq r0,r0 + moveq fp,fp + moveq sp,sp + moveq ip,r2 + moveq r2,fp + moveq fp,sp + .text + .global movEQ +movEQ: + moveq ip,ip + moveq r59,r59 + moveq r28,r28 + moveq r27,r27 + moveq sp,sp + moveq r32,r30 + moveq r43,r39 + moveq r25,r33 + .text + .global mov16NE +mov16NE: + movne ip,ip + movne r3,r3 + movne r0,r0 + movne fp,fp + movne sp,sp + movne r3,r3 + movne r0,fp + movne fp,fp + .text + .global movNE +movNE: + movne ip,ip + movne r59,r59 + movne r28,r28 + movne r27,r27 + movne sp,sp + movne r4,r3 + movne r28,fp + movne r23,r39 + .text + .global mov16GT +mov16GT: + movgt ip,ip + movgt r3,r3 + movgt r0,r0 + movgt fp,fp + movgt sp,sp + movgt r1,r3 + movgt lr,r3 + movgt r1,ip + .text + .global movGT +movGT: + movgt ip,ip + movgt r59,r59 + movgt r28,r28 + movgt r27,r27 + movgt sp,sp + movgt r1,r21 + movgt r13,r3 + movgt r28,r43 + .text + .global mov16GTU +mov16GTU: + movgtu ip,ip + movgtu r3,r3 + movgtu r0,r0 + movgtu fp,fp + movgtu sp,sp + movgtu ip,lr + movgtu sp,ip + movgtu ip,sp + .text + .global movGTU +movGTU: + movgtu ip,ip + movgtu r59,r59 + movgtu r28,r28 + movgtu r27,r27 + movgtu sp,sp + movgtu r34,r33 + movgtu r17,r48 + movgtu r35,r24 + .text + .global mov16GTE +mov16GTE: + movgte ip,ip + movgte r3,r3 + movgte r0,r0 + movgte fp,fp + movgte sp,sp + movgte r0,r0 + movgte r2,sp + movgte lr,r2 + .text + .global movGTE +movGTE: + movgte ip,ip + movgte r59,r59 + movgte r28,r28 + movgte r27,r27 + movgte sp,sp + movgte ip,r59 + movgte r37,r42 + movgte r44,r26 + .text + .global mov16GTEU +mov16GTEU: + movgteu ip,ip + movgteu r3,r3 + movgteu r0,r0 + movgteu fp,fp + movgteu sp,sp + movgteu lr,ip + movgteu sp,r1 + movgteu ip,lr + .text + .global movGTEU +movGTEU: + movgteu ip,ip + movgteu r59,r59 + movgteu r28,r28 + movgteu r27,r27 + movgteu sp,sp + movgteu r58,r47 + movgteu r56,r5 + movgteu r20,r52 + .text + .global mov16LT +mov16LT: + movlt ip,ip + movlt r3,r3 + movlt r0,r0 + movlt fp,fp + movlt sp,sp + movlt r3,r3 + movlt r2,r2 + movlt ip,lr + .text + .global movLT +movLT: + movlt ip,ip + movlt r59,r59 + movlt r28,r28 + movlt r27,r27 + movlt sp,sp + movlt r52,r12 + movlt r57,r22 + movlt r8,r7 + .text + .global mov16LTU +mov16LTU: + movltu ip,ip + movltu r3,r3 + movltu r0,r0 + movltu fp,fp + movltu sp,sp + movltu ip,r2 + movltu sp,ip + movltu r1,r0 + .text + .global movLTU +movLTU: + movltu ip,ip + movltu r59,r59 + movltu r28,r28 + movltu r27,r27 + movltu sp,sp + movltu r13,r31 + movltu r43,ip + movltu r7,r56 + .text + .global mov16LTE +mov16LTE: + movlte ip,ip + movlte r3,r3 + movlte r0,r0 + movlte fp,fp + movlte sp,sp + movlte r0,r3 + movlte r3,ip + movlte r3,lr + .text + .global movLTE +movLTE: + movlte ip,ip + movlte r59,r59 + movlte r28,r28 + movlte r27,r27 + movlte sp,sp + movlte r30,r27 + movlte r35,r52 + movlte r15,r53 + .text + .global mov16LTEU +mov16LTEU: + movlteu ip,ip + movlteu r3,r3 + movlteu r0,r0 + movlteu fp,fp + movlteu sp,sp + movlteu ip,lr + movlteu r2,r2 + movlteu r2,fp + .text + .global movLTEU +movLTEU: + movlteu ip,ip + movlteu r59,r59 + movlteu r28,r28 + movlteu r27,r27 + movlteu sp,sp + movlteu r31,r36 + movlteu r24,r50 + movlteu r52,r54 + .text + .global mov16B +mov16B: + mov ip,ip + mov r3,r3 + mov r0,r0 + mov fp,fp + mov sp,sp + mov ip,r1 + mov ip,r0 + mov r0,ip + .text + .global movB +movB: + mov ip,ip + mov r59,r59 + mov r28,r28 + mov r27,r27 + mov sp,sp + mov r1,r59 + mov r28,r12 + mov r5,r42 + .text + .global mov16BEQ +mov16BEQ: + movbeq ip,ip + movbeq r3,r3 + movbeq r0,r0 + movbeq fp,fp + movbeq sp,sp + movbeq lr,r2 + movbeq fp,r2 + movbeq ip,r1 + .text + .global movBEQ +movBEQ: + movbeq ip,ip + movbeq r59,r59 + movbeq r28,r28 + movbeq r27,r27 + movbeq sp,sp + movbeq r29,r16 + movbeq r18,r46 + movbeq lr,r1 + .text + .global mov16BNE +mov16BNE: + movbne ip,ip + movbne r3,r3 + movbne r0,r0 + movbne fp,fp + movbne sp,sp + movbne r1,r2 + movbne ip,r1 + movbne ip,r3 + .text + .global movBNE +movBNE: + movbne ip,ip + movbne r59,r59 + movbne r28,r28 + movbne r27,r27 + movbne sp,sp + movbne r15,r7 + movbne r24,r43 + movbne r23,r52 + .text + .global mov16BLT +mov16BLT: + movblt ip,ip + movblt r3,r3 + movblt r0,r0 + movblt fp,fp + movblt sp,sp + movblt sp,lr + movblt ip,lr + movblt lr,sp + .text + .global movBLT +movBLT: + movblt ip,ip + movblt r59,r59 + movblt r28,r28 + movblt r27,r27 + movblt sp,sp + movblt r52,r44 + movblt r57,r35 + movblt r53,r33 + .text + .global mov16BLTE +mov16BLTE: + movblte ip,ip + movblte r3,r3 + movblte r0,r0 + movblte fp,fp + movblte sp,sp + movblte sp,ip + movblte r0,fp + movblte r0,sp + .text + .global movBLTE +movBLTE: + movblte ip,ip + movblte r59,r59 + movblte r28,r28 + movblte r27,r27 + movblte sp,sp + movblte r58,r44 + movblte r35,r22 + movblte r8,r2 + .text + .global movts16 +movts16: + movts config,ip + movts ipend,r3 + movts iret,r0 + movts debug,fp + movts status,sp + movts status,fp + movts pc,fp + movts imask,r0 + .text + .global movts +movts: + movts config,ip + movts ipend,r59 + movts iret,r28 + movts debug,r27 + movts status,sp + movts debug,r50 + movts ipend,r33 + movts status,ip + .text + .global movfs16 +movfs16: + movfs ip,config + movfs r3,ipend + movfs r0,iret + movfs fp,debug + movfs sp,status + movfs r1,iret + movfs r2,status + movfs lr,debug + .text + .global movfs +movfs: + movfs ip,config + movfs r59,ipend + movfs r28,iret + movfs r27,debug + movfs sp,status + movfs r13,debug + movfs r15,status + movfs r16,imask + .text + .global nop +nop: + nop + .text + .global idle +idle: + idle + .text + .global bkpt +bkpt: + bkpt + .text + .global rti +rti: + rti + .text + .global trap16 +trap16: + trap 0 + trap 7 + trap 4 + trap 3 + trap 1 + trap 6 + trap 3 + trap 5 + .text + .global add16 +add16: + add ip,ip,ip + add r3,r3,r3 + add r0,r0,r0 + add fp,fp,fp + add sp,sp,sp + add sp,r2,lr + add r0,r2,r1 + add ip,fp,fp + .text + .global add +add: + add ip,ip,ip + add r59,r59,r59 + add r28,r28,r28 + add r27,r27,r27 + add sp,sp,sp + add r56,r10,r16 + add r36,r25,r34 + add r2,r49,r17 + .text + .global sub16 +sub16: + sub ip,ip,ip + sub r3,r3,r3 + sub r0,r0,r0 + sub fp,fp,fp + sub sp,sp,sp + sub r2,ip,lr + sub lr,lr,r0 + sub r3,r3,r3 + .text + .global sub +sub: + sub ip,ip,ip + sub r59,r59,r59 + sub r28,r28,r28 + sub r27,r27,r27 + sub sp,sp,sp + sub ip,lr,r20 + sub r48,r22,r47 + sub r19,r48,r13 + .text + .global and16 +and16: + and ip,ip,ip + and r3,r3,r3 + and r0,r0,r0 + and fp,fp,fp + and sp,sp,sp + and fp,sp,r3 + and r3,r3,r3 + and ip,sp,sp + .text + .global and +and: + and ip,ip,ip + and r59,r59,r59 + and r28,r28,r28 + and r27,r27,r27 + and sp,sp,sp + and r52,ip,r46 + and r44,r40,r44 + and r24,r58,r31 + .text + .global orr16 +orr16: + orr ip,ip,ip + orr r3,r3,r3 + orr r0,r0,r0 + orr fp,fp,fp + orr sp,sp,sp + orr lr,r1,sp + orr r3,lr,lr + orr r2,r3,r2 + .text + .global orr +orr: + orr ip,ip,ip + orr r59,r59,r59 + orr r28,r28,r28 + orr r27,r27,r27 + orr sp,sp,sp + orr r52,r5,r59 + orr r15,r32,r43 + orr r56,r29,r44 + .text + .global eor16 +eor16: + eor ip,ip,ip + eor r3,r3,r3 + eor r0,r0,r0 + eor fp,fp,fp + eor sp,sp,sp + eor ip,r3,r2 + eor r3,sp,r2 + eor fp,sp,r2 + .text + .global eor +eor: + eor ip,ip,ip + eor r59,r59,r59 + eor r28,r28,r28 + eor r27,r27,r27 + eor sp,sp,sp + eor r17,r56,r29 + eor sp,r41,r27 + eor r11,r10,r43 + .text + .global asr16 +asr16: + asr ip,ip,ip + asr r3,r3,r3 + asr r0,r0,r0 + asr fp,fp,fp + asr sp,sp,sp + asr r3,r0,r3 + asr r3,r1,lr + asr r0,fp,sp + .text + .global asr +asr: + asr ip,ip,ip + asr r59,r59,r59 + asr r28,r28,r28 + asr r27,r27,r27 + asr sp,sp,sp + asr r34,r9,r25 + asr r51,r17,r33 + asr ip,r7,r11 + .text + .global lsr16 +lsr16: + lsr ip,ip,ip + lsr r3,r3,r3 + lsr r0,r0,r0 + lsr fp,fp,fp + lsr sp,sp,sp + lsr sp,r3,fp + lsr fp,r1,lr + lsr lr,r2,r2 + .text + .global lsr +lsr: + lsr ip,ip,ip + lsr r59,r59,r59 + lsr r28,r28,r28 + lsr r27,r27,r27 + lsr sp,sp,sp + lsr r6,r25,r19 + lsr r12,r54,r32 + lsr r13,sp,ip + .text + .global lsl16 +lsl16: + lsl ip,ip,ip + lsl r3,r3,r3 + lsl r0,r0,r0 + lsl fp,fp,fp + lsl sp,sp,sp + lsl ip,ip,ip + lsl lr,r1,ip + lsl lr,sp,r3 + .text + .global lsl +lsl: + lsl ip,ip,ip + lsl r59,r59,r59 + lsl r28,r28,r28 + lsl r27,r27,r27 + lsl sp,sp,sp + lsl r36,r43,r15 + lsl r34,r39,r37 + lsl r23,r33,r29 + .text + .global addi16 +addi16: + add ip,ip,0 + add r3,r3,7 + add r0,r0,4 + add fp,fp,3 + add sp,sp,1 + add r3,r1,1 + add r1,fp,3 + add r0,fp,7 + .text + .global addi +addi: + add ip,ip,0 + add r59,r59,1023 + add r28,r28,047 + add r27,r27,1023 + add sp,sp,1 + add r49,r28,165 + add r31,r2,623 + add r16,r9,945 + .text + .global subi16 +subi16: + sub ip,ip,0 + sub r3,r3,7 + sub r0,r0,4 + sub fp,fp,3 + sub sp,sp,1 + sub ip,r3,2 + sub lr,r3,4 + sub ip,r2,1 + .text + .global subi +subi: + sub ip,ip,0 + sub r59,r59,-2047 + sub r28,r28,1023 + sub r27,r27,1022 + sub sp,sp,1 + sub r51,r6,836 + sub r47,r40,772 + sub r55,r4,488 + .text + .global lsri16 +lsri16: + lsr ip,ip,0 + lsr r3,r3,31 + lsr r0,r0,16 + lsr fp,fp,15 + lsr sp,sp,1 + lsr r0,r3,6 + lsr r1,r2,8 + lsr fp,lr,14 + .text + .global lsri32 +lsri32: + lsr ip,ip,0 + lsr r59,r59,31 + lsr r28,r28,16 + lsr r27,r27,15 + lsr sp,sp,1 + lsr r30,r48,19 + lsr r43,r7,23 + lsr r28,r2,28 + .text + .global lsli16 +lsli16: + lsl ip,ip,0 + lsl r3,r3,31 + lsl r0,r0,16 + lsl fp,fp,15 + lsl sp,sp,1 + lsl r2,r3,11 + lsl lr,r2,6 + lsl r0,r2,16 + .text + .global lsli32 +lsli32: + lsl ip,ip,0 + lsl r59,r59,31 + lsl r28,r28,16 + lsl r27,r27,15 + lsl sp,sp,1 + lsl r56,r51,19 + lsl r17,r39,19 + lsl r2,r12,12 + .text + .global asri16 +asri16: + asr ip,ip,0 + asr r3,r3,31 + asr r0,r0,16 + asr fp,fp,15 + asr sp,sp,1 + asr lr,ip,21 + asr r3,r3,22 + asr r3,r3,9 + .text + .global asri32 +asri32: + asr ip,ip,0 + asr r59,r59,31 + asr r28,r28,16 + asr r27,r27,15 + asr sp,sp,1 + asr r52,r46,17 + asr r23,r56,22 + asr r21,r46,28 + .text + .global mov8 +mov8: + mov ip,0 + mov r3,255 + mov r0,128 + mov fp,127 + mov sp,1 + mov lr,91 + mov r0,77 + mov fp,10 + .text + .global mov16 +mov16: + mov ip,0 + mov r59,65535 + mov r28,32768 + mov r27,32767 + mov sp,1 + mov r53,61169 + mov r18,52207 + mov r16,36386 + .text + .global faddf16 +faddf16: + fadd ip,ip,ip + fadd r3,r3,r3 + fadd r0,r0,r0 + fadd fp,fp,fp + fadd sp,sp,sp + fadd sp,ip,r2 + fadd sp,r2,r2 + fadd sp,lr,fp + .text + .global faddf32 +faddf32: + fadd ip,ip,ip + fadd r59,r59,r59 + fadd r28,r28,r28 + fadd r27,r27,r27 + fadd sp,sp,sp + fadd r13,r29,r39 + fadd r32,r40,r3 + fadd r40,r29,lr + .text + .global fsubf16 +fsubf16: + fsub ip,ip,ip + fsub r3,r3,r3 + fsub r0,r0,r0 + fsub fp,fp,fp + fsub sp,sp,sp + fsub r2,lr,sp + fsub r3,r1,ip + fsub r3,ip,r2 + .text + .global fsubf32 +fsubf32: + fsub ip,ip,ip + fsub r59,r59,r59 + fsub r28,r28,r28 + fsub r27,r27,r27 + fsub sp,sp,sp + fsub r1,r56,r11 + fsub r3,r22,r15 + fsub r6,r48,r45 + .text + .global fmulf16 +fmulf16: + fmul ip,ip,ip + fmul r3,r3,r3 + fmul r0,r0,r0 + fmul fp,fp,fp + fmul sp,sp,sp + fmul r3,ip,fp + fmul lr,r1,r2 + fmul sp,lr,lr + .text + .global fmulf32 +fmulf32: + fmul ip,ip,ip + fmul r59,r59,r59 + fmul r28,r28,r28 + fmul r27,r27,r27 + fmul sp,sp,sp + fmul r58,r23,r51 + fmul r22,r2,r47 + fmul r46,r14,r10 + .text + .global fmaddf16 +fmaddf16: + fmadd ip,ip,ip + fmadd r3,r3,r3 + fmadd r0,r0,r0 + fmadd fp,fp,fp + fmadd sp,sp,sp + fmadd sp,r1,r3 + fmadd r3,r3,r0 + fmadd r2,ip,ip + .text + .global fmaddf32 +fmaddf32: + fmadd ip,ip,ip + fmadd r59,r59,r59 + fmadd r28,r28,r28 + fmadd r27,r27,r27 + fmadd sp,sp,sp + fmadd r28,r54,r32 + fmadd r12,r2,fp + fmadd fp,r40,r22 + .text + .global fmsubf16 +fmsubf16: + fmsub ip,ip,ip + fmsub r3,r3,r3 + fmsub r0,r0,r0 + fmsub fp,fp,fp + fmsub sp,sp,sp + fmsub sp,fp,r1 + fmsub r1,fp,sp + fmsub r0,r3,r0 + .text + .global fmsubf32 +fmsubf32: + fmsub ip,ip,ip + fmsub r59,r59,r59 + fmsub r28,r28,r28 + fmsub r27,r27,r27 + fmsub sp,sp,sp + fmsub r42,r20,r9 + fmsub r22,r24,r42 + fmsub r15,r22,r19 + +;; add some negative displacement ld/store + ldr r1,[r2,-12] + strh r22,[r30,-2047] + ldrd r12,[r14,2047] + +;; add bitr + bitr r1,r0 + bitr r31,r15 diff --git a/gas/testsuite/gas/epiphany/badpostmod.s b/gas/testsuite/gas/epiphany/badpostmod.s new file mode 100644 index 0000000..7a55860 --- /dev/null +++ b/gas/testsuite/gas/epiphany/badpostmod.s @@ -0,0 +1,14 @@ + .text + .global postmod +postmod: + ldrd r0,[r1],r2 ; tricky because r1 is implied as destination + + strb r12,[r12],r3 ; stores are okay + strd r12,[r13],r3 + + ldr r0,[r0],r0 ; ERROR + + ldr r0,[r0,+128] ; ok + ldrd r12,[r13],-256 ; ERROR + ldrb r12,[r12],20 ; ERROR + strd r12,[r13],-256 ; ok diff --git a/gas/testsuite/gas/epiphany/badrelax.d b/gas/testsuite/gas/epiphany/badrelax.d new file mode 100644 index 0000000..9e74d86 --- /dev/null +++ b/gas/testsuite/gas/epiphany/badrelax.d @@ -0,0 +1,12 @@ +#as: +#objdump: -dr +#name: badrelax + +.*\.o: file format elf32-epiphany + + +Disassembly of section \.text: + +00000000 \: + 0: 01f0 bl 2 \ + 2: 013b 0000 sub r0,r0,2 diff --git a/gas/testsuite/gas/epiphany/badrelax.s b/gas/testsuite/gas/epiphany/badrelax.s new file mode 100644 index 0000000..26eaf50 --- /dev/null +++ b/gas/testsuite/gas/epiphany/badrelax.s @@ -0,0 +1,5 @@ + .text + .global xxx +xxx: + bl 1f +1: sub r0,r0,1b-xxx diff --git a/gas/testsuite/gas/epiphany/branch_lit.d b/gas/testsuite/gas/epiphany/branch_lit.d new file mode 100644 index 0000000..8f8e6e4 --- /dev/null +++ b/gas/testsuite/gas/epiphany/branch_lit.d @@ -0,0 +1,11 @@ +#as: +#objdump: -dr +#name: branch_lit + +.*.o: file format elf32-epiphany + + +Disassembly of section \.text: + +00000000 \<\.text\>: + 0: 8008 0000 beq 0x100 diff --git a/gas/testsuite/gas/epiphany/branch_lit.s b/gas/testsuite/gas/epiphany/branch_lit.s new file mode 100644 index 0000000..47f77c0 --- /dev/null +++ b/gas/testsuite/gas/epiphany/branch_lit.s @@ -0,0 +1 @@ + beq 256 diff --git a/gas/testsuite/gas/epiphany/regression.d b/gas/testsuite/gas/epiphany/regression.d new file mode 100644 index 0000000..1bb680f --- /dev/null +++ b/gas/testsuite/gas/epiphany/regression.d @@ -0,0 +1,300 @@ +#as: +#objdump: -dr +#name: regression + +.*\.o: file format elf32-epiphany + + +Disassembly of section \.text: + +00000000 \: + 0: 000b 0802 mov r0,0x8000 + 4: 0056 lsl r0,r0,0x2 + 6: c0c3 mov r6,0x6 + 8: 6063 mov r3,0x3 + a: ff1f fc0a add.l r63,r63,r6 + e: fd1f fc0a add.l r63,r63,r2 + 12: dc0b e072 mov r62,0x7e0 + 16: ff3f ff8a sub.l r63,r63,r62 + 1a: 0300 beq 20 \ + 1c: 0023 mov r0,0x1 + 1e: 0fe2 trap 0x3 + +00000020 \: + 20: 0900 beq 32 \ + 22: 0023 mov r0,0x1 + 24: 0fe2 trap 0x3 + 26: 0023 mov r0,0x1 + 28: 0fe2 trap 0x3 + 2a: 0023 mov r0,0x1 + 2c: 0fe2 trap 0x3 + 2e: 0023 mov r0,0x1 + 30: 0fe2 trap 0x3 + +00000032 \: + 32: 1c10 bne 6a \ + +00000034 \: + 34: 1b60 bgt 6a \ + +00000036 \: + 36: 0370 bgte 3c \ + 38: 0023 mov r0,0x1 + 3a: 0fe2 trap 0x3 + +0000003c \: + 3c: 0390 blte 42 \ + 3e: 0023 mov r0,0x1 + 40: 0fe2 trap 0x3 + +00000042 \: + 42: 1480 blt 6a \ + +00000044 \: + 44: efe8 0000 b 222 \ + 48: 0023 mov r0,0x1 + 4a: 0fe2 trap 0x3 + +0000004c \: + 4c: edf8 0000 bl 226 \ + 50: e00b e002 mov r63,0x0 + 50: R_EPIPHANY_LOW \.text\+0x5c + 54: 1d4f 1c02 jr r63 + 58: 0023 mov r0,0x1 + 5a: 0fe2 trap 0x3 + +0000005c \: + 5c: e00b e002 mov r63,0x0 + 5c: R_EPIPHANY_LOW \.text\+0x226 + 60: 1d5f 1c02 jalr r63 + 64: 05e0 b 6e \ + 66: 0023 mov r0,0x1 + 68: 0fe2 trap 0x3 + +0000006a \: + 6a: 0023 mov r0,0x1 + 6c: 0fe2 trap 0x3 + +0000006e \: + 6e: 8014 strb r4,\[r0\] + 70: e00c e000 ldrb r63,\[r0\] + 74: fe3f fc0a sub.l r63,r63,r4 + 78: 0300 beq 7e \ + 7a: 0023 mov r0,0x1 + 7c: 0fe2 trap 0x3 + +0000007e \: + 7e: a39c 0001 strb.l r5,\[r0,\+0xf\] + 82: e38c e001 ldrb.l r63,\[r0,\+0xf\] + 86: febf fc0a sub.l r63,r63,r5 + 8a: 0300 beq 90 \ + 8c: 0023 mov r0,0x1 + 8e: 0fe2 trap 0x3 + +00000090 \: + 90: 8034 strh r4,\[r0\] + 92: e02c e000 ldrh r63,\[r0\] + 96: fe3f fc0a sub.l r63,r63,r4 + 9a: 0300 beq a0 \ + 9c: 0023 mov r0,0x1 + 9e: 0fe2 trap 0x3 + +000000a0 \: + a0: a33c 0001 strh.l r5,\[r0,\+0xe\] + a4: e32c e001 ldrh.l r63,\[r0,\+0xe\] + a8: febf fc0a sub.l r63,r63,r5 + ac: 0300 beq b2 \ + ae: 0023 mov r0,0x1 + b0: 0fe2 trap 0x3 + +000000b2 \: + b2: 8054 str r4,\[r0\] + b4: e04c e000 ldr r63,\[r0\] + b8: fe3f fc0a sub.l r63,r63,r4 + bc: 0300 beq c2 \ + be: 0023 mov r0,0x1 + c0: 0fe2 trap 0x3 + +000000c2 \: + c2: a25c 0001 str.l r5,\[r0,\+0xc\] + c6: e24c e001 ldr.l r63,\[r0,\+0xc\] + ca: febf fc0a sub.l r63,r63,r5 + ce: 0300 beq d4 \ + d0: 0023 mov r0,0x1 + d2: 0fe2 trap 0x3 + +000000d4 \: + d4: 8211 strb r4,\[r0,r4\] + d6: e209 e000 ldrb.l r63,\[r0,\+r4\] + da: fe3f fc0a sub.l r63,r63,r4 + de: 0300 beq e4 \ + e0: 0023 mov r0,0x1 + e2: 0fe2 trap 0x3 + +000000e4 \: + e4: a231 strh r5,\[r0,r4\] + e6: e229 e000 ldrh.l r63,\[r0,\+r4\] + ea: febf fc0a sub.l r63,r63,r5 + ee: 0300 beq f4 \ + f0: 0023 mov r0,0x1 + f2: 0fe2 trap 0x3 + +000000f4 \: + f4: c251 str r6,\[r0,r4\] + f6: e249 e000 ldr.l r63,\[r0,\+r4\] + fa: ff3f fc0a sub.l r63,r63,r6 + fe: 0300 beq 104 \ + 100: 0023 mov r0,0x1 + 102: 0fe2 trap 0x3 + +00000104 \: + 104: 8215 strb r4,\[r0\],r4 + 106: 023b 0000 sub r0,r0,4 + 10a: e20d e000 ldrb.l r63,\[r0\],\+r4 + 10e: 023b 0000 sub r0,r0,4 + 112: fe3f fc0a sub.l r63,r63,r4 + 116: 0300 beq 11c \ + 118: 0023 mov r0,0x1 + 11a: 0fe2 trap 0x3 + +0000011c \: + 11c: a235 strh r5,\[r0\],r4 + 11e: 023b 0000 sub r0,r0,4 + 122: e22d e000 ldrh.l r63,\[r0\],\+r4 + 126: febf fc0a sub.l r63,r63,r5 + 12a: 0300 beq 130 \ + 12c: 0023 mov r0,0x1 + 12e: 0fe2 trap 0x3 + +00000130 \: + 130: 023b 0000 sub r0,r0,4 + 134: c255 str r6,\[r0\],r4 + 136: 023b 0000 sub r0,r0,4 + 13a: e24d e000 ldr.l r63,\[r0\],\+r4 + 13e: 023b 0000 sub r0,r0,4 + 142: ff3f fc0a sub.l r63,r63,r6 + 146: 0300 beq 14c \ + 148: 0023 mov r0,0x1 + 14a: 0fe2 trap 0x3 + +0000014c \: + 14c: ffeb e002 mov r63,0xff + 150: 3fe3 mov r1,0xff + 152: fcbf fc0a sub.l r63,r63,r1 + 156: 0300 beq 15c \ + 158: 0023 mov r0,0x1 + 15a: 0fe2 trap 0x3 + +0000015c \: + 15c: e99b e000 add r63,r2,3 + 160: febb fc00 sub r63,r63,5 + 164: 0300 beq 16a \ + 166: 0023 mov r0,0x1 + 168: 0fe2 trap 0x3 + +0000016a \: + 16a: e8bb e000 sub r63,r2,1 + 16e: fcbb fc00 sub r63,r63,1 + 172: 0300 beq 178 \ + 174: 0023 mov r0,0x1 + 176: 0fe2 trap 0x3 + +00000178 \: + 178: f84f e006 lsr.l r63,r6,0x2 + 17c: fcbb fc00 sub r63,r63,1 + 180: 0300 beq 186 \ + 182: 0023 mov r0,0x1 + 184: 0fe2 trap 0x3 + +00000186 \: + 186: ec5f e006 lsl.l r63,r3,0x2 + 18a: fe3b fc01 sub r63,r63,12 + 18e: 0300 beq 194 \ + 190: 0023 mov r0,0x1 + 192: 0fe2 trap 0x3 + +00000194 \: + 194: f94f e00a lsr.l r63,r6,r2 + 198: fcbb fc00 sub r63,r63,1 + 19c: 0300 beq 1a2 \ + 19e: 0023 mov r0,0x1 + 1a0: 0fe2 trap 0x3 + +000001a2 \: + 1a2: ed2f e00a lsl.l r63,r3,r2 + 1a6: fe3b fc01 sub r63,r63,12 + 1aa: 0300 beq 1b0 \ + 1ac: 0023 mov r0,0x1 + 1ae: 0fe2 trap 0x3 + +000001b0 \: + 1b0: ae7a orr r5,r3,r4 + 1b2: f7bb e000 sub r63,r5,7 + 1b6: 0300 beq 1bc \ + 1b8: 0023 mov r0,0x1 + 1ba: 0fe2 trap 0x3 + +000001bc \: + 1bc: ae5a and r5,r3,r4 + 1be: f43b e000 sub r63,r5,0 + 1c2: 0300 beq 1c8 \ + 1c4: 0023 mov r0,0x1 + 1c6: 0fe2 trap 0x3 + +000001c8 \: + 1c8: ad0a eor r5,r3,r2 + 1ca: f4bb e000 sub r63,r5,1 + 1ce: 0300 beq 1d4 \ + 1d0: 0023 mov r0,0x1 + 1d2: 0fe2 trap 0x3 + +000001d4 \: + 1d4: e99f e00a add.l r63,r2,r3 + 1d8: febb fc00 sub r63,r63,5 + 1dc: 0300 beq 1e2 \ + 1de: 0023 mov r0,0x1 + 1e0: 0fe2 trap 0x3 + +000001e2 \: + 1e2: fa3f e00a sub.l r63,r6,r4 + 1e6: fd3b fc00 sub r63,r63,2 + 1ea: 0300 beq 1f0 \ + 1ec: 0023 mov r0,0x1 + 1ee: 0fe2 trap 0x3 + +000001f0 \: + 1f0: e8ef e002 mov.l r63,r2 + 1f4: fd3b fc00 sub r63,r63,2 + 1f8: 0b00 beq 20e \ + 1fa: 0023 mov r0,0x1 + 1fc: 0fe2 trap 0x3 + +000001fe \: + 1fe: 0502 movts status,r0 + 200: e51f e002 movfs.l r63,status + 204: fc3f fc0a sub.l r63,r63,r0 + 208: fb00 beq 1fe \ + 20a: 0023 mov r0,0x1 + 20c: 0fe2 trap 0x3 + +0000020e \: + 20e: 01a2 nop + 210: 01a2 nop + 212: 01a2 nop + 214: 01a2 nop + +00000216 \: + 216: 0003 mov r0,0x0 + 218: 0fe2 trap 0x3 + 21a: 01b2 idle + +0000021c \: + 21c: 0023 mov r0,0x1 + 21e: 0fe2 trap 0x3 + 220: 01b2 idle + +00000222 \: + 222: 15e8 ffff b 4c \ + +00000226 \: + 226: 194f 0402 rts diff --git a/gas/testsuite/gas/epiphany/regression.s b/gas/testsuite/gas/epiphany/regression.s new file mode 100644 index 0000000..7ed5691 --- /dev/null +++ b/gas/testsuite/gas/epiphany/regression.s @@ -0,0 +1,240 @@ +;; -*-asm-*- + + TABLE=0x8000 + RZ=r63 + + .macro FAIL + mov r0,#1 + trap 3 + .endm + + .macro PASS + mov r0,#0 + trap 3 + .endm + + + .macro VERIFY ra,rb,ref,label + sub \ra,\rb,\ref + beq \label + FAIL + .endm + + +/*****************************************/ +/*INITIALIZING REGISTERS */ +/*****************************************/ +/*Check that sum is correct*/ +START: MOV R0, #TABLE ; //Setting R0 to TABLE + LSL R0,R0,#2 ; //Create 00020000 + + ;; Load r1.63 with 1..63 + .irpc num,63 + mov r\num,#\num + .endr + + + ;; Sum the registers + .irpc num,62 + add r63,r63,r\num + .endr + + mov r62,#2016 ;//Correct sum of 1..63 = 63*32 + 63 + VERIFY r63,r63,R62,BRANCH1;//CHECK SUM + + +/*****************************************/ +/*BRANCHING */ +/*****************************************/ +//Check that all condition codes work +BRANCH1: BEQ BRANCH2 ; //taken + FAIL ; + FAIL ; + FAIL ; + FAIL ; +BRANCH2: BNE FAIL_BRANCH ; //not taken +BRANCH3: BGT FAIL_BRANCH ; //not taken +BRANCH4: BGTE BRANCH5 ; //taken + FAIL ; +BRANCH5: BLTE BRANCH6 ; //taken + FAIL ; +BRANCH6: BLT FAIL_BRANCH ; //not taken +BRANCH8: B LONGJUMP ; //taken + FAIL ; +RETURN: bl FUNCTION ; //jump to subroutine + MOV R63,JARLAB ;//REGISTER JUMP + JR R63 ; + FAIL ; +JARLAB: MOV R63,FUNCTION ; //REGISTER CALL + JALR R63 ; //16 bit + B NEXT ; //jump over fail + FAIL ; + +FAIL_BRANCH: FAIL ; //fail branch + +/*****************************************/ +/*LOAD-STORE DISPLACEMENT */ +/*****************************************/ +//Check max displacement value(0xf) +//Check that offset is correct +//all load/stores are aligned +//this gives greater range(2 more bits) +//offset is shifted by 2x bits + +NEXT: STRB R4,[R0,#0x0] ;//Store Byte + LDRB R63,[R0,#0x0] ;//Load Byte + VERIFY R63,R63,R4,STOREB ; + +STOREB: STRB R5,[R0,#0xf] ;//Store Byte + LDRB R63,[R0,#0xf] ;//Load Byte + VERIFY R63,R63,R5,STORES ; + +STORES: STRH R4,[R0,#0x0] ;//Store Short + LDRH R63,[R0,#0x0] ;//Load Short + VERIFY R63,R63,R4,STORES2 ; + +STORES2: STRH R5,[R0,#0xe] ;//Store Short + LDRH R63,[R0,#0xe] ;//Load Short + VERIFY R63,R63,R5,STORE ; + +STORE: STR R4,[R0,#0x0] ;//Store Word + LDR R63,[R0,#0x0] ;//Load Word + VERIFY R63,R63,R4,STORE2 ; + +STORE2: STR R5,[R0,#0xc] ;//Store Word + LDR R63,[R0,#0xc] ;//Load Word + VERIFY R63,R63,R5,STOREBI ; + + +/*****************************************/ +/*LOAD-STORE INDEX */ +/*****************************************/ + +STOREBI: STRB R4,[R0,R4] ;//Store Word + LDRB R63,[R0,R4] ;//Load Word + VERIFY R63,R63,R4,STORESI ; + +STORESI: STRH R5,[R0,R4] ;//Store Word + LDRH R63,[R0,R4] ;//Load Word + VERIFY R63,R63,R5,STOREI ; + +STOREI: STR R6,[R0,R4] ;//Store Word + LDR R63,[R0,R4] ;//Load Word + VERIFY R63,R63,R6,PMB ; + +/*****************************************/ +/*LOAD-STORE POSTMODIFY */ +/*****************************************/ + +PMB: STRB R4,[R0],R4 ;//Store Word + SUB R0,R0,#0x4 ;//restoring R0 + LDRB R63,[R0],R4 ;//Load Word + SUB R0,R0,#0x4 ;//restoring R0 + VERIFY R63,R63,R4,PMS ; + +PMS: STRH R5,[R0],R4 ;//Store Word + SUB R0,R0,#0x4 ;//restoring R0 + LDRH R63,[R0],R4 ;//Load Word + VERIFY R63,R63,R5,PM ; + +PM: SUB R0,R0,#0x4 ;//restoring R0 + STR R6,[R0],R4 ;//Store Word + SUB R0,R0,#0x4 ;//restoring R0 + LDR R63,[R0],R4 ;//Load Word + SUB R0,R0,#0x4 ;//restoring R0 + VERIFY R63,R63,R6,MOVLAB ; + + + +/*****************************************/ +/*IMMEDIATE LOAD */ +/*****************************************/ +MOVLAB: MOV R63,#0xFF; + MOV R1,#0xFF; + VERIFY R63,R63,R1,ADDLAB ; + +/*****************************************/ +/*2 REG ADD/SUB PROCESSING */ +/*****************************************/ +ADDLAB: ADD R63,R2,#3; //2+3=5 + VERIFY R63,R63,#5,SUBLAB ; +SUBLAB: SUB R63,R2,#1; //2+1=1 + VERIFY R63,R63,#1,LSRLAB ; + +/*****************************************/ +/*SHIFTS */ +/*****************************************/ +//Note ASR does not work + + //Immediates +LSRLAB: LSR R63,R6,#0x2 ; //6>>2=1 + VERIFY R63,R63,#1,LSLLAB ; +LSLLAB: LSL R63,R3,#0x2 ; //3<<2=12 + VERIFY R63,R63,#12,LSRILAB ; + //Registers +LSRILAB: LSR R63,R6,R2 ; //6>>2=1 + VERIFY R63,R63,#1,LSLILAB ; +LSLILAB: LSL R63,R3,R2 ; //3<<2=12 + VERIFY R63,R63,#12,ORRLAB ; + + +/*****************************************/ +/*LOGICAL */ +/*****************************************/ +ORRLAB: ORR R5,R3,R4 ; //0x3 | 0x4 -->0x7 + VERIFY R63,R5,#7,ANDLAB ; +ANDLAB: AND R5,R3,R4 ; //0x3 & 0x4 -->0 + VERIFY R63,R5,#0,EORLAB ; +EORLAB: EOR R5,R3,R2 ; //0x3 ^ 0x2 -->1 + VERIFY R63,R5,#1,ADD3LAB ; + + +/****************************************/ +/*3-REGISTER ADD/SUB */ +/*****************************************/ +ADD3LAB: ADD R63,R2,R3 ; //3+2=5 + VERIFY R63,R63,#5,SUB3LAB ; +SUB3LAB: SUB R63,R6,R4 ; //6-4=2 + VERIFY R63,R63,#2,MOVRLAB ; + +/*****************************************/ +/*MOVE REGISTER */ +/*****************************************/ +MOVRLAB: MOV R63,R2 ; + VERIFY R63,R63,#2,NOPLAB ; + +/*****************************************/ +/*MOVE TO/FROM SPECIAL REGISTER */ +/*****************************************/ +MOVTFLAB: MOVTS status,R0 ; + MOVFS R63,status ; + VERIFY R63,R63,R0,MOVTFLAB ; + + +/*****************************************/ +/*NOP */ +/*****************************************/ +NOPLAB: NOP ; + NOP ; + NOP ; + NOP ; + +/*****************************************/ +/*PASS INDICATOR */ +/*****************************************/ +PASSED: PASS; + IDLE; +/*****************************************/ +/*FAIL INDICATOR */ +/*****************************************/ +FAILED: FAIL; + IDLE; + +/*****************************************/ +/*LONG JUMP INDICATOR */ +/*****************************************/ +LONGJUMP: B RETURN; //jump back to next +/*****************************************/ +/*SUBROUTINE */ +/*****************************************/ +FUNCTION: RTS; //return from subroutine diff --git a/gas/testsuite/gas/epiphany/sample.d b/gas/testsuite/gas/epiphany/sample.d new file mode 100644 index 0000000..17b5163 --- /dev/null +++ b/gas/testsuite/gas/epiphany/sample.d @@ -0,0 +1,221 @@ +#as: +#objdump: -dr +#name: sample +.*\.o: file format elf32-epiphany + +Disassembly of section \.text: + +00000000 \: + \.\.\. + +00000002 \: + 2: ff10 bne 0 \ + +00000004 \: + 4: fe20 bgtu 0 \ + +00000006 \: + 6: fd30 bgteu 0 \ + +00000008 \: + 8: fc40 blteu 0 \ + +0000000a \: + a: fb50 bltu 0 \ + +0000000c \: + c: fa60 bgt 0 \ + +0000000e \: + e: f970 bgte 0 \ + +00000010 \: + 10: f880 blt 0 \ + +00000012 \: + 12: f790 blte 0 \ + +00000014 \: + 14: f6a0 bbeq 0 \ + +00000016 \: + 16: f5b0 bbne 0 \ + +00000018 \: + 18: f4c0 bblt 0 \ + +0000001a \: + 1a: f3e0 b 0 \ + +0000001c \: + 1c: f2f0 bl 0 \ + +0000001e \: + 1e: 0542 jr r1 + 20: 1d4f 0c02 jr r31 + +00000024 \: + 24: 0552 jalr r1 + 26: 1d5f 0c02 jalr r31 + +0000002a \: + 2a: 299a add r1,r2,r3 + 2c: 051f 920a add.l r32,r33,r34 + 30: 2993 add r1,r2,3 + 32: 681b 2002 add fp,r2,16 + +00000036 \: + 36: 29ba sub r1,r2,r3 + 38: 053f 920a sub.l r32,r33,r34 + 3c: 29b3 sub r1,r2,3 + 3e: 683b 2002 sub fp,r2,16 + +00000042 \: + 42: 29ea asr r1,r2,r3 + 44: 056f 920a asr.l r32,r33,r34 + 48: 286e asr r1,r2,0x3 + 4a: 6a0f 200e asr.l fp,r2,0x10 + +0000004e \: + 4e: 29ca lsr r1,r2,r3 + 50: 054f 920a lsr.l r32,r33,r34 + 54: 2866 lsr r1,r2,0x3 + 56: 6a0f 2006 lsr.l fp,r2,0x10 + +0000005a \: + 5a: 29aa lsl r1,r2,r3 + 5c: 052f 920a lsl.l r32,r33,r34 + 60: 2876 lsl r1,r2,0x3 + 62: 6a1f 2006 lsl.l fp,r2,0x10 + +00000066 \: + 66: 29fa orr r1,r2,r3 + 68: 72ff 248a orr.l fp,ip,sp + +0000006c \: + 6c: 29da and r1,r2,r3 + 6e: 72df 248a and.l fp,ip,sp + +00000072 \: + 72: 298a eor r1,r2,r3 + 74: 728f 248a eor.l fp,ip,sp + 78: 0584 ldrb r0,\[r1,0x3\] + 7a: 478c 201f ldrb.l sl,\[r1,\+0xff\] + 7e: 0501 ldrb r0,\[r1,r2\] + 80: 0589 0080 ldrb.l r0,\[r1,\+fp\] + 84: 0d05 ldrb r0,\[r3\],r2 + 86: 528d 2480 ldrb.l sl,\[ip\],\+sp + 8a: 05a4 ldrh r0,\[r1,0x3\] + 8c: 47ac 201f ldrh.l sl,\[r1,\+0xff\] + 90: 0521 ldrh r0,\[r1,r2\] + 92: 05a9 0080 ldrh.l r0,\[r1,\+fp\] + 96: 0d25 ldrh r0,\[r3\],r2 + 98: 52ad 2480 ldrh.l sl,\[ip\],\+sp + 9c: 05c4 ldr r0,\[r1,0x3\] + 9e: 47cc 201f ldr.l sl,\[r1,\+0xff\] + a2: 0541 ldr r0,\[r1,r2\] + a4: 05c9 0080 ldr.l r0,\[r1,\+fp\] + a8: 0d45 ldr r0,\[r3\],r2 + aa: 52cd 2480 ldr.l sl,\[ip\],\+sp + ae: 05e4 ldrd r0,\[r1,0x3\] + b0: 47ec 201f ldrd.l sl,\[r1,\+0xff\] + b4: 0561 ldrd r0,\[r1,r2\] + b6: 05e9 0080 ldrd.l r0,\[r1,\+fp\] + ba: 0d65 ldrd r0,\[r3\],r2 + bc: 52ed 2480 ldrd.l sl,\[ip\],\+sp + c0: 0594 strb r0,\[r1,0x3\] + c2: 479c 201f strb.l sl,\[r1,\+0xff\] + c6: 0511 strb r0,\[r1,r2\] + c8: 0599 0080 strb.l r0,\[r1,\+fp\] + cc: 0d15 strb r0,\[r3\],r2 + ce: 529d 2480 strb.l sl,\[ip\],\+sp + d2: 05b4 strh r0,\[r1,0x3\] + d4: 47bc 201f strh.l sl,\[r1,\+0xff\] + d8: 0531 strh r0,\[r1,r2\] + da: 05b9 0080 strh.l r0,\[r1,\+fp\] + de: 0d35 strh r0,\[r3\],r2 + e0: 52bd 2480 strh.l sl,\[ip\],\+sp + e4: 05d4 str r0,\[r1,0x3\] + e6: 47dc 201f str.l sl,\[r1,\+0xff\] + ea: 0551 str r0,\[r1,r2\] + ec: 05d9 0080 str.l r0,\[r1,\+fp\] + f0: 0d55 str r0,\[r3\],r2 + f2: 52dd 2480 str.l sl,\[ip\],\+sp + f6: 05f4 strd r0,\[r1,0x3\] + f8: 47fc 201f strd.l sl,\[r1,\+0xff\] + fc: 0571 strd r0,\[r1,r2\] + fe: 05f9 0080 strd.l r0,\[r1,\+fp\] + 102: 0d75 strd r0,\[r3\],r2 + 104: 52fd 2480 strd.l sl,\[ip\],\+sp + +00000108 \: + 108: dfe3 mov r6,0xff + 10a: ffeb 6ff2 mov r31,0xffff + 10e: 004b 0102 mov r0,0x1002 + 112: 2802 moveq r1,r2 + 114: 700f 2402 moveq.l fp,ip + 118: 2812 movne r1,r2 + 11a: 701f 2402 movne.l fp,ip + 11e: 2822 movgtu r1,r2 + 120: 702f 2402 movgtu.l fp,ip + 124: 2832 movgteu r1,r2 + 126: 703f 2402 movgteu.l fp,ip + 12a: 2842 movlteu r1,r2 + 12c: 704f 2402 movlteu.l fp,ip + 130: 2852 movltu r1,r2 + 132: 705f 2402 movltu.l fp,ip + 136: 2862 movgt r1,r2 + 138: 706f 2402 movgt.l fp,ip + 13c: 2872 movgte r1,r2 + 13e: 707f 2402 movgte.l fp,ip + 142: 2882 movlt r1,r2 + 144: 708f 2402 movlt.l fp,ip + 148: 2892 movlte r1,r2 + 14a: 709f 2402 movlte.l fp,ip + 14e: 28a2 movbeq r1,r2 + 150: 70af 2402 movbeq.l fp,ip + 154: 28b2 movbne r1,r2 + 156: 70bf 2402 movbne.l fp,ip + 15a: 28c2 movblt r1,r2 + 15c: 70cf 2402 movblt.l fp,ip + 160: 28d2 movblte r1,r2 + 162: 70df 2402 movblte.l fp,ip + 166: 28e2 mov r1,r2 + 168: 70ef 2402 mov.l fp,ip + +0000016c \: + 16c: 01a2 nop + +0000016e \: + 16e: 01b2 idle + +00000170 \: + 170: 01c2 bkpt + +00000172 \: + 172: 2987 fadd r1,r2,r3 + 174: 728f 2487 fadd.l fp,ip,sp + +00000178 \: + 178: 2997 fsub r1,r2,r3 + 17a: 729f 2487 fsub.l fp,ip,sp + +0000017e \: + 17e: 29a7 fmul r1,r2,r3 + 180: 72af 2487 fmul.l fp,ip,sp + +00000184 \: + 184: 29b7 fmadd r1,r2,r3 + 186: 72bf 2487 fmadd.l fp,ip,sp + +0000018a \: + 18a: 29c7 fmsub r1,r2,r3 + 18c: 72cf 2487 fmsub.l fp,ip,sp + 190: 2102 movts config,r1 + 192: e50f 6002 movts.l status,r31 + 196: 251f 0402 movfs.l r1,imask + 19a: e91f 6002 movfs.l r31,pc + +0000019e \: + 19e: 03e2 trap 0x0 + 1a0: 01d2 rti diff --git a/gas/testsuite/gas/epiphany/sample.s b/gas/testsuite/gas/epiphany/sample.s new file mode 100755 index 0000000..91f3940 --- /dev/null +++ b/gas/testsuite/gas/epiphany/sample.s @@ -0,0 +1,123 @@ + .data +foodata: .hword 42 + .text +footext: + .text + + .macro test nm:req, args:vararg +\nm: \nm \args + .global \nm + .endm + +;;; Basic Instruction Tests +1: ; All branches + test beq,1b + test bne,1b + test bgtu,1b + test bgteu,1b + test blteu,1b + test bltu,1b + test bgt,1b + test bgte,1b + test blt,1b + test blte,1b + + test bbeq,1b + test bbne,1b + test bblt,1b + test b,1b + test bl,1b + +;;; jumps + test jr,r1 + jr r31 + + test jalr,r1 + jalr r31 + + + .macro test3i nm:req + test \nm,r1,r2,r3 + \nm r32,r33,r34 + \nm r1,r2,#3 + \nm r11,r2,#16 + .endm + test3i add + test3i sub + test3i asr + test3i lsr + test3i lsl + + .macro test3 nm:req + test \nm,r1,r2,r3 + \nm r11,r12,r13 + .endm + + test3 orr + test3 and + test3 eor + + .macro testmem nm:req + \nm r0,[r1,#3] + \nm r10,[r1,#255] + \nm r0,[r1,r2] + \nm r0,[r1,r11] + \nm r0,[r3],r2 + \nm r10,[r12],r13 + .endm + + testmem ldrb + testmem ldrh + testmem ldr + testmem ldrd + + + testmem strb + testmem strh + testmem str + testmem strd + + test mov,r6,#255 + mov r31,#65535 + mov r0,#4098 + + .macro testmov cond:req + mov\cond r1,r2 + mov\cond r11,r12 + .endm + + testmov eq + testmov ne + testmov gtu + testmov gteu + testmov lteu + testmov ltu + testmov gt + testmov gte + testmov lt + testmov lte + testmov beq + testmov bne + testmov blt + testmov blte + mov r1,r2 + mov r11,r12 + + test nop + test idle + test bkpt + + test3 fadd + test3 fsub + test3 fmul + test3 fmadd + test3 fmsub + + movts config,r1 + movts status,r31 + + movfs r1,imask + movfs r31,pc + + test trap,#0 ; write syscall for simulator. + rti ; dummy instruction -- cgit v1.1