aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2001-02-10 00:58:38 +0000
committerNick Clifton <nickc@redhat.com>2001-02-10 00:58:38 +0000
commita85d7ed0f0b65504f7d8027319d1a4a9adb9d8c1 (patch)
treed46823b360b1d614fb1c65de41cdc778a68984ff /gas
parent356d255deb0cb49d4dade90addbb7bdcde0d7e36 (diff)
downloadgdb-a85d7ed0f0b65504f7d8027319d1a4a9adb9d8c1.zip
gdb-a85d7ed0f0b65504f7d8027319d1a4a9adb9d8c1.tar.gz
gdb-a85d7ed0f0b65504f7d8027319d1a4a9adb9d8c1.tar.bz2
Add s390 support
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/Makefile.am15
-rw-r--r--gas/Makefile.in18
-rw-r--r--gas/config.in6
-rw-r--r--gas/config/tc-s390.c1756
-rw-r--r--gas/config/tc-s390.h113
-rwxr-xr-xgas/configure352
-rw-r--r--gas/configure.in11
-rw-r--r--gas/po/POTFILES.in2
-rw-r--r--gas/po/gas.pot1196
10 files changed, 2759 insertions, 717 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index c6babbe..f3f3800 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+2001-02-09 Schwidefsky <schwidefsky@de.ibm.com>
+
+ * Makefile.am: Add linux target for S/390.
+ * configure.in: Likewise.
+ * config/tc-s390.c: New file.
+ * config/tc-s390.h: New file.
+
2001-02-09 Alexandre Oliva <aoliva@redhat.com>
* config/tc-sh.c (md_pseudo_table): Add uaquad. Use s_uacons for
diff --git a/gas/Makefile.am b/gas/Makefile.am
index 47b6253..f6702b2 100644
--- a/gas/Makefile.am
+++ b/gas/Makefile.am
@@ -65,6 +65,7 @@ CPU_TYPES = \
ns32k \
pj \
ppc \
+ s390 \
sh \
sparc \
tahoe \
@@ -246,6 +247,7 @@ TARGET_CPU_CFILES = \
config/tc-ns32k.c \
config/tc-pj.c \
config/tc-ppc.c \
+ config/tc-s390.c \
config/tc-sh.c \
config/tc-sparc.c \
config/tc-tahoe.c \
@@ -286,6 +288,7 @@ TARGET_CPU_HFILES = \
config/tc-ns32k.h \
config/tc-pj.h \
config/tc-ppc.h \
+ config/tc-s390.h \
config/tc-sh.h \
config/tc-sparc.h \
config/tc-tahoe.h \
@@ -1180,6 +1183,11 @@ DEPTC_ppc_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
$(INCDIR)/bfdlink.h $(srcdir)/config/tc-ppc.h subsegs.h \
$(INCDIR)/obstack.h $(INCDIR)/opcode/ppc.h $(INCDIR)/elf/ppc.h \
$(INCDIR)/elf/reloc-macros.h
+DEPTC_s390_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h $(srcdir)/config/tc-s390.h subsegs.h \
+ $(INCDIR)/obstack.h $(INCDIR)/opcode/s390.h $(INCDIR)/elf/s390.h \
+ $(INCDIR)/elf/reloc-macros.h
DEPTC_sh_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-sh.h \
$(INCDIR)/coff/internal.h $(INCDIR)/coff/sh.h $(BFDDIR)/libcoff.h \
$(INCDIR)/bfdlink.h subsegs.h $(INCDIR)/obstack.h $(srcdir)/../opcodes/sh-opc.h \
@@ -1507,6 +1515,10 @@ DEPOBJ_ppc_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
$(INCDIR)/bfdlink.h $(srcdir)/config/tc-ppc.h subsegs.h \
$(INCDIR)/obstack.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \
$(INCDIR)/aout/aout64.h
+DEPOBJ_s390_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h $(srcdir)/config/tc-s390.h subsegs.h \
+ $(INCDIR)/obstack.h $(INCDIR)/aout/aout64.h
DEPOBJ_sh_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-sh.h \
$(INCDIR)/coff/internal.h $(INCDIR)/coff/sh.h $(BFDDIR)/libcoff.h \
$(INCDIR)/bfdlink.h $(INCDIR)/obstack.h subsegs.h
@@ -1772,6 +1784,9 @@ DEP_ppc_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-ppc.h \
DEP_ppc_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h $(srcdir)/config/tc-ppc.h
+DEP_s390_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h $(srcdir)/config/tc-s390.h
DEP_sh_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-sh.h \
$(INCDIR)/coff/internal.h $(INCDIR)/coff/sh.h $(BFDDIR)/libcoff.h \
$(INCDIR)/bfdlink.h
diff --git a/gas/Makefile.in b/gas/Makefile.in
index bd1a89e..493fb0a 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -176,6 +176,7 @@ CPU_TYPES = \
ns32k \
pj \
ppc \
+ s390 \
sh \
sparc \
tahoe \
@@ -363,6 +364,7 @@ TARGET_CPU_CFILES = \
config/tc-ns32k.c \
config/tc-pj.c \
config/tc-ppc.c \
+ config/tc-s390.c \
config/tc-sh.c \
config/tc-sparc.c \
config/tc-tahoe.c \
@@ -404,6 +406,7 @@ TARGET_CPU_HFILES = \
config/tc-ns32k.h \
config/tc-pj.h \
config/tc-ppc.h \
+ config/tc-s390.h \
config/tc-sh.h \
config/tc-sparc.h \
config/tc-tahoe.h \
@@ -953,6 +956,12 @@ DEPTC_ppc_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
$(INCDIR)/obstack.h $(INCDIR)/opcode/ppc.h $(INCDIR)/elf/ppc.h \
$(INCDIR)/elf/reloc-macros.h
+DEPTC_s390_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h $(srcdir)/config/tc-s390.h subsegs.h \
+ $(INCDIR)/obstack.h $(INCDIR)/opcode/s390.h $(INCDIR)/elf/s390.h \
+ $(INCDIR)/elf/reloc-macros.h
+
DEPTC_sh_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-sh.h \
$(INCDIR)/coff/internal.h $(INCDIR)/coff/sh.h $(BFDDIR)/libcoff.h \
$(INCDIR)/bfdlink.h subsegs.h $(INCDIR)/obstack.h $(srcdir)/../opcodes/sh-opc.h \
@@ -1373,6 +1382,11 @@ DEPOBJ_ppc_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
$(INCDIR)/obstack.h $(INCDIR)/elf/ppc.h $(INCDIR)/elf/reloc-macros.h \
$(INCDIR)/aout/aout64.h
+DEPOBJ_s390_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h $(srcdir)/config/tc-s390.h subsegs.h \
+ $(INCDIR)/obstack.h $(INCDIR)/aout/aout64.h
+
DEPOBJ_sh_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-sh.h \
$(INCDIR)/coff/internal.h $(INCDIR)/coff/sh.h $(BFDDIR)/libcoff.h \
$(INCDIR)/bfdlink.h $(INCDIR)/obstack.h subsegs.h
@@ -1730,6 +1744,10 @@ DEP_ppc_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h $(srcdir)/config/tc-ppc.h
+DEP_s390_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
+ $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
+ $(INCDIR)/bfdlink.h $(srcdir)/config/tc-s390.h
+
DEP_sh_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-sh.h \
$(INCDIR)/coff/internal.h $(INCDIR)/coff/sh.h $(BFDDIR)/libcoff.h \
$(INCDIR)/bfdlink.h
diff --git a/gas/config.in b/gas/config.in
index fc7ef2b..8477871 100644
--- a/gas/config.in
+++ b/gas/config.in
@@ -163,6 +163,12 @@
/* Default architecture. */
#undef DEFAULT_ARCH
+/* Default architecture. */
+#undef DEFAULT_ARCH
+
+/* Default architecture. */
+#undef DEFAULT_ARCH
+
/* Using cgen code? */
#undef USING_CGEN
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
new file mode 100644
index 0000000..329ac1a
--- /dev/null
+++ b/gas/config/tc-s390.c
@@ -0,0 +1,1756 @@
+/* tc-s390.c -- Assemble for the S390
+ Copyright (C) 2000 Free Software Foundation, Inc.
+ Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
+
+ 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 2, 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, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA. */
+
+#include <stdio.h>
+#include <ctype.h>
+#include "as.h"
+#include "subsegs.h"
+#include "struc-symbol.h"
+
+#include "opcode/s390.h"
+#include "elf/s390.h"
+
+/* The default architecture */
+#ifndef DEFAULT_ARCH
+#define DEFAULT_ARCH "s390"
+#endif
+static char *default_arch = DEFAULT_ARCH;
+/* Either 32 or 64, selects file format. */
+static int s390_arch_size;
+/* Current architecture. Start with the smallest instruction set */
+static enum s390_opcode_arch_val current_architecture = S390_OPCODE_ESA;
+static int current_arch_mask = 1 << S390_OPCODE_ESA;
+static int current_arch_requested = 0;
+
+/* Whether to use user friendly register names. Default is true. */
+#ifndef TARGET_REG_NAMES_P
+#define TARGET_REG_NAMES_P true
+#endif
+
+static boolean reg_names_p = TARGET_REG_NAMES_P;
+
+/* Generic assembler global variables which must be defined by all
+ targets. */
+
+const char comment_chars[] = "#";
+
+/* Characters which start a comment at the beginning of a line. */
+const char line_comment_chars[] = "#";
+
+/* Characters which may be used to separate multiple commands on a
+ single line. */
+const char line_separator_chars[] = ";";
+
+/* Characters which are used to indicate an exponent in a floating
+ point number. */
+const char EXP_CHARS[] = "eE";
+
+/* Characters which mean that a number is a floating point constant,
+ as in 0d1.0. */
+const char FLT_CHARS[] = "dD";
+
+/* The target specific pseudo-ops which we support. */
+
+/* Define the prototypes for the pseudo-ops */
+static void s390_byte PARAMS ((int));
+static void s390_elf_cons PARAMS ((int));
+static void s390_bss PARAMS ((int));
+static void s390_insn PARAMS ((int));
+static void s390_literals PARAMS ((int));
+
+const pseudo_typeS md_pseudo_table[] =
+{
+ { "align", s_align_bytes, 0 },
+ /* Pseudo-ops which must be defined. */
+ { "bss", s390_bss, 0 },
+ { "insn", s390_insn, 0 },
+ /* Pseudo-ops which must be overridden. */
+ { "byte", s390_byte, 0 },
+ { "short", s390_elf_cons, 2 },
+ { "long", s390_elf_cons, 4 },
+ { "quad", s390_elf_cons, 8 },
+ { "ltorg", s390_literals, 0 },
+ { "string", stringer, 2 },
+ { NULL, NULL, 0 }
+};
+
+
+/* Structure to hold information about predefined registers. */
+struct pd_reg
+ {
+ char *name;
+ int value;
+ };
+
+/* List of registers that are pre-defined:
+
+ Each access register has a predefined name of the form:
+ a<reg_num> which has the value <reg_num>.
+
+ Each control register has a predefined name of the form:
+ c<reg_num> which has the value <reg_num>.
+
+ Each general register has a predefined name of the form:
+ r<reg_num> which has the value <reg_num>.
+
+ Each floating point register a has predefined name of the form:
+ f<reg_num> which has the value <reg_num>.
+
+ There are individual registers as well:
+ sp has the value 15
+ lit has the value 12
+
+ The table is sorted. Suitable for searching by a binary search. */
+
+static const struct pd_reg pre_defined_registers[] =
+{
+ { "a0", 0 }, /* Access registers */
+ { "a1", 1 },
+ { "a10", 10 },
+ { "a11", 11 },
+ { "a12", 12 },
+ { "a13", 13 },
+ { "a14", 14 },
+ { "a15", 15 },
+ { "a2", 2 },
+ { "a3", 3 },
+ { "a4", 4 },
+ { "a5", 5 },
+ { "a6", 6 },
+ { "a7", 7 },
+ { "a8", 8 },
+ { "a9", 9 },
+
+ { "c0", 0 }, /* Control registers */
+ { "c1", 1 },
+ { "c10", 10 },
+ { "c11", 11 },
+ { "c12", 12 },
+ { "c13", 13 },
+ { "c14", 14 },
+ { "c15", 15 },
+ { "c2", 2 },
+ { "c3", 3 },
+ { "c4", 4 },
+ { "c5", 5 },
+ { "c6", 6 },
+ { "c7", 7 },
+ { "c8", 8 },
+ { "c9", 9 },
+
+ { "f0", 0 }, /* Floating point registers */
+ { "f1", 1 },
+ { "f10", 10 },
+ { "f11", 11 },
+ { "f12", 12 },
+ { "f13", 13 },
+ { "f14", 14 },
+ { "f15", 15 },
+ { "f2", 2 },
+ { "f3", 3 },
+ { "f4", 4 },
+ { "f5", 5 },
+ { "f6", 6 },
+ { "f7", 7 },
+ { "f8", 8 },
+ { "f9", 9 },
+
+ { "lit", 13 }, /* Pointer to literal pool */
+
+ { "r0", 0 }, /* General purpose registers */
+ { "r1", 1 },
+ { "r10", 10 },
+ { "r11", 11 },
+ { "r12", 12 },
+ { "r13", 13 },
+ { "r14", 14 },
+ { "r15", 15 },
+ { "r2", 2 },
+ { "r3", 3 },
+ { "r4", 4 },
+ { "r5", 5 },
+ { "r6", 6 },
+ { "r7", 7 },
+ { "r8", 8 },
+ { "r9", 9 },
+
+ { "sp", 15 }, /* Stack pointer */
+
+};
+
+#define REG_NAME_CNT (sizeof(pre_defined_registers) / sizeof(struct pd_reg))
+
+/* Given NAME, find the register number associated with that name, return
+ the integer value associated with the given name or -1 on failure. */
+
+static int
+reg_name_search (regs, regcount, name)
+ const struct pd_reg *regs;
+ int regcount;
+ const char *name;
+{
+ int middle, low, high;
+ int cmp;
+
+ low = 0;
+ high = regcount - 1;
+
+ do
+ {
+ middle = (low + high) / 2;
+ cmp = strcasecmp (name, regs[middle].name);
+ if (cmp < 0)
+ high = middle - 1;
+ else if (cmp > 0)
+ low = middle + 1;
+ else
+ return regs[middle].value;
+ }
+ while (low <= high);
+
+ return -1;
+}
+
+
+/*
+ * Summary of register_name().
+ *
+ * in: Input_line_pointer points to 1st char of operand.
+ *
+ * out: A expressionS.
+ * The operand may have been a register: in this case, X_op == O_register,
+ * X_add_number is set to the register number, and truth is returned.
+ * Input_line_pointer->(next non-blank) char after operand, or is in its
+ * original state.
+ */
+
+static boolean
+register_name (expressionP)
+ expressionS *expressionP;
+{
+ int reg_number;
+ char *name;
+ char *start;
+ char c;
+
+ /* Find the spelling of the operand */
+ start = name = input_line_pointer;
+ if (name[0] == '%' && isalpha (name[1]))
+ name = ++input_line_pointer;
+ else
+ return false;
+
+ c = get_symbol_end ();
+ reg_number = reg_name_search (pre_defined_registers, REG_NAME_CNT, name);
+
+ /* look to see if it's in the register table */
+ if (reg_number >= 0)
+ {
+ expressionP->X_op = O_register;
+ expressionP->X_add_number = reg_number;
+
+ /* make the rest nice */
+ expressionP->X_add_symbol = NULL;
+ expressionP->X_op_symbol = NULL;
+ *input_line_pointer = c; /* put back the delimiting char */
+ return true;
+ }
+ else
+ {
+ /* reset the line as if we had not done anything */
+ *input_line_pointer = c; /* put back the delimiting char */
+ input_line_pointer = start; /* reset input_line pointer */
+ return false;
+ }
+}
+
+/* Local variables. */
+
+/* Opformat hash table. */
+static struct hash_control *s390_opformat_hash;
+
+/* Opcode hash table. */
+static struct hash_control *s390_opcode_hash;
+
+/* Flags to set in the elf header */
+static flagword s390_flags = 0;
+
+symbolS *GOT_symbol; /* Pre-defined "_GLOBAL_OFFSET_TABLE_" */
+
+#ifndef WORKING_DOT_WORD
+const int md_short_jump_size = 4;
+const int md_long_jump_size = 4;
+#endif
+
+CONST char *md_shortopts = "A:m:kVQ:";
+struct option md_longopts[] = {
+ {NULL, no_argument, NULL, 0}
+};
+size_t md_longopts_size = sizeof(md_longopts);
+
+/* Initialize the default opcode arch and word size from the default
+ architecture name. */
+static void
+init_default_arch ()
+{
+ if (current_arch_requested)
+ return;
+ if (strcmp(default_arch, "s390") == 0) {
+ s390_arch_size = 32;
+ current_architecture = S390_OPCODE_ESA;
+ } else if (strcmp(default_arch, "s390x") == 0) {
+ s390_arch_size = 64;
+ current_architecture = S390_OPCODE_ESAME;
+ } else
+ as_fatal ("Invalid default architecture, broken assembler.");
+ current_arch_mask = 1 << current_architecture;
+}
+
+/* Called by TARGET_FORMAT. */
+const char *
+s390_target_format ()
+{
+ /* We don't get a chance to initialize anything before we're called,
+ so handle that now. */
+ if (! s390_arch_size)
+ init_default_arch ();
+
+ return s390_arch_size == 64 ? "elf64-s390" : "elf32-s390";
+}
+
+int
+md_parse_option (c, arg)
+ int c;
+ char *arg;
+{
+ switch (c) {
+ /* -k: Ignore for FreeBSD compatibility. */
+ case 'k':
+ break;
+ case 'm':
+ if (arg != NULL && strcmp (arg, "regnames") == 0)
+ reg_names_p = true;
+
+ else if (arg != NULL && strcmp (arg, "no-regnames") == 0)
+ reg_names_p = false;
+
+ else {
+ as_bad (_("invalid switch -m%s"), arg);
+ return 0;
+ }
+ break;
+
+ case 'A':
+ if (arg != NULL && strcmp (arg, "esa") == 0) {
+ current_architecture = S390_OPCODE_ESA;
+ s390_arch_size = 32;
+ } else if (arg != NULL && strcmp (arg, "esame") == 0) {
+ current_architecture = S390_OPCODE_ESAME;
+ s390_arch_size = 64;
+ } else
+ as_bad ("invalid architecture -A%s", arg);
+ current_arch_mask = 1 << current_architecture;
+ current_arch_requested = 1;
+ break;
+
+ /* -V: SVR4 argument to print version ID. */
+ case 'V':
+ print_version_id ();
+ break;
+
+ /* -Qy, -Qn: SVR4 arguments controlling whether a .comment section
+ should be emitted or not. FIXME: Not implemented. */
+ case 'Q':
+ break;
+
+ default:
+ return 0;
+ }
+
+ return 1;
+}
+
+void
+md_show_usage (stream)
+ FILE *stream;
+{
+ fprintf(stream, _("\
+ S390 options:\n\
+ -mregnames \tAllow symbolic names for registers\n\
+ -mno-regnames\tDo not allow symbolic names for registers\n"));
+ fprintf(stream, _("\
+ -V \tprint assembler version number\n\
+ -Qy, -Qn \tignored\n"));
+}
+
+/* This function is called when the assembler starts up. It is called
+ after the options have been parsed and the output file has been
+ opened. */
+
+void
+md_begin ()
+{
+ register const struct s390_opcode *op;
+ const struct s390_opcode *op_end;
+ boolean dup_insn = false;
+ const char *retval;
+
+ /* Set the ELF flags if desired. */
+ if (s390_flags)
+ bfd_set_private_flags (stdoutput, s390_flags);
+
+ /* Insert the opcode formats into a hash table. */
+ s390_opformat_hash = hash_new ();
+
+ op_end = s390_opformats + s390_num_opformats;
+ for (op = s390_opformats; op < op_end; op++) {
+ retval = hash_insert (s390_opformat_hash, op->name, (PTR) op);
+ if (retval != (const char *) NULL)
+ {
+ as_bad (_("Internal assembler error for instruction format %s"),
+ op->name);
+ dup_insn = true;
+ }
+ }
+
+ /* Insert the opcodes into a hash table. */
+ s390_opcode_hash = hash_new ();
+
+ op_end = s390_opcodes + s390_num_opcodes;
+ for (op = s390_opcodes; op < op_end; op++) {
+ retval = hash_insert (s390_opcode_hash, op->name, (PTR) op);
+ if (retval != (const char *) NULL)
+ {
+ as_bad (_("Internal assembler error for instruction %s"), op->name);
+ dup_insn = true;
+ }
+ }
+
+ if (dup_insn)
+ abort ();
+
+ record_alignment (text_section, 2);
+ record_alignment (data_section, 2);
+ record_alignment (bss_section, 2);
+
+}
+
+/* Called after all assembly has been done. */
+void
+s390_md_end ()
+{
+ if (s390_arch_size == 64) {
+ bfd_set_arch_mach (stdoutput, bfd_arch_s390, bfd_mach_s390_esame);
+ } else {
+ bfd_set_arch_mach (stdoutput, bfd_arch_s390, bfd_mach_s390_esa);
+ }
+}
+
+void
+s390_align_code (fragP, count)
+ fragS *fragP;
+ int count;
+{
+ /* We use nop pattern 0x0707. */
+ if (count > 0) {
+ memset(fragP->fr_literal + fragP->fr_fix, 0x07, count);
+ fragP->fr_var = count;
+ }
+}
+
+/* Insert an operand value into an instruction. */
+
+static void
+s390_insert_operand (insn, operand, val, file, line)
+ unsigned char *insn;
+ const struct s390_operand *operand;
+ offsetT val;
+ char *file;
+ unsigned int line;
+{
+ addressT uval;
+ int offset;
+
+ if (operand->flags & (S390_OPERAND_SIGNED|S390_OPERAND_PCREL)) {
+ offsetT min, max;
+
+ max = ((offsetT) 1 << (operand->bits - 1)) - 1;
+ min = - ((offsetT) 1 << (operand->bits - 1));
+ /* Halve PCREL operands. */
+ if (operand->flags & S390_OPERAND_PCREL)
+ val >>= 1;
+ /* Check for underflow / overflow. */
+ if (val < min || val > max) {
+ const char *err =
+ "operand out of range (%s not between %ld and %ld)";
+ char buf[100];
+
+ if (operand->flags & S390_OPERAND_PCREL) {
+ val <<= 1;
+ min <<= 1;
+ max <<= 1;
+ }
+ sprint_value (buf, val);
+ if (file == (char *) NULL)
+ as_bad (err, buf, (int) min, (int) max);
+ else
+ as_bad_where (file, line, err, buf, (int) min, (int) max);
+ return;
+ }
+ /* val is ok, now restrict it to operand->bits bits. */
+ uval = (addressT) val & ((((addressT) 1 << (operand->bits-1)) << 1) - 1);
+ } else {
+ addressT min, max;
+
+ max = (((addressT) 1 << (operand->bits - 1))<<1) - 1;
+ min = (offsetT) 0;
+ uval = (addressT) val;
+ /* Length x in an instructions has real length x+1. */
+ if (operand->flags & S390_OPERAND_LENGTH)
+ uval--;
+ /* Check for underflow / overflow. */
+ if (uval < min || uval > max) {
+ const char *err =
+ "operand out of range (%s not between %ld and %ld)";
+ char buf[100];
+
+ if (operand->flags & S390_OPERAND_LENGTH) {
+ uval++;
+ min++;
+ max++;
+ }
+ sprint_value (buf, uval);
+ if (file == (char *) NULL)
+ as_bad (err, buf, (int) min, (int) max);
+ else
+ as_bad_where (file, line, err, buf, (int) min, (int) max);
+ return;
+ }
+ }
+
+ /* Insert fragments of the operand byte for byte. */
+ offset = operand->shift + operand->bits;
+ uval <<= (-offset) & 7;
+ insn += (offset - 1)/8;
+ while (uval != 0) {
+ *insn-- |= uval;
+ uval >>= 8;
+ }
+}
+
+/* Structure used to hold suffixes. */
+typedef enum {
+ ELF_SUFFIX_NONE = 0,
+ ELF_SUFFIX_GOT,
+ ELF_SUFFIX_PLT,
+ ELF_SUFFIX_GOTENT
+} elf_suffix_type;
+
+struct map_bfd {
+ char *string;
+ int length;
+ elf_suffix_type suffix;
+};
+
+/* Parse @got/@plt/@gotoff. and return the desired relocation. */
+static elf_suffix_type
+s390_elf_suffix (str_p, exp_p)
+ char **str_p;
+ expressionS *exp_p;
+{
+ static struct map_bfd mapping[] = {
+ { "got", 3, ELF_SUFFIX_GOT },
+ { "got12", 5, ELF_SUFFIX_GOT },
+ { "plt", 3, ELF_SUFFIX_PLT },
+ { "gotent", 6, ELF_SUFFIX_GOTENT },
+ { NULL, 0, ELF_SUFFIX_NONE }
+ };
+
+ struct map_bfd *ptr;
+ char *str = *str_p;
+ char *ident;
+ int len;
+
+ if (*str++ != '@')
+ return ELF_SUFFIX_NONE;
+
+ ident = str;
+ while (isalnum(*str))
+ str++;
+ len = str - ident;
+
+ for (ptr = &mapping[0]; ptr->length > 0; ptr++)
+ if (len == ptr->length &&
+ strncasecmp(ident, ptr->string, ptr->length) == 0) {
+ if (exp_p->X_add_number != 0)
+ as_warn (_("identifier+constant@%s means identifier@%s+constant"),
+ ptr->string, ptr->string);
+ /* Now check for identifier@suffix+constant. */
+ if (*str == '-' || *str == '+') {
+ char *orig_line = input_line_pointer;
+ expressionS new_exp;
+
+ input_line_pointer = str;
+ expression (&new_exp);
+
+ switch (new_exp.X_op) {
+ case O_constant: /* X_add_number (a constant expression). */
+ exp_p->X_add_number += new_exp.X_add_number;
+ str = input_line_pointer;
+ break;
+ case O_symbol: /* X_add_symbol + X_add_number. */
+ /* this case is used for e.g. xyz@PLT+.Label. */
+ exp_p->X_add_number += new_exp.X_add_number;
+ exp_p->X_op_symbol = new_exp.X_add_symbol;
+ exp_p->X_op = O_add;
+ str = input_line_pointer;
+ break;
+ case O_uminus: /* (- X_add_symbol) + X_add_number. */
+ /* this case is used for e.g. xyz@PLT-.Label. */
+ exp_p->X_add_number += new_exp.X_add_number;
+ exp_p->X_op_symbol = new_exp.X_add_symbol;
+ exp_p->X_op = O_subtract;
+ str = input_line_pointer;
+ break;
+ default:
+ break;
+ }
+
+ /* If s390_elf_suffix has not been called with
+ &input_line_pointer as first parameter, we have
+ clobbered the input_line_pointer. We have to
+ undo that. */
+ if (&input_line_pointer != str_p)
+ input_line_pointer = orig_line;
+ }
+ *str_p = str;
+ return ptr->suffix;
+ }
+
+ return BFD_RELOC_UNUSED;
+}
+
+/* Structure used to hold a literal pool entry. */
+struct s390_lpe {
+ struct s390_lpe *next;
+ expressionS ex;
+ FLONUM_TYPE floatnum; /* used if X_op == O_big && X_add_number <= 0 */
+ LITTLENUM_TYPE bignum[4]; /* used if X_op == O_big && X_add_number > 0 */
+ int nbytes;
+ bfd_reloc_code_real_type reloc;
+ symbolS *sym;
+};
+
+static struct s390_lpe *lpe_free_list = NULL;
+static struct s390_lpe *lpe_list = NULL;
+static struct s390_lpe *lpe_list_tail = NULL;
+static symbolS *lp_sym = NULL;
+static int lp_count = 0;
+static int lpe_count = 0;
+
+static int
+s390_exp_compare(exp1, exp2)
+ expressionS *exp1;
+ expressionS *exp2;
+{
+ if (exp1->X_op != exp2->X_op)
+ return 0;
+
+ switch (exp1->X_op) {
+ case O_constant: /* X_add_number must be equal. */
+ case O_register:
+ return exp1->X_add_number == exp2->X_add_number;
+
+ case O_big:
+ as_bad(_("Can't handle O_big in s390_exp_compare"));
+
+ case O_symbol: /* X_add_symbol & X_add_number must be equal. */
+ case O_symbol_rva:
+ case O_uminus:
+ case O_bit_not:
+ case O_logical_not:
+ return (exp1->X_add_symbol == exp2->X_add_symbol) &&
+ (exp1->X_add_number == exp2->X_add_number);
+
+ case O_multiply: /* X_add_symbol,X_op_symbol&X_add_number must be equal. */
+ case O_divide:
+ case O_modulus:
+ case O_left_shift:
+ case O_right_shift:
+ case O_bit_inclusive_or:
+ case O_bit_or_not:
+ case O_bit_exclusive_or:
+ case O_bit_and:
+ case O_add:
+ case O_subtract:
+ case O_eq:
+ case O_ne:
+ case O_lt:
+ case O_le:
+ case O_ge:
+ case O_gt:
+ case O_logical_and:
+ case O_logical_or:
+ return (exp1->X_add_symbol == exp2->X_add_symbol) &&
+ (exp1->X_op_symbol == exp2->X_op_symbol) &&
+ (exp1->X_add_number == exp2->X_add_number);
+ default:
+ return 0;
+ }
+}
+
+/* Test for @lit and if its present make an entry in the literal pool and
+ modify the current expression to be an offset into the literal pool. */
+static elf_suffix_type
+s390_lit_suffix (str_p, exp_p, suffix)
+ char **str_p;
+ expressionS *exp_p;
+ elf_suffix_type suffix;
+{
+ bfd_reloc_code_real_type reloc;
+ char tmp_name[64];
+ char *str = *str_p;
+ char *ident;
+ struct s390_lpe *lpe;
+ int nbytes, len;
+
+ if (*str++ != ':')
+ return suffix; /* No modification. */
+
+ /* We look for a suffix of the form "@lit1", "@lit2", "@lit4" or "@lit8". */
+ ident = str;
+ while (isalnum(*str))
+ str++;
+ len = str - ident;
+ if (len != 4 || strncasecmp(ident, "lit", 3) != 0 ||
+ (ident[3]!='1' && ident[3]!='2' && ident[3]!='4' && ident[3]!='8'))
+ return suffix; /* no modification */
+ nbytes = ident[3] - '0';
+
+ reloc = BFD_RELOC_UNUSED;
+ if (suffix == ELF_SUFFIX_GOT) {
+ if (nbytes == 2)
+ reloc = BFD_RELOC_390_GOT16;
+ else if (nbytes == 4)
+ reloc = BFD_RELOC_32_GOT_PCREL;
+ else if (nbytes == 8)
+ reloc = BFD_RELOC_390_GOT64;
+ } else if (suffix == ELF_SUFFIX_PLT) {
+ if (nbytes == 4)
+ reloc = BFD_RELOC_390_PLT32;
+ else if (nbytes == 8)
+ reloc = BFD_RELOC_390_PLT64;
+ }
+
+ if (suffix != ELF_SUFFIX_NONE && reloc == BFD_RELOC_UNUSED) {
+ as_bad (_("Invalid suffix for literal pool entry"));
+ }
+
+ /* Search the pool if the new entry is a duplicate. */
+ if (exp_p->X_op == O_big) {
+ /* Special processing for big numbers. */
+ for (lpe = lpe_list; lpe != NULL; lpe = lpe->next) {
+ if (lpe->ex.X_op == O_big) {
+ if (exp_p->X_add_number <= 0 && lpe->ex.X_add_number <= 0) {
+ if (memcmp(&generic_floating_point_number, &lpe->floatnum,
+ sizeof(FLONUM_TYPE)) == 0)
+ break;
+ } else if (exp_p->X_add_number == lpe->ex.X_add_number) {
+ if (memcmp(generic_bignum, lpe->bignum,
+ sizeof(LITTLENUM_TYPE)*exp_p->X_add_number) == 0)
+ break;
+ }
+ }
+ }
+ } else {
+ /* Processing for 'normal' data types. */
+ for (lpe = lpe_list; lpe != NULL; lpe = lpe->next)
+ if (lpe->nbytes == nbytes && lpe->reloc == reloc &&
+ s390_exp_compare(exp_p, &lpe->ex) != 0)
+ break;
+ }
+ if (lpe == NULL) { /* A new literal. */
+ if (lpe_free_list != NULL) {
+ lpe = lpe_free_list;
+ lpe_free_list = lpe_free_list->next;
+ } else {
+ lpe = (struct s390_lpe *) xmalloc(sizeof(struct s390_lpe));
+ }
+ lpe->ex = *exp_p;
+ if (exp_p->X_op == O_big) {
+ if (exp_p->X_add_number <= 0)
+ lpe->floatnum = generic_floating_point_number;
+ else if (exp_p->X_add_number <= 4)
+ memcpy(lpe->bignum, generic_bignum,
+ exp_p->X_add_number*sizeof(LITTLENUM_TYPE));
+ else
+ as_bad(_("Big number is too big"));
+ }
+ lpe->nbytes = nbytes;
+ lpe->reloc = reloc;
+ /* Literal pool name defined ? */
+ if (lp_sym == NULL) {
+ sprintf(tmp_name, ".L\001%i", lp_count);
+ lp_sym = symbol_make(tmp_name);
+ }
+ /* Make name for literal pool entry. */
+ sprintf(tmp_name, ".L\001%i\002%i", lp_count, lpe_count);
+ lpe_count++;
+ lpe->sym = symbol_make(tmp_name);
+ /* Add to literal pool list. */
+ lpe->next = NULL;
+ if (lpe_list_tail != NULL) {
+ lpe_list_tail->next = lpe;
+ lpe_list_tail = lpe;
+ } else
+ lpe_list = lpe_list_tail = lpe;
+ }
+
+ /* Now change exp_p to the offset into the literal pool.
+ Thats the expression: .L^Ax^By-.L^Ax */
+ exp_p->X_add_symbol = lpe->sym;
+ exp_p->X_op_symbol = lp_sym;
+ exp_p->X_op = O_subtract;
+ exp_p->X_add_number = 0;
+
+ *str_p = str;
+
+ /* We change the suffix type to ELF_SUFFIX_NONE, because
+ the difference of two local labels is just a number. */
+ return ELF_SUFFIX_NONE;
+}
+
+/* Like normal .long/.short/.word, except support @got, etc.
+ clobbers input_line_pointer, checks end-of-line. */
+static void
+s390_elf_cons (nbytes)
+ register int nbytes; /* 1=.byte, 2=.word, 4=.long */
+{
+ expressionS exp;
+ elf_suffix_type suffix;
+
+ if (is_it_end_of_statement ()) {
+ demand_empty_rest_of_line ();
+ return;
+ }
+
+ do {
+ expression (&exp);
+ if (exp.X_op == O_symbol && *input_line_pointer == '@' &&
+ (suffix=s390_elf_suffix(&input_line_pointer, &exp))!=ELF_SUFFIX_NONE) {
+ bfd_reloc_code_real_type reloc;
+ reloc_howto_type *reloc_howto;
+ int size;
+ char *where;
+
+ if (nbytes == 2 && suffix == ELF_SUFFIX_GOT)
+ reloc = BFD_RELOC_390_GOT16;
+ else if (nbytes == 4 && suffix == ELF_SUFFIX_GOT)
+ reloc = BFD_RELOC_32_GOT_PCREL;
+ else if (nbytes == 8 && suffix == ELF_SUFFIX_GOT)
+ reloc = BFD_RELOC_390_GOT64;
+ else if (nbytes == 4 && suffix == ELF_SUFFIX_PLT)
+ reloc = BFD_RELOC_390_PLT32;
+ else if (nbytes == 8 && suffix == ELF_SUFFIX_PLT)
+ reloc = BFD_RELOC_390_PLT64;
+ else
+ reloc = BFD_RELOC_UNUSED;
+
+ if (reloc != BFD_RELOC_UNUSED) {
+ reloc_howto = bfd_reloc_type_lookup (stdoutput, reloc);
+ size = bfd_get_reloc_size (reloc_howto);
+ if (size > nbytes)
+ as_bad (_("%s relocations do not fit in %d bytes"),
+ reloc_howto->name, nbytes);
+ where = frag_more(nbytes);
+ md_number_to_chars (where, 0, size);
+ fix_new_exp (frag_now, where - frag_now->fr_literal,
+ size, &exp, reloc_howto->pc_relative, reloc);
+ } else
+ as_bad (_("relocation not applicable"));
+ } else
+ emit_expr (&exp, (unsigned int) nbytes);
+ } while (*input_line_pointer++ == ',');
+
+ input_line_pointer--; /* Put terminator back into stream. */
+ demand_empty_rest_of_line ();
+}
+
+/* We need to keep a list of fixups. We can't simply generate them as
+ we go, because that would require us to first create the frag, and
+ that would screw up references to ``.''. */
+
+struct s390_fixup
+{
+ expressionS exp;
+ int opindex;
+ bfd_reloc_code_real_type reloc;
+};
+
+#define MAX_INSN_FIXUPS (4)
+
+/* This routine is called for each instruction to be assembled. */
+
+char *
+md_gather_operands (str, insn, opcode)
+ char *str;
+ unsigned char *insn;
+ const struct s390_opcode *opcode;
+{
+ struct s390_fixup fixups[MAX_INSN_FIXUPS];
+ const struct s390_operand *operand;
+ const unsigned char *opindex_ptr;
+ elf_suffix_type suffix;
+ bfd_reloc_code_real_type reloc;
+ int skip_optional;
+ int parentheses;
+ char *f;
+ int fc, i;
+
+ while (isspace(*str)) str++;
+
+ parentheses = 0;
+ skip_optional = 0;
+
+ /* Gather the operands. */
+ fc = 0;
+ for (opindex_ptr = opcode->operands; *opindex_ptr != 0; opindex_ptr++) {
+ expressionS ex;
+ char *hold;
+
+ operand = s390_operands + *opindex_ptr;
+
+ if (skip_optional && (operand->flags & S390_OPERAND_INDEX)) {
+ /* We do an early skip. For D(X,B) constructions the index
+ register is skipped (X is optional). For D(L,B) the base
+ register will be the skipped operand, because L is NOT
+ optional. */
+ skip_optional = 0;
+ continue;
+ }
+
+ /* Gather the operand. */
+ hold = input_line_pointer;
+ input_line_pointer = str;
+
+ if (! register_name (&ex)) /* parse the operand */
+ expression (&ex);
+
+ str = input_line_pointer;
+ input_line_pointer = hold;
+
+ /* Write the operand to the insn. */
+ if (ex.X_op == O_illegal)
+ as_bad (_("illegal operand"));
+ else if (ex.X_op == O_absent)
+ as_bad (_("missing operand"));
+ else if (ex.X_op == O_register || ex.X_op == O_constant) {
+ s390_lit_suffix (&str, &ex, ELF_SUFFIX_NONE);
+ if (ex.X_op != O_register && ex.X_op != O_constant) {
+ /* We need to generate a fixup for the
+ expression returned by s390_lit_suffix. */
+ if (fc >= MAX_INSN_FIXUPS)
+ as_fatal (_("too many fixups"));
+ fixups[fc].exp = ex;
+ fixups[fc].opindex = *opindex_ptr;
+ fixups[fc].reloc = BFD_RELOC_UNUSED;
+ ++fc;
+ } else {
+ if ((operand->flags & S390_OPERAND_INDEX) && ex.X_add_number == 0)
+ as_warn("index register specified but zero");
+ if ((operand->flags & S390_OPERAND_BASE) && ex.X_add_number == 0)
+ as_warn("base register specified but zero");
+ s390_insert_operand (insn, operand, ex.X_add_number, NULL, 0);
+ }
+ } else {
+ suffix = s390_elf_suffix (&str, &ex);
+ suffix = s390_lit_suffix (&str, &ex, suffix);
+ reloc = BFD_RELOC_UNUSED;
+ if (suffix == ELF_SUFFIX_GOT) {
+ if (operand->flags & S390_OPERAND_DISP)
+ reloc = BFD_RELOC_390_GOT12;
+ else if ((operand->flags & S390_OPERAND_SIGNED) &&
+ (operand->bits == 16))
+ reloc = BFD_RELOC_390_GOT16;
+ else if ((operand->flags & S390_OPERAND_PCREL) &&
+ (operand->bits == 32))
+ reloc = BFD_RELOC_390_GOTENT;
+ } else if (suffix == ELF_SUFFIX_PLT) {
+ if ((operand->flags & S390_OPERAND_PCREL) &&
+ (operand->bits == 16))
+ reloc = BFD_RELOC_390_PLT16DBL;
+ else if ((operand->flags & S390_OPERAND_PCREL) &&
+ (operand->bits == 32))
+ reloc = BFD_RELOC_390_PLT32DBL;
+ } else if (suffix == ELF_SUFFIX_GOTENT) {
+ if ((operand->flags & S390_OPERAND_PCREL) &&
+ (operand->bits == 32))
+ reloc = BFD_RELOC_390_GOTENT;
+ }
+
+ if (suffix != ELF_SUFFIX_NONE && reloc == BFD_RELOC_UNUSED)
+ as_bad (_("invalid operand suffix"));
+ /* We need to generate a fixup of type 'reloc' for this
+ expression. */
+ if (fc >= MAX_INSN_FIXUPS)
+ as_fatal (_("too many fixups"));
+ fixups[fc].exp = ex;
+ fixups[fc].opindex = *opindex_ptr;
+ fixups[fc].reloc = reloc;
+ ++fc;
+ }
+
+ /* Check the next character. The call to expression has advanced
+ str past any whitespace. */
+ if (operand->flags & S390_OPERAND_DISP) {
+ /* After a displacement a block in parentheses can start. */
+ if (*str != '(') {
+ /* Check if parethesed block can be skipped. If the next
+ operand is neiter an optional operand nor a base register
+ then we have a syntax error. */
+ operand = s390_operands + *(++opindex_ptr);
+ if (!(operand->flags & (S390_OPERAND_INDEX|S390_OPERAND_BASE)))
+ as_bad (_("syntax error; missing '(' after displacement"));
+
+ /* Ok, skip all operands until S390_OPERAND_BASE. */
+ while (!(operand->flags & S390_OPERAND_BASE))
+ operand = s390_operands + *(++opindex_ptr);
+
+ /* If there is a next operand it must be seperated by a comma. */
+ if (opindex_ptr[1] != '\0') {
+ if (*str++ != ',')
+ as_bad(_("syntax error; expected ,"));
+ }
+ } else { /* We found an opening parentheses. */
+ str++;
+ for (f = str; *f != '\0'; f++)
+ if (*f == ',' || *f == ')')
+ break;
+ /* If there is no comma until the closing parentheses OR
+ there is a comma right after the opening parentheses,
+ we have to skip optional operands. */
+ if (*f == ',' && f == str) { /* comma directly after '(' ? */
+ skip_optional = 1;
+ str++;
+ } else
+ skip_optional = (*f != ',');
+ }
+ } else if (operand->flags & S390_OPERAND_BASE) {
+ /* After the base register the parenthesed block ends. */
+ if (*str++ != ')')
+ as_bad(_("syntax error; missing ')' after base register"));
+ skip_optional = 0;
+ /* If there is a next operand it must be seperated by a comma. */
+ if (opindex_ptr[1] != '\0') {
+ if (*str++ != ',')
+ as_bad(_("syntax error; expected ,"));
+ }
+ } else {
+ /* We can find an 'early' closing parentheses in e.g. D(L) instead
+ of D(L,B). In this case the base register has to be skipped. */
+ if (*str == ')') {
+ operand = s390_operands + *(++opindex_ptr);
+ if (!(operand->flags & S390_OPERAND_BASE))
+ as_bad (_("syntax error; ')' not allowed here"));
+ str++;
+ }
+ /* If there is a next operand it must be seperated by a comma. */
+ if (opindex_ptr[1] != '\0') {
+ if (*str++ != ',')
+ as_bad(_("syntax error; expected ,"));
+ }
+ }
+ }
+
+ while (isspace (*str))
+ ++str;
+
+ if (*str != '\0') {
+ char *linefeed;
+
+ if ((linefeed = strchr(str, '\n')) != NULL)
+ *linefeed = '\0';
+ as_bad (_("junk at end of line: `%s'"), str);
+ if (linefeed != NULL)
+ *linefeed = '\n';
+ }
+
+ /* Write out the instruction. */
+ f = frag_more (opcode->oplen);
+ memcpy(f, insn, opcode->oplen);
+
+ /* Create any fixups. At this point we do not use a
+ bfd_reloc_code_real_type, but instead just use the
+ BFD_RELOC_UNUSED plus the operand index. This lets us easily
+ handle fixups for any operand type, although that is admittedly
+ not a very exciting feature. We pick a BFD reloc type in
+ md_apply_fix3. */
+ for (i = 0; i < fc; i++) {
+ operand = s390_operands + fixups[i].opindex;
+
+ if (fixups[i].reloc != BFD_RELOC_UNUSED) {
+ reloc_howto_type *reloc_howto;
+ fixS *fixP;
+ int size;
+
+ reloc_howto = bfd_reloc_type_lookup (stdoutput, fixups[i].reloc);
+ if (!reloc_howto)
+ abort ();
+
+ size = bfd_get_reloc_size (reloc_howto);
+
+ if (size < 1 || size > 4)
+ abort();
+
+ fixP = fix_new_exp (frag_now,
+ f - frag_now->fr_literal + (operand->shift/8),
+ size, &fixups[i].exp, reloc_howto->pc_relative,
+ fixups[i].reloc);
+ /* Turn off overflow checking in fixup_segment. This is necessary
+ because fixup_segment will signal an overflow for large 4 byte
+ quantities for GOT12 relocations. */
+ if (fixups[i].reloc == BFD_RELOC_390_GOT12 ||
+ fixups[i].reloc == BFD_RELOC_390_GOT16)
+ fixP->fx_no_overflow = 1;
+ } else
+ fix_new_exp (frag_now, f - frag_now->fr_literal, 4, &fixups[i].exp,
+ (operand->flags & S390_OPERAND_PCREL) != 0,
+ ((bfd_reloc_code_real_type)
+ (fixups[i].opindex + (int) BFD_RELOC_UNUSED)));
+ }
+ return str;
+}
+
+/* This routine is called for each instruction to be assembled. */
+
+void
+md_assemble (str)
+ char *str;
+{
+ const struct s390_opcode *opcode;
+ unsigned char insn[6];
+ char *s;
+
+ /* Get the opcode. */
+ for (s = str; *s != '\0' && ! isspace (*s); s++)
+ ;
+ if (*s != '\0')
+ *s++ = '\0';
+
+ /* Look up the opcode in the hash table. */
+ opcode = (struct s390_opcode *) hash_find (s390_opcode_hash, str);
+ if (opcode == (const struct s390_opcode *) NULL) {
+ as_bad (_("Unrecognized opcode: `%s'"), str);
+ return;
+ } else if (!(opcode->architecture & current_arch_mask)) {
+ as_bad("Opcode %s not available in this architecture", str);
+ return;
+ }
+
+ memcpy(insn, opcode->opcode, sizeof(insn));
+ md_gather_operands(s, insn, opcode);
+}
+
+#ifndef WORKING_DOT_WORD
+/* Handle long and short jumps. We don't support these */
+void
+md_create_short_jump (ptr, from_addr, to_addr, frag, to_symbol)
+ char *ptr;
+ addressT from_addr, to_addr;
+ fragS *frag;
+ symbolS *to_symbol;
+{
+ abort ();
+}
+
+void
+md_create_long_jump (ptr, from_addr, to_addr, frag, to_symbol)
+ char *ptr;
+ addressT from_addr, to_addr;
+ fragS *frag;
+ symbolS *to_symbol;
+{
+ abort ();
+}
+#endif
+
+void
+s390_bss (ignore)
+ int ignore ATTRIBUTE_UNUSED;
+{
+ /* We don't support putting frags in the BSS segment, we fake it
+ by marking in_bss, then looking at s_skip for clues. */
+
+ subseg_set (bss_section, 0);
+ demand_empty_rest_of_line ();
+}
+
+/* Pseudo-op handling. */
+
+void
+s390_insn(ignore)
+ int ignore ATTRIBUTE_UNUSED;
+{
+ expressionS exp;
+ const struct s390_opcode *opformat;
+ unsigned char insn[6];
+ char *s;
+
+ /* Get the opcode format. */
+ s = input_line_pointer;
+ while (*s != '\0' && *s != ',' && ! isspace (*s))
+ s++;
+ if (*s != ',')
+ as_bad (_("Invalid .insn format\n"));
+ *s++ = '\0';
+
+ /* Look up the opcode in the hash table. */
+ opformat = (struct s390_opcode *)
+ hash_find (s390_opformat_hash, input_line_pointer);
+ if (opformat == (const struct s390_opcode *) NULL) {
+ as_bad (_("Unrecognized opcode format: `%s'"), input_line_pointer);
+ return;
+ }
+ input_line_pointer = s;
+ expression (&exp);
+ if (exp.X_op == O_constant) {
+ if (opformat->oplen == 4 ||
+ (opformat->oplen == 2 && exp.X_op < 0x10000))
+ md_number_to_chars (insn, exp.X_add_number, opformat->oplen);
+ else
+ as_bad(_("Invalid .insn format\n"));
+ } else if (exp.X_op == O_big) {
+ if (exp.X_add_number > 0 &&
+ opformat->oplen == 6 &&
+ generic_bignum[3] == 0) {
+ md_number_to_chars (insn, generic_bignum[2], 2);
+ md_number_to_chars (&insn[2], generic_bignum[1], 2);
+ md_number_to_chars (&insn[4], generic_bignum[0], 2);
+ } else
+ as_bad(_("Invalid .insn format\n"));
+ } else
+ as_bad (_("second operand of .insn not a constant\n"));
+ if (*input_line_pointer++ != ',')
+ as_bad (_("missing comma after insn constant\n"));
+
+ if ((s = strchr(input_line_pointer, '\n')) != NULL)
+ *s = '\0';
+ input_line_pointer = md_gather_operands (input_line_pointer, insn, opformat);
+ if (s != NULL)
+ *s = '\n';
+ demand_empty_rest_of_line ();
+}
+
+/* The .byte pseudo-op. This is similar to the normal .byte
+ pseudo-op, but it can also take a single ASCII string. */
+
+static void
+s390_byte (ignore)
+ int ignore ATTRIBUTE_UNUSED;
+{
+ if (*input_line_pointer != '\"')
+ {
+ cons (1);
+ return;
+ }
+
+ /* Gather characters. A real double quote is doubled. Unusual
+ characters are not permitted. */
+ ++input_line_pointer;
+ while (1)
+ {
+ char c;
+
+ c = *input_line_pointer++;
+
+ if (c == '\"')
+ {
+ if (*input_line_pointer != '\"')
+ break;
+ ++input_line_pointer;
+ }
+
+ FRAG_APPEND_1_CHAR (c);
+ }
+
+ demand_empty_rest_of_line ();
+}
+
+/* The .ltorg pseudo-op.This emits all literals defined since the last
+ .ltorg or the invocation of gas. Literals are defined with the
+ @lit suffix. */
+
+static void
+s390_literals (ignore)
+ int ignore ATTRIBUTE_UNUSED;
+{
+ struct s390_lpe *lpe;
+
+ if (lp_sym == NULL || lpe_count == 0)
+ return; /* nothing to be done */
+
+ /* Emit symbol for start of literal pool. */
+ S_SET_SEGMENT (lp_sym, now_seg);
+ S_SET_VALUE (lp_sym, (valueT) frag_now_fix ());
+ lp_sym->sy_frag = frag_now;
+
+ while (lpe_list) {
+ lpe = lpe_list;
+ lpe_list = lpe_list->next;
+ S_SET_SEGMENT (lpe->sym, now_seg);
+ S_SET_VALUE (lpe->sym, (valueT) frag_now_fix ());
+ lpe->sym->sy_frag = frag_now;
+
+ /* Emit literal pool entry. */
+ if (lpe->reloc != BFD_RELOC_UNUSED) {
+ reloc_howto_type *reloc_howto =
+ bfd_reloc_type_lookup (stdoutput, lpe->reloc);
+ int size = bfd_get_reloc_size (reloc_howto);
+ char *where;
+
+ if (size > lpe->nbytes)
+ as_bad (_("%s relocations do not fit in %d bytes"),
+ reloc_howto->name, lpe->nbytes);
+ where = frag_more(lpe->nbytes);
+ md_number_to_chars (where, 0, size);
+ fix_new_exp (frag_now, where - frag_now->fr_literal,
+ size, &lpe->ex, reloc_howto->pc_relative, lpe->reloc);
+ } else {
+ if (lpe->ex.X_op == O_big) {
+ if (lpe->ex.X_add_number <= 0)
+ generic_floating_point_number = lpe->floatnum;
+ else
+ memcpy(generic_bignum, lpe->bignum,
+ lpe->ex.X_add_number*sizeof(LITTLENUM_TYPE));
+ }
+ emit_expr (&lpe->ex, lpe->nbytes);
+ }
+
+ lpe->next = lpe_free_list;
+ lpe_free_list = lpe;
+ }
+ lpe_list_tail = NULL;
+ lp_sym = NULL;
+ lp_count++;
+ lpe_count = 0;
+}
+
+/* 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. */
+
+char *
+md_atof (type, litp, sizep)
+ int type;
+ char *litp;
+ int *sizep;
+{
+ int prec;
+ LITTLENUM_TYPE words[4];
+ char *t;
+ int i;
+
+ switch (type)
+ {
+ case 'f':
+ prec = 2;
+ break;
+
+ case 'd':
+ prec = 4;
+ break;
+
+ default:
+ *sizep = 0;
+ return "bad call to md_atof";
+ }
+
+ t = atof_ieee (input_line_pointer, type, words);
+ if (t)
+ input_line_pointer = t;
+
+ *sizep = prec * 2;
+
+ for (i = 0; i < prec; i++)
+ {
+ md_number_to_chars (litp, (valueT) words[i], 2);
+ litp += 2;
+ }
+
+ return NULL;
+}
+
+/* Align a section (I don't know why this is machine dependent). */
+
+valueT
+md_section_align (seg, addr)
+ asection *seg;
+ valueT addr;
+{
+ int align = bfd_get_section_alignment (stdoutput, seg);
+
+ return ((addr + (1 << align) - 1) & (-1 << align));
+}
+
+/* We don't have any form of relaxing. */
+
+int
+md_estimate_size_before_relax (fragp, seg)
+ fragS *fragp ATTRIBUTE_UNUSED;
+ asection *seg ATTRIBUTE_UNUSED;
+{
+ abort ();
+ return 0;
+}
+
+/* Convert a machine dependent frag. We never generate these. */
+
+void
+md_convert_frag (abfd, sec, fragp)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ asection *sec ATTRIBUTE_UNUSED;
+ fragS *fragp ATTRIBUTE_UNUSED;
+{
+ abort ();
+}
+
+symbolS *
+md_undefined_symbol (name)
+ char *name;
+{
+ if (*name == '_' && *(name+1) == 'G'
+ && strcmp(name, "_GLOBAL_OFFSET_TABLE_") == 0)
+ {
+ if(!GOT_symbol)
+ {
+ if(symbol_find(name))
+ as_bad(_("GOT already in symbol table"));
+ GOT_symbol = symbol_new (name, undefined_section,
+ (valueT) 0, &zero_address_frag);
+ }
+ return GOT_symbol;
+ }
+ return 0;
+}
+
+/* Functions concerning relocs. */
+
+/* The location from which a PC relative jump should be calculated,
+ given a PC relative reloc. */
+
+long
+md_pcrel_from_section (fixp, sec)
+ fixS *fixp;
+ segT sec ATTRIBUTE_UNUSED;
+{
+ return fixp->fx_frag->fr_address + fixp->fx_where;
+}
+
+/* Here we decide which fixups can be adjusted to make them relative to
+ the beginning of the section instead of the symbol. Basically we need
+ to make sure that the dynamic relocations are done correctly, so in
+ some cases we force the original symbol to be used. */
+int
+tc_s390_fix_adjustable(fixP)
+ fixS * fixP;
+{
+ /* Prevent all adjustments to global symbols. */
+ if (S_IS_EXTERN (fixP->fx_addsy))
+ return 0;
+ if (S_IS_WEAK (fixP->fx_addsy))
+ return 0;
+ /* adjust_reloc_syms doesn't know about the GOT. */
+ if (fixP->fx_r_type == BFD_RELOC_32_GOTOFF
+ || fixP->fx_r_type == BFD_RELOC_390_PLT16DBL
+ || fixP->fx_r_type == BFD_RELOC_390_PLT32
+ || fixP->fx_r_type == BFD_RELOC_390_PLT32DBL
+ || fixP->fx_r_type == BFD_RELOC_390_PLT64
+ || fixP->fx_r_type == BFD_RELOC_390_GOT12
+ || fixP->fx_r_type == BFD_RELOC_390_GOT16
+ || fixP->fx_r_type == BFD_RELOC_32_GOT_PCREL
+ || fixP->fx_r_type == BFD_RELOC_390_GOT64
+ || fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
+ || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
+ return 0;
+ return 1;
+}
+
+/* Apply a fixup to the object code. This is called for all the
+ fixups we generated by the call to fix_new_exp, above. In the call
+ above we used a reloc code which was the largest legal reloc code
+ plus the operand index. Here we undo that to recover the operand
+ index. At this point all symbol values should be fully resolved,
+ and we attempt to completely resolve the reloc. If we can not do
+ that, we determine the correct reloc code and put it back in the
+ fixup. */
+
+int
+md_apply_fix3 (fixp, valuep, seg)
+ fixS *fixp;
+ valueT *valuep;
+ segT seg ATTRIBUTE_UNUSED;
+{
+ char *where;
+ valueT value;
+
+ value = *valuep;
+ where = fixp->fx_frag->fr_literal + fixp->fx_where;
+
+ if (fixp->fx_subsy != NULL) {
+ if (!S_IS_DEFINED (fixp->fx_subsy))
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ _("unresolved fx_subsy symbol that must be resolved"));
+ value -= S_GET_VALUE(fixp->fx_subsy);
+ }
+
+ if (fixp->fx_addsy != NULL) {
+ /* `*valuep' may contain the value of the symbol on which the reloc
+ will be based; we have to remove it. */
+ if (fixp->fx_addsy->sy_used_in_reloc
+ && S_GET_SEGMENT (fixp->fx_addsy) != absolute_section
+ && S_GET_SEGMENT (fixp->fx_addsy) != undefined_section
+ && ! bfd_is_com_section (S_GET_SEGMENT (fixp->fx_addsy)))
+ value -= S_GET_VALUE (fixp->fx_addsy);
+
+ if (fixp->fx_pcrel)
+ value += fixp->fx_frag->fr_address + fixp->fx_where;
+ } else {
+ fixp->fx_done = 1;
+ }
+
+ if ((int) fixp->fx_r_type >= (int) BFD_RELOC_UNUSED) {
+ const struct s390_operand *operand;
+ int opindex;
+
+ opindex = (int) fixp->fx_r_type - (int) BFD_RELOC_UNUSED;
+ operand = &s390_operands[opindex];
+
+ if (fixp->fx_done) {
+ /* Insert the fully resolved operand value. */
+ s390_insert_operand (where, operand, (offsetT) value,
+ fixp->fx_file, fixp->fx_line);
+ return 1;
+ }
+
+ /* Determine a BFD reloc value based on the operand information.
+ We are only prepared to turn a few of the operands into
+ relocs. */
+ fixp->fx_offset = value;
+ if (operand->bits == 12 && operand->shift == 20) {
+ fixp->fx_size = 2;
+ fixp->fx_where += 2;
+ fixp->fx_r_type = BFD_RELOC_390_12;
+ } else if (operand->bits == 12 && operand->shift == 36) {
+ fixp->fx_size = 2;
+ fixp->fx_where += 4;
+ fixp->fx_r_type = BFD_RELOC_390_12;
+ } else if (operand->bits == 8 && operand->shift == 8) {
+ fixp->fx_size = 1;
+ fixp->fx_where += 1;
+ fixp->fx_r_type = BFD_RELOC_8;
+ } else if (operand->bits == 16 && operand->shift == 16) {
+ fixp->fx_size = 2;
+ fixp->fx_where += 2;
+ if (operand->flags & S390_OPERAND_PCREL) {
+ fixp->fx_r_type = BFD_RELOC_390_PC16DBL;
+ fixp->fx_offset += 2;
+ } else
+ fixp->fx_r_type = BFD_RELOC_16;
+ } else if (operand->bits == 32 && operand->shift == 16 &&
+ (operand->flags & S390_OPERAND_PCREL)) {
+ fixp->fx_size = 4;
+ fixp->fx_where += 2;
+ fixp->fx_offset += 2;
+ fixp->fx_r_type = BFD_RELOC_390_PC32DBL;
+ } else {
+ char *sfile;
+ unsigned int sline;
+
+ /* Use expr_symbol_where to see if this is an expression
+ symbol. */
+ if (expr_symbol_where (fixp->fx_addsy, &sfile, &sline))
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ _("unresolved expression that must be resolved"));
+ else
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ _("unsupported relocation type"));
+ fixp->fx_done = 1;
+ return 1;
+ }
+ } else {
+ switch (fixp->fx_r_type) {
+ case BFD_RELOC_8:
+ if (fixp->fx_pcrel)
+ abort ();
+ if (fixp->fx_done)
+ md_number_to_chars (where, value, 1);
+ break;
+ case BFD_RELOC_390_12:
+ case BFD_RELOC_390_GOT12:
+ if (fixp->fx_done) {
+ unsigned short mop;
+ mop = bfd_getb16 ((unsigned char *) where);
+ mop |= (unsigned short) (value & 0xfff);
+ bfd_putb16 ((bfd_vma) mop, (unsigned char *) where);
+ }
+ break;
+
+ case BFD_RELOC_16:
+ case BFD_RELOC_GPREL16:
+ case BFD_RELOC_16_GOT_PCREL:
+ case BFD_RELOC_16_GOTOFF:
+ if (fixp->fx_pcrel)
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ "cannot emit PC relative %s relocation%s%s",
+ bfd_get_reloc_code_name (fixp->fx_r_type),
+ fixp->fx_addsy != NULL ? " against " : "",
+ (fixp->fx_addsy != NULL
+ ? S_GET_NAME (fixp->fx_addsy)
+ : ""));
+ if (fixp->fx_done)
+ md_number_to_chars (where, value, 2);
+ break;
+ case BFD_RELOC_390_GOT16:
+ if (fixp->fx_done)
+ md_number_to_chars (where, value, 2);
+ break;
+ case BFD_RELOC_390_PC16DBL:
+ case BFD_RELOC_390_PLT16DBL:
+ value += 2;
+ if (fixp->fx_done)
+ md_number_to_chars (where, (offsetT) value >> 1, 2);
+ break;
+
+ case BFD_RELOC_32:
+ if (fixp->fx_pcrel)
+ fixp->fx_r_type = BFD_RELOC_32_PCREL;
+ else
+ fixp->fx_r_type = BFD_RELOC_32;
+ if (fixp->fx_done)
+ md_number_to_chars (where, value, 4);
+ break;
+ case BFD_RELOC_32_PCREL:
+ case BFD_RELOC_32_BASEREL:
+ fixp->fx_r_type = BFD_RELOC_32_PCREL;
+ if (fixp->fx_done)
+ md_number_to_chars (where, value, 4);
+ break;
+ case BFD_RELOC_32_GOT_PCREL:
+ case BFD_RELOC_390_PLT32:
+ if (fixp->fx_done)
+ md_number_to_chars (where, value, 4);
+ break;
+ case BFD_RELOC_390_PC32DBL:
+ case BFD_RELOC_390_PLT32DBL:
+ case BFD_RELOC_390_GOTPCDBL:
+ case BFD_RELOC_390_GOTENT:
+ value += 2;
+ if (fixp->fx_done)
+ md_number_to_chars (where, (offsetT) value >> 1, 4);
+ break;
+
+ case BFD_RELOC_32_GOTOFF:
+ if (fixp->fx_done)
+ md_number_to_chars (where, value, sizeof(int));
+ break;
+
+ case BFD_RELOC_390_GOT64:
+ case BFD_RELOC_390_PLT64:
+ if (fixp->fx_done)
+ md_number_to_chars (where, value, 8);
+ break;
+
+ case BFD_RELOC_64:
+ if (fixp->fx_pcrel)
+ fixp->fx_r_type = BFD_RELOC_64_PCREL;
+ else
+ fixp->fx_r_type = BFD_RELOC_64;
+ if (fixp->fx_done)
+ md_number_to_chars (where, value, 8);
+ break;
+
+ case BFD_RELOC_64_PCREL:
+ fixp->fx_r_type = BFD_RELOC_64_PCREL;
+ if (fixp->fx_done)
+ md_number_to_chars (where, value, 8);
+ break;
+
+ case BFD_RELOC_VTABLE_INHERIT:
+ case BFD_RELOC_VTABLE_ENTRY:
+ fixp->fx_done = 0;
+ return 1;
+
+ default: {
+ const char *reloc_name = bfd_get_reloc_code_name(fixp->fx_r_type);
+ if (reloc_name != NULL)
+ fprintf(stderr, "Gas failure, reloc type %s\n", reloc_name);
+ else
+ fprintf(stderr, "Gas failure, reloc type #%i\n", fixp->fx_r_type);
+ fflush(stderr);
+ abort ();
+ }
+ }
+
+ fixp->fx_offset = value;
+ }
+
+ return 1;
+}
+
+/* Generate a reloc for a fixup. */
+
+arelent *
+tc_gen_reloc (seg, fixp)
+ asection *seg ATTRIBUTE_UNUSED;
+ fixS *fixp;
+{
+ bfd_reloc_code_real_type code;
+ arelent *reloc;
+
+ code = fixp->fx_r_type;
+ if (GOT_symbol && fixp->fx_addsy == GOT_symbol) {
+ if ((s390_arch_size == 32 && code == BFD_RELOC_32_PCREL) ||
+ (s390_arch_size == 64 && code == BFD_RELOC_64_PCREL))
+ code = BFD_RELOC_390_GOTPC;
+ if (code == BFD_RELOC_390_PC32DBL)
+ code = BFD_RELOC_390_GOTPCDBL;
+ }
+
+ reloc = (arelent *) xmalloc (sizeof (arelent));
+ reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
+ *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
+ reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
+ reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
+ if (reloc->howto == NULL)
+ {
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ _("cannot represent relocation type %s"),
+ bfd_get_reloc_code_name (code));
+ /* Set howto to a garbage value so that we can keep going. */
+ reloc->howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_32);
+ assert (reloc->howto != NULL);
+ }
+ reloc->addend = fixp->fx_offset;
+
+ return reloc;
+}
+
diff --git a/gas/config/tc-s390.h b/gas/config/tc-s390.h
new file mode 100644
index 0000000..954fa18
--- /dev/null
+++ b/gas/config/tc-s390.h
@@ -0,0 +1,113 @@
+/* tc-s390.h -- Header file for tc-s390.c.
+ Copyright (C) 2000 Free Software Foundation, Inc.
+ Written by Martin Schwidefsky (schwidefsky@de.ibm.com).
+
+ 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 2, 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, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA. */
+
+#define TC_S390
+
+#ifdef ANSI_PROTOTYPES
+struct fix;
+#endif
+
+#ifndef BFD_ASSEMBLER
+ #error S390 support requires BFD_ASSEMBLER
+#endif
+
+/* This expression evaluates to false if the relocation is for a local object
+ for which we still want to do the relocation at runtime. True if we
+ are willing to perform this relocation while building the .o file.
+ This is only used for pcrel relocations, so GOTOFF does not need to be
+ checked here. I am not sure if some of the others are ever used with
+ pcrel, but it is easier to be safe than sorry. */
+
+#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \
+ ((FIX)->fx_addsy == NULL \
+ || (! S_IS_EXTERNAL ((FIX)->fx_addsy) \
+ && ! S_IS_WEAK ((FIX)->fx_addsy) \
+ && S_IS_DEFINED ((FIX)->fx_addsy) \
+ && ! S_IS_COMMON ((FIX)->fx_addsy)))
+
+#define tc_fix_adjustable(X) tc_s390_fix_adjustable(X)
+extern int tc_s390_fix_adjustable PARAMS ((struct fix *));
+
+/* The target BFD architecture. */
+#define TARGET_ARCH bfd_arch_s390
+extern enum bfd_architecture s390_arch PARAMS ((void));
+
+/* The target BFD format. */
+#define TARGET_FORMAT s390_target_format()
+
+/* Set the endianness we are using. */
+#define TARGET_BYTES_BIG_ENDIAN 1
+
+/* Whether or not the target is big endian */
+extern int target_big_endian;
+
+/* Permit temporary numeric labels. */
+#define LOCAL_LABELS_FB 1
+
+/* $ is used to refer to the current location. */
+/* #define DOLLAR_DOT */
+
+/* We need to be able to make relocations involving the difference of
+ two symbols. This includes the difference of two symbols when
+ one of them is undefined (this comes up in PIC code generation).
+ */
+#define UNDEFINED_DIFFERENCE_OK
+
+/* foo-. gets turned into PC relative relocs */
+#define DIFF_EXPR_OK
+
+/* We don't need to handle .word strangely. */
+#define WORKING_DOT_WORD
+
+/* We set the fx_done field appropriately in md_apply_fix. */
+#define TC_HANDLES_FX_DONE
+
+#define md_number_to_chars number_to_chars_bigendian
+
+#define md_do_align(n, fill, len, max, around) \
+if ((n) && !need_pass_2 && (fill == 0) && \
+ (bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0) { \
+ char *p; \
+ p = frag_var (rs_align_code, 15, 1, (relax_substateT) max, \
+ (symbolS *) 0, (offsetT) (n), (char *) 0); \
+ *p = 0x07; \
+ goto around; \
+}
+
+extern void s390_align_code PARAMS ((fragS *, int));
+
+#define HANDLE_ALIGN(fragP) \
+if (fragP->fr_type == rs_align_code) \
+ s390_align_code (fragP, (fragP->fr_next->fr_address \
+ - fragP->fr_address \
+ - fragP->fr_fix));
+
+/* call md_apply_fix3 with segment instead of md_apply_fix */
+#define MD_APPLY_FIX3
+
+/* call md_pcrel_from_section, not md_pcrel_from */
+#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC)
+extern long md_pcrel_from_section PARAMS ((struct fix *, segT));
+
+#define md_operand(x)
+
+extern void s390_md_end PARAMS ((void));
+#define md_end() s390_md_end ()
diff --git a/gas/configure b/gas/configure
index a0f4dfe..ad4fdf8 100755
--- a/gas/configure
+++ b/gas/configure
@@ -2279,6 +2279,8 @@ for this_target in $target $canon_targets ; do
powerpcle*) cpu_type=ppc endian=little ;;
powerpc*) cpu_type=ppc endian=big ;;
rs6000*) cpu_type=ppc ;;
+ s390x*) cpu_type=s390 arch=s390x ;;
+ s390*) cpu_type=s390 arch=s390 ;;
sparclite*) cpu_type=sparc arch=sparclite ;;
sparclet*) cpu_type=sparc arch=sparclet ;;
sparc64*) cpu_type=sparc arch=v9-64 ;;
@@ -2524,6 +2526,9 @@ EOF
ppc-*-netware*) fmt=elf em=ppcnw ;;
ppc-*-vxworks*) fmt=elf ;;
+ s390x-*-linux-gnu*) fmt=elf em=linux ;;
+ s390-*-linux-gnu*) fmt=elf em=linux ;;
+
sh-*-linux*) fmt=elf em=linux ;;
sh-*-elf*) fmt=elf ;;
sh-*-coff*) fmt=coff ;;
@@ -2672,6 +2677,15 @@ EOF
esac
;;
+ s390)
+ if test $this_target = $target ; then
+ cat >> confdefs.h <<EOF
+#define DEFAULT_ARCH "${arch}"
+EOF
+
+ fi
+ ;;
+
mips)
echo ${extra_objects} | grep -s "itbl-parse.o"
if test $? -ne 0 ; then
@@ -3080,7 +3094,7 @@ EOF
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3084: checking for $ac_word" >&5
+echo "configure:3098: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3110,7 +3124,7 @@ if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3114: checking for $ac_word" >&5
+echo "configure:3128: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3161,7 +3175,7 @@ fi
# Extract the first word of "cl", so it can be a program name with args.
set dummy cl; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3165: checking for $ac_word" >&5
+echo "configure:3179: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3193,7 +3207,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:3197: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:3211: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -3204,12 +3218,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 3208 "configure"
+#line 3222 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:3213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -3235,12 +3249,12 @@ if test $ac_cv_prog_cc_works = no; then
{ echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:3239: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:3253: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:3244: checking whether we are using GNU C" >&5
+echo "configure:3258: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3249,7 +3263,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:3253: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:3267: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
@@ -3268,7 +3282,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
ac_save_CFLAGS="$CFLAGS"
CFLAGS=
echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:3272: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:3286: checking whether ${CC-cc} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3305,7 +3319,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3309: checking for $ac_word" >&5
+echo "configure:3323: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3336,7 +3350,7 @@ done
test -n "$YACC" || YACC="yacc"
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:3340: checking how to run the C preprocessor" >&5
+echo "configure:3354: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -3351,13 +3365,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
-#line 3355 "configure"
+#line 3369 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3361: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3375: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -3368,13 +3382,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 3372 "configure"
+#line 3386 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3378: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3392: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -3385,13 +3399,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 3389 "configure"
+#line 3403 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3395: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3409: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -3421,7 +3435,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3425: checking for $ac_word" >&5
+echo "configure:3439: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3454,7 +3468,7 @@ test -n "$LEX" || LEX=""$missing_dir/missing flex""
# Extract the first word of "flex", so it can be a program name with args.
set dummy flex; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3458: checking for $ac_word" >&5
+echo "configure:3472: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3488,7 +3502,7 @@ then
*) ac_lib=l ;;
esac
echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
-echo "configure:3492: checking for yywrap in -l$ac_lib" >&5
+echo "configure:3506: checking for yywrap in -l$ac_lib" >&5
ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3496,7 +3510,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$ac_lib $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3500 "configure"
+#line 3514 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3507,7 +3521,7 @@ int main() {
yywrap()
; return 0; }
EOF
-if { (eval echo configure:3511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3525: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3530,7 +3544,7 @@ fi
fi
echo $ac_n "checking lex output file root""... $ac_c" 1>&6
-echo "configure:3534: checking lex output file root" >&5
+echo "configure:3548: checking lex output file root" >&5
if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3551,7 +3565,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6
LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
-echo "configure:3555: checking whether yytext is a pointer" >&5
+echo "configure:3569: checking whether yytext is a pointer" >&5
if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3563,14 +3577,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
ac_save_LIBS="$LIBS"
LIBS="$LIBS $LEXLIB"
cat > conftest.$ac_ext <<EOF
-#line 3567 "configure"
+#line 3581 "configure"
#include "confdefs.h"
`cat $LEX_OUTPUT_ROOT.c`
int main() {
; return 0; }
EOF
-if { (eval echo configure:3574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_prog_lex_yytext_pointer=yes
else
@@ -3596,7 +3610,7 @@ ALL_LINGUAS=
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3600: checking for $ac_word" >&5
+echo "configure:3614: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -3624,12 +3638,12 @@ else
fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3628: checking for ANSI C header files" >&5
+echo "configure:3642: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3633 "configure"
+#line 3647 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -3637,7 +3651,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3641: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3654,7 +3668,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 3658 "configure"
+#line 3672 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -3672,7 +3686,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 3676 "configure"
+#line 3690 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -3693,7 +3707,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 3697 "configure"
+#line 3711 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3704,7 +3718,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:3708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -3728,12 +3742,12 @@ EOF
fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:3732: checking for working const" >&5
+echo "configure:3746: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3737 "configure"
+#line 3751 "configure"
#include "confdefs.h"
int main() {
@@ -3782,7 +3796,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:3786: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -3803,21 +3817,21 @@ EOF
fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:3807: checking for inline" >&5
+echo "configure:3821: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 3814 "configure"
+#line 3828 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:3821: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3835: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -3843,12 +3857,12 @@ EOF
esac
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3847: checking for off_t" >&5
+echo "configure:3861: checking for off_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3852 "configure"
+#line 3866 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3876,12 +3890,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3880: checking for size_t" >&5
+echo "configure:3894: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3885 "configure"
+#line 3899 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3911,19 +3925,19 @@ fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:3915: checking for working alloca.h" >&5
+echo "configure:3929: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3920 "configure"
+#line 3934 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:3927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -3944,12 +3958,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:3948: checking for alloca" >&5
+echo "configure:3962: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3953 "configure"
+#line 3967 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -3977,7 +3991,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:3981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3995: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -4009,12 +4023,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:4013: checking whether alloca needs Cray hooks" >&5
+echo "configure:4027: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4018 "configure"
+#line 4032 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -4039,12 +4053,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4043: checking for $ac_func" >&5
+echo "configure:4057: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4048 "configure"
+#line 4062 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4067,7 +4081,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4094,7 +4108,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:4098: checking stack direction for C alloca" >&5
+echo "configure:4112: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4102,7 +4116,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 4106 "configure"
+#line 4120 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -4121,7 +4135,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:4125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4139: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -4146,17 +4160,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4150: checking for $ac_hdr" >&5
+echo "configure:4164: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4155 "configure"
+#line 4169 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4160: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4174: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4185,12 +4199,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4189: checking for $ac_func" >&5
+echo "configure:4203: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4194 "configure"
+#line 4208 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4213,7 +4227,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4238,7 +4252,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:4242: checking for working mmap" >&5
+echo "configure:4256: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4246,7 +4260,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 4250 "configure"
+#line 4264 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -4386,7 +4400,7 @@ main()
}
EOF
-if { (eval echo configure:4390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -4414,17 +4428,17 @@ unistd.h values.h sys/param.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4418: checking for $ac_hdr" >&5
+echo "configure:4432: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4423 "configure"
+#line 4437 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4428: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4442: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4454,12 +4468,12 @@ done
__argz_count __argz_stringify __argz_next
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4458: checking for $ac_func" >&5
+echo "configure:4472: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4463 "configure"
+#line 4477 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4482,7 +4496,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4500: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4511,12 +4525,12 @@ done
for ac_func in stpcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4515: checking for $ac_func" >&5
+echo "configure:4529: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4520 "configure"
+#line 4534 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4539,7 +4553,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4573,19 +4587,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:4577: checking for LC_MESSAGES" >&5
+echo "configure:4591: checking for LC_MESSAGES" >&5
if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4582 "configure"
+#line 4596 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
-if { (eval echo configure:4589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
am_cv_val_LC_MESSAGES=yes
else
@@ -4606,7 +4620,7 @@ EOF
fi
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:4610: checking whether NLS is requested" >&5
+echo "configure:4624: checking whether NLS is requested" >&5
# Check whether --enable-nls or --disable-nls was given.
if test "${enable_nls+set}" = set; then
enableval="$enable_nls"
@@ -4626,7 +4640,7 @@ fi
EOF
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:4630: checking whether included gettext is requested" >&5
+echo "configure:4644: checking whether included gettext is requested" >&5
# Check whether --with-included-gettext or --without-included-gettext was given.
if test "${with_included_gettext+set}" = set; then
withval="$with_included_gettext"
@@ -4645,17 +4659,17 @@ fi
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:4649: checking for libintl.h" >&5
+echo "configure:4663: checking for libintl.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4654 "configure"
+#line 4668 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4659: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4673: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -4672,19 +4686,19 @@ fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
-echo "configure:4676: checking for gettext in libc" >&5
+echo "configure:4690: checking for gettext in libc" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4681 "configure"
+#line 4695 "configure"
#include "confdefs.h"
#include <libintl.h>
int main() {
return (int) gettext ("")
; return 0; }
EOF
-if { (eval echo configure:4688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libc=yes
else
@@ -4700,7 +4714,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
if test "$gt_cv_func_gettext_libc" != "yes"; then
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:4704: checking for bindtextdomain in -lintl" >&5
+echo "configure:4718: checking for bindtextdomain in -lintl" >&5
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -4708,7 +4722,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4712 "configure"
+#line 4726 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -4719,7 +4733,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
-if { (eval echo configure:4723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -4735,19 +4749,19 @@ fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
-echo "configure:4739: checking for gettext in libintl" >&5
+echo "configure:4753: checking for gettext in libintl" >&5
if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4744 "configure"
+#line 4758 "configure"
#include "confdefs.h"
int main() {
return (int) gettext ("")
; return 0; }
EOF
-if { (eval echo configure:4751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gt_cv_func_gettext_libintl=yes
else
@@ -4775,7 +4789,7 @@ EOF
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4779: checking for $ac_word" >&5
+echo "configure:4793: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4809,12 +4823,12 @@ fi
for ac_func in dcgettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4813: checking for $ac_func" >&5
+echo "configure:4827: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4818 "configure"
+#line 4832 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4837,7 +4851,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -4864,7 +4878,7 @@ done
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4868: checking for $ac_word" >&5
+echo "configure:4882: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4900,7 +4914,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4904: checking for $ac_word" >&5
+echo "configure:4918: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4932,7 +4946,7 @@ else
fi
cat > conftest.$ac_ext <<EOF
-#line 4936 "configure"
+#line 4950 "configure"
#include "confdefs.h"
int main() {
@@ -4940,7 +4954,7 @@ extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr
; return 0; }
EOF
-if { (eval echo configure:4944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4958: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
CATOBJEXT=.gmo
DATADIRNAME=share
@@ -4972,7 +4986,7 @@ fi
# Extract the first word of "msgfmt", so it can be a program name with args.
set dummy msgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4976: checking for $ac_word" >&5
+echo "configure:4990: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5006,7 +5020,7 @@ fi
# Extract the first word of "gmsgfmt", so it can be a program name with args.
set dummy gmsgfmt; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:5010: checking for $ac_word" >&5
+echo "configure:5024: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5042,7 +5056,7 @@ fi
# Extract the first word of "xgettext", so it can be a program name with args.
set dummy xgettext; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:5046: checking for $ac_word" >&5
+echo "configure:5060: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5132,7 +5146,7 @@ fi
LINGUAS=
else
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:5136: checking for catalogs to be installed" >&5
+echo "configure:5150: checking for catalogs to be installed" >&5
NEW_LINGUAS=
for lang in ${LINGUAS=$ALL_LINGUAS}; do
case "$ALL_LINGUAS" in
@@ -5160,17 +5174,17 @@ echo "configure:5136: checking for catalogs to be installed" >&5
if test "$CATOBJEXT" = ".cat"; then
ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
-echo "configure:5164: checking for linux/version.h" >&5
+echo "configure:5178: checking for linux/version.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5169 "configure"
+#line 5183 "configure"
#include "confdefs.h"
#include <linux/version.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5174: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5188: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -5233,7 +5247,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:5237: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:5251: checking whether to enable maintainer-specific portions of Makefiles" >&5
# Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
if test "${enable_maintainer_mode+set}" = set; then
enableval="$enable_maintainer_mode"
@@ -5258,7 +5272,7 @@ fi
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:5262: checking for executable suffix" >&5
+echo "configure:5276: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5268,7 +5282,7 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:5272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:5286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
*.c | *.o | *.obj | *.ilk | *.pdb) ;;
@@ -5293,17 +5307,17 @@ for ac_hdr in string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h e
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5297: checking for $ac_hdr" >&5
+echo "configure:5311: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5302 "configure"
+#line 5316 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5307: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5321: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -5333,7 +5347,7 @@ done
# Put this here so that autoconf's "cross-compiling" message doesn't confuse
# people who are not cross-compiling but are compiling cross-assemblers.
echo $ac_n "checking whether compiling a cross-assembler""... $ac_c" 1>&6
-echo "configure:5337: checking whether compiling a cross-assembler" >&5
+echo "configure:5351: checking whether compiling a cross-assembler" >&5
if test "${host}" = "${target}"; then
cross_gas=no
else
@@ -5348,19 +5362,19 @@ echo "$ac_t""$cross_gas" 1>&6
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:5352: checking for working alloca.h" >&5
+echo "configure:5366: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5357 "configure"
+#line 5371 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:5364: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -5381,12 +5395,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:5385: checking for alloca" >&5
+echo "configure:5399: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5390 "configure"
+#line 5404 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -5414,7 +5428,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:5418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -5446,12 +5460,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:5450: checking whether alloca needs Cray hooks" >&5
+echo "configure:5464: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5455 "configure"
+#line 5469 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -5476,12 +5490,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5480: checking for $ac_func" >&5
+echo "configure:5494: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5485 "configure"
+#line 5499 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5504,7 +5518,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5531,7 +5545,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:5535: checking stack direction for C alloca" >&5
+echo "configure:5549: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5539,7 +5553,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 5543 "configure"
+#line 5557 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -5558,7 +5572,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:5562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -5580,21 +5594,21 @@ EOF
fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:5584: checking for inline" >&5
+echo "configure:5598: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 5591 "configure"
+#line 5605 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:5598: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -5624,12 +5638,12 @@ esac
for ac_func in unlink remove
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5628: checking for $ac_func" >&5
+echo "configure:5642: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5633 "configure"
+#line 5647 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5652,7 +5666,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5681,12 +5695,12 @@ done
for ac_func in sbrk
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5685: checking for $ac_func" >&5
+echo "configure:5699: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5690 "configure"
+#line 5704 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5709,7 +5723,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -5744,7 +5758,7 @@ case "$host" in
;;
*-ncr-sysv4.3*)
echo $ac_n "checking for _mwvalidcheckl in -lmw""... $ac_c" 1>&6
-echo "configure:5748: checking for _mwvalidcheckl in -lmw" >&5
+echo "configure:5762: checking for _mwvalidcheckl in -lmw" >&5
ac_lib_var=`echo mw'_'_mwvalidcheckl | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5752,7 +5766,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lmw $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5756 "configure"
+#line 5770 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -5763,7 +5777,7 @@ int main() {
_mwvalidcheckl()
; return 0; }
EOF
-if { (eval echo configure:5767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5784,7 +5798,7 @@ else
fi
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:5788: checking for main in -lm" >&5
+echo "configure:5802: checking for main in -lm" >&5
ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5792,14 +5806,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5796 "configure"
+#line 5810 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5822,7 +5836,7 @@ fi
;;
*)
echo $ac_n "checking for main in -lm""... $ac_c" 1>&6
-echo "configure:5826: checking for main in -lm" >&5
+echo "configure:5840: checking for main in -lm" >&5
ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -5830,14 +5844,14 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 5834 "configure"
+#line 5848 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:5841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -5868,12 +5882,12 @@ esac
# enough, but on some of those systems, the assert macro relies on requoting
# working properly!
echo $ac_n "checking for working assert macro""... $ac_c" 1>&6
-echo "configure:5872: checking for working assert macro" >&5
+echo "configure:5886: checking for working assert macro" >&5
if eval "test \"`echo '$''{'gas_cv_assert_ok'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5877 "configure"
+#line 5891 "configure"
#include "confdefs.h"
#include <assert.h>
#include <stdio.h>
@@ -5889,7 +5903,7 @@ assert (a == b
; return 0; }
EOF
-if { (eval echo configure:5893: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gas_cv_assert_ok=yes
else
@@ -5930,12 +5944,12 @@ gas_test_headers="
"
echo $ac_n "checking whether declaration is required for strstr""... $ac_c" 1>&6
-echo "configure:5934: checking whether declaration is required for strstr" >&5
+echo "configure:5948: checking whether declaration is required for strstr" >&5
if eval "test \"`echo '$''{'gas_cv_decl_needed_strstr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5939 "configure"
+#line 5953 "configure"
#include "confdefs.h"
$gas_test_headers
int main() {
@@ -5946,7 +5960,7 @@ x = (f) strstr;
; return 0; }
EOF
-if { (eval echo configure:5950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gas_cv_decl_needed_strstr=no
else
@@ -5967,12 +5981,12 @@ fi
echo $ac_n "checking whether declaration is required for malloc""... $ac_c" 1>&6
-echo "configure:5971: checking whether declaration is required for malloc" >&5
+echo "configure:5985: checking whether declaration is required for malloc" >&5
if eval "test \"`echo '$''{'gas_cv_decl_needed_malloc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 5976 "configure"
+#line 5990 "configure"
#include "confdefs.h"
$gas_test_headers
int main() {
@@ -5983,7 +5997,7 @@ x = (f) malloc;
; return 0; }
EOF
-if { (eval echo configure:5987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gas_cv_decl_needed_malloc=no
else
@@ -6004,12 +6018,12 @@ fi
echo $ac_n "checking whether declaration is required for free""... $ac_c" 1>&6
-echo "configure:6008: checking whether declaration is required for free" >&5
+echo "configure:6022: checking whether declaration is required for free" >&5
if eval "test \"`echo '$''{'gas_cv_decl_needed_free'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6013 "configure"
+#line 6027 "configure"
#include "confdefs.h"
$gas_test_headers
int main() {
@@ -6020,7 +6034,7 @@ x = (f) free;
; return 0; }
EOF
-if { (eval echo configure:6024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gas_cv_decl_needed_free=no
else
@@ -6041,12 +6055,12 @@ fi
echo $ac_n "checking whether declaration is required for sbrk""... $ac_c" 1>&6
-echo "configure:6045: checking whether declaration is required for sbrk" >&5
+echo "configure:6059: checking whether declaration is required for sbrk" >&5
if eval "test \"`echo '$''{'gas_cv_decl_needed_sbrk'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6050 "configure"
+#line 6064 "configure"
#include "confdefs.h"
$gas_test_headers
int main() {
@@ -6057,7 +6071,7 @@ x = (f) sbrk;
; return 0; }
EOF
-if { (eval echo configure:6061: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gas_cv_decl_needed_sbrk=no
else
@@ -6078,12 +6092,12 @@ fi
echo $ac_n "checking whether declaration is required for environ""... $ac_c" 1>&6
-echo "configure:6082: checking whether declaration is required for environ" >&5
+echo "configure:6096: checking whether declaration is required for environ" >&5
if eval "test \"`echo '$''{'gas_cv_decl_needed_environ'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6087 "configure"
+#line 6101 "configure"
#include "confdefs.h"
$gas_test_headers
int main() {
@@ -6094,7 +6108,7 @@ x = (f) environ;
; return 0; }
EOF
-if { (eval echo configure:6098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gas_cv_decl_needed_environ=no
else
@@ -6118,12 +6132,12 @@ fi
# for it?
echo $ac_n "checking whether declaration is required for errno""... $ac_c" 1>&6
-echo "configure:6122: checking whether declaration is required for errno" >&5
+echo "configure:6136: checking whether declaration is required for errno" >&5
if eval "test \"`echo '$''{'gas_cv_decl_needed_errno'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6127 "configure"
+#line 6141 "configure"
#include "confdefs.h"
#ifdef HAVE_ERRNO_H
@@ -6138,7 +6152,7 @@ x = (f) errno;
; return 0; }
EOF
-if { (eval echo configure:6142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gas_cv_decl_needed_errno=no
else
diff --git a/gas/configure.in b/gas/configure.in
index ad46b8f..c89a2df 100644
--- a/gas/configure.in
+++ b/gas/configure.in
@@ -139,6 +139,8 @@ changequote([,])dnl
powerpcle*) cpu_type=ppc endian=little ;;
powerpc*) cpu_type=ppc endian=big ;;
rs6000*) cpu_type=ppc ;;
+ s390x*) cpu_type=s390 arch=s390x ;;
+ s390*) cpu_type=s390 arch=s390 ;;
sparclite*) cpu_type=sparc arch=sparclite ;;
sparclet*) cpu_type=sparc arch=sparclet ;;
sparc64*) cpu_type=sparc arch=v9-64 ;;
@@ -377,6 +379,9 @@ changequote([,])dnl
ppc-*-netware*) fmt=elf em=ppcnw ;;
ppc-*-vxworks*) fmt=elf ;;
+ s390x-*-linux-gnu*) fmt=elf em=linux ;;
+ s390-*-linux-gnu*) fmt=elf em=linux ;;
+
sh-*-linux*) fmt=elf em=linux ;;
sh-*-elf*) fmt=elf ;;
sh-*-coff*) fmt=coff ;;
@@ -523,6 +528,12 @@ changequote([,])dnl
esac
;;
+ s390)
+ if test $this_target = $target ; then
+ AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
+ fi
+ ;;
+
mips)
echo ${extra_objects} | grep -s "itbl-parse.o"
if test $? -ne 0 ; then
diff --git a/gas/po/POTFILES.in b/gas/po/POTFILES.in
index 30dab30..d3d8df9 100644
--- a/gas/po/POTFILES.in
+++ b/gas/po/POTFILES.in
@@ -96,6 +96,8 @@ config/tc-pj.c
config/tc-pj.h
config/tc-ppc.c
config/tc-ppc.h
+config/tc-s390.c
+config/tc-s390.h
config/tc-sh.c
config/tc-sh.h
config/tc-sparc.c
diff --git a/gas/po/gas.pot b/gas/po/gas.pot
index 4428b64..47a8e96 100644
--- a/gas/po/gas.pot
+++ b/gas/po/gas.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-01-11 12:04-0800\n"
+"POT-Creation-Date: 2001-02-09 16:34-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -264,7 +264,7 @@ msgid "GNU assembler %s\n"
msgstr ""
#: as.c:528
-msgid "Copyright 2000 Free Software Foundation, Inc.\n"
+msgid "Copyright 2001 Free Software Foundation, Inc.\n"
msgstr ""
#: as.c:529 gasp.c:3621
@@ -354,7 +354,7 @@ msgstr ""
#. * This should never happen.
#.
#: atof-generic.c:437 config/tc-a29k.c:544 config/tc-i860.c:340
-#: config/tc-i860.c:832 config/tc-m68k.c:3176 config/tc-m68k.c:3205
+#: config/tc-i860.c:832 config/tc-m68k.c:3186 config/tc-m68k.c:3215
#: config/tc-sparc.c:2543
msgid "failed sanity check."
msgstr ""
@@ -627,7 +627,7 @@ msgstr ""
msgid "Symbol %s already defined"
msgstr ""
-#: config/obj-coff.c:4176 config/tc-i960.c:3215
+#: config/obj-coff.c:4176 config/tc-i960.c:3214
#, c-format
msgid "No 'bal' entry point for leafproc %s"
msgstr ""
@@ -649,7 +649,7 @@ msgstr ""
#. This is a COBR instruction. They have only a 13-bit
#. displacement and are only to be used for local branches:
#. flag as error, don't generate relocation.
-#: config/obj-coff.c:4411 config/tc-i960.c:3235 write.c:2733
+#: config/obj-coff.c:4411 config/tc-i960.c:3234 write.c:2733
msgid "can't use COBR format with external label"
msgstr ""
@@ -680,7 +680,7 @@ msgstr ""
msgid ".COMMon length (%d.) <0! Ignored."
msgstr ""
-#: config/obj-elf.c:325 config/tc-alpha.c:4335 config/tc-sparc.c:3694
+#: config/obj-elf.c:325 config/tc-alpha.c:4331 config/tc-sparc.c:3694
#: config/tc-v850.c:282
msgid "Ignoring attempt to re-define symbol"
msgstr ""
@@ -694,7 +694,7 @@ msgstr ""
msgid "Common alignment negative; 0 assumed"
msgstr ""
-#: config/obj-elf.c:375 config/tc-m32r.c:1286 config/tc-ppc.c:1518
+#: config/obj-elf.c:375 config/tc-m32r.c:1287 config/tc-ppc.c:1518
#: config/tc-v850.c:382
msgid "Common alignment not a power of 2"
msgstr ""
@@ -977,7 +977,7 @@ msgid "Unknown segment type"
msgstr ""
#. Probably a memory allocation problem? Give up now.
-#: config/tc-a29k.c:330 config/tc-hppa.c:1412 config/tc-mips.c:1030
+#: config/tc-a29k.c:330 config/tc-hppa.c:1437 config/tc-mips.c:1030
#: config/tc-mips.c:1072 config/tc-sparc.c:846
msgid "Broken assembler. No assembly attempted."
msgstr ""
@@ -985,13 +985,14 @@ msgstr ""
#: config/tc-a29k.c:375 config/tc-avr.c:1124 config/tc-d10v.c:532
#: config/tc-d30v.c:552 config/tc-h8300.c:296 config/tc-h8500.c:294
#: config/tc-mcore.c:655 config/tc-mn10200.c:954 config/tc-mn10300.c:1335
-#: config/tc-ppc.c:1974 config/tc-sh.c:838 config/tc-tic80.c:282
-#: config/tc-v850.c:2076 config/tc-w65.c:248 config/tc-z8k.c:336
+#: config/tc-ppc.c:1974 config/tc-s390.c:964 config/tc-sh.c:843
+#: config/tc-tic80.c:282 config/tc-v850.c:2076 config/tc-w65.c:248
+#: config/tc-z8k.c:336
msgid "missing operand"
msgstr ""
#: config/tc-a29k.c:415 config/tc-cris.c:913 config/tc-cris.c:921
-#: config/tc-hppa.c:1545 config/tc-i860.c:431 config/tc-i860.c:448
+#: config/tc-hppa.c:1572 config/tc-i860.c:431 config/tc-i860.c:448
#: config/tc-sparc.c:1408 config/tc-sparc.c:1414
#, c-format
msgid "Unknown opcode: `%s'"
@@ -1043,33 +1044,33 @@ msgstr ""
msgid "Invalid register in & expression"
msgstr ""
-#: config/tc-alpha.c:837
+#: config/tc-alpha.c:827
#, c-format
msgid "internal error: can't hash opcode `%s': %s"
msgstr ""
-#: config/tc-alpha.c:871
+#: config/tc-alpha.c:861
#, c-format
msgid "internal error: can't hash macro `%s': %s"
msgstr ""
-#: config/tc-alpha.c:954 config/tc-i960.c:2700
+#: config/tc-alpha.c:945 config/tc-i960.c:2700
msgid "syntax error"
msgstr ""
-#: config/tc-alpha.c:1028 config/tc-arm.c:6629 config/tc-h8300.c:1373
-#: config/tc-h8500.c:1197 config/tc-hppa.c:3939 config/tc-i860.c:931
-#: config/tc-m68hc11.c:478 config/tc-m68k.c:4179 config/tc-m88k.c:1105
+#: config/tc-alpha.c:1019 config/tc-arm.c:6629 config/tc-h8300.c:1373
+#: config/tc-h8500.c:1197 config/tc-hppa.c:3990 config/tc-i860.c:931
+#: config/tc-m68hc11.c:481 config/tc-m68k.c:4189 config/tc-m88k.c:1105
#: config/tc-ns32k.c:1663 config/tc-sparc.c:2830 config/tc-z8k.c:1324
msgid "Bad call to MD_ATOF()"
msgstr ""
-#: config/tc-alpha.c:1078
+#: config/tc-alpha.c:1069
#, c-format
msgid "Unknown CPU identifier `%s'"
msgstr ""
-#: config/tc-alpha.c:1122
+#: config/tc-alpha.c:1113
msgid ""
"Alpha options:\n"
"-32addr\t\t\ttreat addresses as 32-bit values\n"
@@ -1080,293 +1081,294 @@ msgid ""
"\t\t\tthese variants include PALcode opcodes\n"
msgstr ""
-#: config/tc-alpha.c:1132
+#: config/tc-alpha.c:1123
msgid ""
"VMS options:\n"
"-+\t\t\thash encode (don't truncate) names longer than 64 characters\n"
"-H\t\t\tshow new symbol after hash truncation\n"
msgstr ""
-#: config/tc-alpha.c:1305
+#: config/tc-alpha.c:1296
#, c-format
msgid "unhandled relocation type %s"
msgstr ""
-#: config/tc-alpha.c:1318
+#: config/tc-alpha.c:1309
msgid "non-absolute expression in constant field"
msgstr ""
-#: config/tc-alpha.c:1332
+#: config/tc-alpha.c:1323
#, c-format
msgid "type %d reloc done?\n"
msgstr ""
-#: config/tc-alpha.c:1383 config/tc-alpha.c:1390 config/tc-mips.c:7356
+#: config/tc-alpha.c:1374 config/tc-alpha.c:1381 config/tc-mips.c:7356
msgid "Used $at without \".set noat\""
msgstr ""
-#: config/tc-alpha.c:1572
+#: config/tc-alpha.c:1564
#, c-format
msgid "cannot represent `%s' relocation in object file"
msgstr ""
-#: config/tc-alpha.c:1579
+#: config/tc-alpha.c:1571
#, c-format
msgid "internal error? cannot generate `%s' relocation"
msgstr ""
-#: config/tc-alpha.c:1633
+#: config/tc-alpha.c:1625
#, c-format
msgid "frame reg expected, using $%d."
msgstr ""
-#: config/tc-alpha.c:1758
+#: config/tc-alpha.c:1752
#, c-format
msgid "No !literal!%d was found"
msgstr ""
#. only support one relocation op per insn
-#: config/tc-alpha.c:1946
+#: config/tc-alpha.c:1939
msgid "More than one relocation op per insn"
msgstr ""
-#: config/tc-alpha.c:1963
+#: config/tc-alpha.c:1956
msgid "No relocation operand"
msgstr ""
-#: config/tc-alpha.c:1969
+#: config/tc-alpha.c:1962
#, c-format
msgid "No !sequence-number after !%s"
msgstr ""
-#: config/tc-alpha.c:1982
+#: config/tc-alpha.c:1975
#, c-format
msgid "Unknown relocation operand: !%s"
msgstr ""
-#: config/tc-alpha.c:1995
+#: config/tc-alpha.c:1989
#, c-format
msgid "Bad sequence number: !%s!%s"
msgstr ""
-#: config/tc-alpha.c:2346
+#: config/tc-alpha.c:2341
#, c-format
msgid "operand out of range (%s not between %d and %d)"
msgstr ""
-#: config/tc-alpha.c:2445 config/tc-d10v.c:621 config/tc-d30v.c:640
+#: config/tc-alpha.c:2440 config/tc-d10v.c:621 config/tc-d30v.c:640
#: config/tc-mn10200.c:1009 config/tc-mn10300.c:1406 config/tc-ppc.c:1940
-#: config/tc-ppc.c:2048 config/tc-ppc.c:2060 config/tc-v850.c:1856
-#: config/tc-v850.c:1879 config/tc-v850.c:2099
+#: config/tc-ppc.c:2048 config/tc-ppc.c:2060 config/tc-s390.c:971
+#: config/tc-s390.c:1014 config/tc-v850.c:1856 config/tc-v850.c:1879
+#: config/tc-v850.c:2099
msgid "too many fixups"
msgstr ""
-#: config/tc-alpha.c:2660 config/tc-alpha.c:2729
+#: config/tc-alpha.c:2656 config/tc-alpha.c:2725
#, c-format
msgid "inappropriate arguments for opcode `%s'"
msgstr ""
-#: config/tc-alpha.c:2662 config/tc-alpha.c:2731
+#: config/tc-alpha.c:2658 config/tc-alpha.c:2727
#, c-format
msgid "opcode `%s' not supported for target %s"
msgstr ""
-#: config/tc-alpha.c:2666 config/tc-alpha.c:2734 config/tc-avr.c:1090
+#: config/tc-alpha.c:2662 config/tc-alpha.c:2730 config/tc-avr.c:1090
#, c-format
msgid "unknown opcode `%s'"
msgstr ""
-#: config/tc-alpha.c:2706 config/tc-alpha.c:2773 config/tc-alpha.c:3284
-#: config/tc-alpha.c:3344 config/tc-alpha.c:3396 config/tc-alpha.c:3471
-#: config/tc-alpha.c:3556 config/tc-alpha.c:3682 config/tc-alpha.c:3859
-#: config/tc-alpha.c:3916 config/tc-alpha.c:4026 config/tc-alpha.c:4133
-#: config/tc-alpha.c:4210
+#: config/tc-alpha.c:2702 config/tc-alpha.c:2768 config/tc-alpha.c:3280
+#: config/tc-alpha.c:3340 config/tc-alpha.c:3392 config/tc-alpha.c:3467
+#: config/tc-alpha.c:3552 config/tc-alpha.c:3678 config/tc-alpha.c:3855
+#: config/tc-alpha.c:3912 config/tc-alpha.c:4022 config/tc-alpha.c:4129
+#: config/tc-alpha.c:4206
#, c-format
msgid "Cannot use !%s!%d with %s"
msgstr ""
-#: config/tc-alpha.c:2794
+#: config/tc-alpha.c:2789
msgid "can not resolve expression"
msgstr ""
-#: config/tc-alpha.c:2936 config/tc-alpha.c:3128
+#: config/tc-alpha.c:2931 config/tc-alpha.c:3124
msgid "overflow in literal (.lita) table"
msgstr ""
-#: config/tc-alpha.c:2943 config/tc-alpha.c:2966 config/tc-alpha.c:3141
-#: config/tc-alpha.c:3485 config/tc-alpha.c:3563 config/tc-alpha.c:3611
-#: config/tc-alpha.c:3711 config/tc-alpha.c:3936 config/tc-alpha.c:4048
+#: config/tc-alpha.c:2938 config/tc-alpha.c:2961 config/tc-alpha.c:3137
+#: config/tc-alpha.c:3481 config/tc-alpha.c:3559 config/tc-alpha.c:3607
+#: config/tc-alpha.c:3707 config/tc-alpha.c:3932 config/tc-alpha.c:4044
msgid "macro requires $at register while noat in effect"
msgstr ""
-#: config/tc-alpha.c:2945 config/tc-alpha.c:2968 config/tc-alpha.c:3143
+#: config/tc-alpha.c:2940 config/tc-alpha.c:2963 config/tc-alpha.c:3139
msgid "macro requires $at while $at in use"
msgstr ""
-#: config/tc-alpha.c:3090 expr.c:83 read.c:3164
+#: config/tc-alpha.c:3086 expr.c:83 read.c:3164
msgid "bignum invalid; zero assumed"
msgstr ""
-#: config/tc-alpha.c:3092 expr.c:85 read.c:3166 read.c:3499 read.c:4397
+#: config/tc-alpha.c:3088 expr.c:85 read.c:3166 read.c:3499 read.c:4397
msgid "floating point number invalid; zero assumed"
msgstr ""
-#: config/tc-alpha.c:3097
+#: config/tc-alpha.c:3093
msgid "can't handle expression"
msgstr ""
-#: config/tc-alpha.c:3134
+#: config/tc-alpha.c:3130
msgid "overflow in literal (.lit8) table"
msgstr ""
-#: config/tc-alpha.c:3306
+#: config/tc-alpha.c:3302
#, c-format
msgid "bad instruction format for lda !%s!%ld"
msgstr ""
-#: config/tc-alpha.c:4306 config/tc-ppc.c:1467 config/tc-ppc.c:3689
+#: config/tc-alpha.c:4302 config/tc-ppc.c:1467 config/tc-ppc.c:3689
#: read.c:1369
#, c-format
msgid ".COMMon length (%ld.) <0! Ignored."
msgstr ""
-#: config/tc-alpha.c:4344 config/tc-alpha.c:4353 config/tc-ppc.c:3726
+#: config/tc-alpha.c:4340 config/tc-alpha.c:4349 config/tc-ppc.c:3726
#: read.c:1393
#, c-format
msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld."
msgstr ""
-#: config/tc-alpha.c:4455 ecoff.c:3087
+#: config/tc-alpha.c:4451 ecoff.c:3087
msgid ".ent directive has no name"
msgstr ""
-#: config/tc-alpha.c:4463
+#: config/tc-alpha.c:4459
msgid "nested .ent directives"
msgstr ""
-#: config/tc-alpha.c:4499 ecoff.c:3035
+#: config/tc-alpha.c:4495 ecoff.c:3035
msgid ".end directive has no name"
msgstr ""
-#: config/tc-alpha.c:4508
+#: config/tc-alpha.c:4504
msgid ".end directive names different symbol than .ent"
msgstr ""
-#: config/tc-alpha.c:4585
+#: config/tc-alpha.c:4581
#, c-format
msgid "Invalid argument %d to .prologue."
msgstr ""
-#: config/tc-alpha.c:4677
+#: config/tc-alpha.c:4673
msgid "ECOFF debugging is disabled."
msgstr ""
-#: config/tc-alpha.c:4698
+#: config/tc-alpha.c:4694
msgid "Unknown section directive"
msgstr ""
-#: config/tc-alpha.c:4734
+#: config/tc-alpha.c:4730
msgid ".ent directive has no symbol"
msgstr ""
-#: config/tc-alpha.c:4761
+#: config/tc-alpha.c:4757
msgid "Bad .frame directive 1./2. param"
msgstr ""
-#: config/tc-alpha.c:4773
+#: config/tc-alpha.c:4769
msgid "Bad .frame directive 3./4. param"
msgstr ""
-#: config/tc-alpha.c:4798
+#: config/tc-alpha.c:4794
msgid ".pdesc directive not in link (.link) section"
msgstr ""
-#: config/tc-alpha.c:4806
+#: config/tc-alpha.c:4802
msgid ".pdesc has no matching .ent"
msgstr ""
-#: config/tc-alpha.c:4817
+#: config/tc-alpha.c:4813
msgid ".pdesc directive has no entry symbol"
msgstr ""
-#: config/tc-alpha.c:4830
+#: config/tc-alpha.c:4826
msgid "No comma after .pdesc <entryname>"
msgstr ""
-#: config/tc-alpha.c:4853
+#: config/tc-alpha.c:4849
msgid "unknown procedure kind"
msgstr ""
-#: config/tc-alpha.c:4947
+#: config/tc-alpha.c:4942
msgid ".name directive not in link (.link) section"
msgstr ""
-#: config/tc-alpha.c:4955
+#: config/tc-alpha.c:4950
msgid ".name directive has no symbol"
msgstr ""
-#: config/tc-alpha.c:4989
+#: config/tc-alpha.c:4984
msgid "No symbol after .linkage"
msgstr ""
-#: config/tc-alpha.c:5017
+#: config/tc-alpha.c:5012
msgid "No symbol after .code_address"
msgstr ""
-#: config/tc-alpha.c:5050 ecoff.c:3253
+#: config/tc-alpha.c:5045 ecoff.c:3253
msgid "Bad .mask directive"
msgstr ""
-#: config/tc-alpha.c:5071 ecoff.c:3183
+#: config/tc-alpha.c:5066 ecoff.c:3183
msgid "Bad .fmask directive"
msgstr ""
-#: config/tc-alpha.c:5241 config/tc-arm.c:1593 read.c:2150 read.c:2737
+#: config/tc-alpha.c:5236 config/tc-arm.c:1593 read.c:2150 read.c:2737
#: stabs.c:464
#, c-format
msgid "Expected comma after name \"%s\""
msgstr ""
#. *symbol_get_obj (symbolP) = (signed char) temp;
-#: config/tc-alpha.c:5252
+#: config/tc-alpha.c:5247
#, c-format
msgid "unhandled: .proc %s,%d"
msgstr ""
-#: config/tc-alpha.c:5287
+#: config/tc-alpha.c:5282
#, c-format
msgid "Tried to .set unrecognized mode `%s'"
msgstr ""
#. not fatal, but it might not work in the end
-#: config/tc-alpha.c:5304
+#: config/tc-alpha.c:5299
msgid "File overrides no-base-register option."
msgstr ""
-#: config/tc-alpha.c:5321
+#: config/tc-alpha.c:5316
#, c-format
msgid "Bad base register, using $%d."
msgstr ""
-#: config/tc-alpha.c:5343
+#: config/tc-alpha.c:5338
#, c-format
msgid "Alignment too large: %d. assumed"
msgstr ""
-#: config/tc-alpha.c:5347 config/tc-d30v.c:2219
+#: config/tc-alpha.c:5342 config/tc-d30v.c:2219
msgid "Alignment negative: 0 assumed"
msgstr ""
-#: config/tc-alpha.c:5662
+#: config/tc-alpha.c:5654
#, c-format
msgid "Chose GP value of %lx\n"
msgstr ""
-#: config/tc-arc.c:1618 config/tc-arm.c:7532
+#: config/tc-arc.c:1608 config/tc-arm.c:7532
msgid "md_estimate_size_before_relax\n"
msgstr ""
-#: config/tc-arc.c:1630
+#: config/tc-arc.c:1620
msgid "md_convert_frag\n"
msgstr ""
@@ -1407,7 +1409,7 @@ msgstr ""
msgid "Alignment negative. 0 assumed."
msgstr ""
-#: config/tc-arm.c:1643 config/tc-m32r.c:417 read.c:2795 read.c:4857
+#: config/tc-arm.c:1643 config/tc-m32r.c:418 read.c:2795 read.c:4857
#, c-format
msgid "symbol `%s' already defined"
msgstr ""
@@ -1683,7 +1685,7 @@ msgstr ""
#: config/tc-arm.c:4569 config/tc-avr.c:852 config/tc-cris.c:2733
#: config/tc-d10v.c:1560 config/tc-d30v.c:1865 config/tc-mips.c:3230
#: config/tc-mips.c:4162 config/tc-mips.c:4947 config/tc-mips.c:5493
-#: config/tc-ppc.c:4854 config/tc-v850.c:2385
+#: config/tc-ppc.c:4853 config/tc-v850.c:2385
msgid "expression too complex"
msgstr ""
@@ -1947,7 +1949,7 @@ msgstr ""
msgid "Cannot represent %s relocation in this object file format"
msgstr ""
-#: config/tc-arm.c:7514 config/tc-mips.c:11261 config/tc-sh.c:3177
+#: config/tc-arm.c:7514 config/tc-mips.c:11261 config/tc-sh.c:3182
#, c-format
msgid "Can not represent %s relocation in this object file format"
msgstr ""
@@ -2103,7 +2105,7 @@ msgstr ""
#: config/tc-avr.c:372 config/tc-d10v.c:313 config/tc-d30v.c:366
#: config/tc-mips.c:8789 config/tc-mn10200.c:375 config/tc-pj.c:356
-#: config/tc-ppc.c:4518 config/tc-sh.c:2058 config/tc-v850.c:1291
+#: config/tc-ppc.c:4518 config/tc-sh.c:2063 config/tc-v850.c:1291
msgid "bad call to md_atof"
msgstr ""
@@ -2197,7 +2199,7 @@ msgid "only constant expression allowed"
msgstr ""
#: config/tc-avr.c:1060 config/tc-d10v.c:1495 config/tc-d30v.c:1807
-#: config/tc-mn10200.c:1254 config/tc-mn10300.c:1810 config/tc-ppc.c:5161
+#: config/tc-mn10200.c:1254 config/tc-mn10300.c:1810 config/tc-ppc.c:5160
#: config/tc-v850.c:2301
#, c-format
msgid "reloc %d not supported by object file format"
@@ -2205,7 +2207,7 @@ msgstr ""
#: config/tc-avr.c:1084 config/tc-d10v.c:1102 config/tc-d10v.c:1116
#: config/tc-h8300.c:1239 config/tc-h8500.c:1098 config/tc-mcore.c:988
-#: config/tc-pj.c:265 config/tc-sh.c:1640 config/tc-z8k.c:1195
+#: config/tc-pj.c:265 config/tc-sh.c:1645 config/tc-z8k.c:1195
msgid "can't find opcode "
msgstr ""
@@ -2415,8 +2417,8 @@ msgid ""
msgstr ""
#: config/tc-d10v.c:530 config/tc-d30v.c:550 config/tc-mn10200.c:951
-#: config/tc-mn10300.c:1332 config/tc-ppc.c:1972 config/tc-tic80.c:278
-#: config/tc-v850.c:2073
+#: config/tc-mn10300.c:1332 config/tc-ppc.c:1972 config/tc-s390.c:962
+#: config/tc-tic80.c:278 config/tc-v850.c:2073
msgid "illegal operand"
msgstr ""
@@ -2485,7 +2487,7 @@ msgstr ""
msgid "bad opcode or operands"
msgstr ""
-#: config/tc-d10v.c:1353 config/tc-m68k.c:4286
+#: config/tc-d10v.c:1353 config/tc-m68k.c:4296
msgid "value out of range"
msgstr ""
@@ -2653,7 +2655,7 @@ msgstr ""
msgid "Instruction %s not allowed in a delay slot."
msgstr ""
-#: config/tc-fr30.c:380 config/tc-m32r.c:1555
+#: config/tc-fr30.c:380 config/tc-m32r.c:1556
msgid "Addend to unresolved symbol not on word boundary."
msgstr ""
@@ -2734,7 +2736,7 @@ msgid "invalid operands"
msgstr ""
#: config/tc-h8300.c:1250 config/tc-h8500.c:1104 config/tc-mips.c:7984
-#: config/tc-sh.c:1877 config/tc-w65.c:740 config/tc-z8k.c:1205
+#: config/tc-sh.c:1882 config/tc-w65.c:740 config/tc-z8k.c:1205
msgid "unknown opcode"
msgstr ""
@@ -2742,12 +2744,12 @@ msgstr ""
msgid "mismatch between opcode size and operand size"
msgstr ""
-#: config/tc-h8300.c:1307 config/tc-h8500.c:1131 config/tc-sh.c:2013
+#: config/tc-h8300.c:1307 config/tc-h8500.c:1131 config/tc-sh.c:2018
#: config/tc-w65.c:770 config/tc-z8k.c:1258
msgid "call to tc_crawl_symbol_chain \n"
msgstr ""
-#: config/tc-h8300.c:1321 config/tc-h8500.c:1145 config/tc-sh.c:2020
+#: config/tc-h8300.c:1321 config/tc-h8500.c:1145 config/tc-sh.c:2025
#: config/tc-w65.c:784 config/tc-z8k.c:1272
msgid "call to tc_headers_hook \n"
msgstr ""
@@ -2792,448 +2794,448 @@ msgstr ""
msgid "@Rn needs word register"
msgstr ""
-#: config/tc-h8500.c:838 config/tc-sh.c:1357
+#: config/tc-h8500.c:838 config/tc-sh.c:1362
#, c-format
msgid "unhandled %d\n"
msgstr ""
-#: config/tc-h8500.c:866 config/tc-sh.c:1382
+#: config/tc-h8500.c:866 config/tc-sh.c:1387
#, c-format
msgid "operand must be absolute in range %d..%d"
msgstr ""
-#: config/tc-h8500.c:955 config/tc-sh.c:1580
+#: config/tc-h8500.c:955 config/tc-sh.c:1585
#, c-format
msgid "failed for %d\n"
msgstr ""
-#: config/tc-h8500.c:1120 config/tc-sh.c:1681 config/tc-sh.c:1926
+#: config/tc-h8500.c:1120 config/tc-sh.c:1686 config/tc-sh.c:1931
#: config/tc-w65.c:759
msgid "invalid operands for opcode"
msgstr ""
#. Simple range checking for FIELD againt HIGH and LOW bounds.
#. IGNORE is used to suppress the error message.
-#: config/tc-hppa.c:1119
+#: config/tc-hppa.c:1144
#, c-format
msgid "Field out of range [%d..%d] (%d)."
msgstr ""
#. Simple alignment checking for FIELD againt ALIGN (a power of two).
#. IGNORE is used to suppress the error message.
-#: config/tc-hppa.c:1133
+#: config/tc-hppa.c:1158
#, c-format
msgid "Field not properly aligned [%d] (%d)."
msgstr ""
-#: config/tc-hppa.c:1162
+#: config/tc-hppa.c:1187
msgid "Missing .exit\n"
msgstr ""
-#: config/tc-hppa.c:1165
+#: config/tc-hppa.c:1190
msgid "Missing .procend\n"
msgstr ""
-#: config/tc-hppa.c:1345
+#: config/tc-hppa.c:1370
msgid "Invalid field selector. Assuming F%%."
msgstr ""
-#: config/tc-hppa.c:1372 config/tc-hppa.c:6839 config/tc-hppa.c:6845
-#: config/tc-hppa.c:6851 config/tc-hppa.c:6857 config/tc-mn10300.c:924
+#: config/tc-hppa.c:1397 config/tc-hppa.c:6889 config/tc-hppa.c:6895
+#: config/tc-hppa.c:6901 config/tc-hppa.c:6907 config/tc-mn10300.c:924
#: config/tc-mn10300.c:2133
msgid "could not set architecture and machine"
msgstr ""
-#: config/tc-hppa.c:1378
+#: config/tc-hppa.c:1403
msgid "-R option not supported on this target."
msgstr ""
-#: config/tc-hppa.c:1394 config/tc-sparc.c:802 config/tc-sparc.c:838
+#: config/tc-hppa.c:1419 config/tc-sparc.c:802 config/tc-sparc.c:838
#, c-format
msgid "Internal error: can't hash `%s': %s\n"
msgstr ""
-#: config/tc-hppa.c:1402 config/tc-i860.c:190
+#: config/tc-hppa.c:1427 config/tc-i860.c:190
#, c-format
msgid "internal error: losing opcode: `%s' \"%s\"\n"
msgstr ""
-#: config/tc-hppa.c:1471 config/tc-hppa.c:6978 config/tc-hppa.c:7033
+#: config/tc-hppa.c:1498 config/tc-hppa.c:7028 config/tc-hppa.c:7085
msgid "Missing function name for .PROC (corrupted label chain)"
msgstr ""
-#: config/tc-hppa.c:1474 config/tc-hppa.c:7036
+#: config/tc-hppa.c:1501 config/tc-hppa.c:7088
msgid "Missing function name for .PROC"
msgstr ""
-#: config/tc-hppa.c:1582 config/tc-hppa.c:4812
+#: config/tc-hppa.c:1609 config/tc-hppa.c:4869
msgid "could not update architecture and machine"
msgstr ""
-#: config/tc-hppa.c:1789
+#: config/tc-hppa.c:1816
msgid "Invalid Indexed Load Completer."
msgstr ""
-#: config/tc-hppa.c:1794
+#: config/tc-hppa.c:1821
msgid "Invalid Indexed Load Completer Syntax."
msgstr ""
-#: config/tc-hppa.c:1830
+#: config/tc-hppa.c:1857
msgid "Invalid Short Load/Store Completer."
msgstr ""
-#: config/tc-hppa.c:1889 config/tc-hppa.c:1894
+#: config/tc-hppa.c:1916 config/tc-hppa.c:1921
msgid "Invalid Store Bytes Short Completer"
msgstr ""
-#: config/tc-hppa.c:2205 config/tc-hppa.c:2211
+#: config/tc-hppa.c:2232 config/tc-hppa.c:2238
msgid "Invalid left/right combination completer"
msgstr ""
-#: config/tc-hppa.c:2260 config/tc-hppa.c:2267
+#: config/tc-hppa.c:2287 config/tc-hppa.c:2294
msgid "Invalid permutation completer"
msgstr ""
-#: config/tc-hppa.c:2368
+#: config/tc-hppa.c:2395
#, c-format
msgid "Invalid Add Condition: %s"
msgstr ""
-#: config/tc-hppa.c:2379 config/tc-hppa.c:2389
+#: config/tc-hppa.c:2406 config/tc-hppa.c:2416
#, c-format
msgid "Invalid Add and Branch Condition: %c"
msgstr ""
-#: config/tc-hppa.c:2410
+#: config/tc-hppa.c:2437
msgid "Invalid Compare/Subtract Condition"
msgstr ""
-#: config/tc-hppa.c:2450
+#: config/tc-hppa.c:2477
#, c-format
msgid "Invalid Bit Branch Condition: %c"
msgstr ""
-#: config/tc-hppa.c:2536
+#: config/tc-hppa.c:2563
#, c-format
msgid "Invalid Compare/Subtract Condition: %s"
msgstr ""
-#: config/tc-hppa.c:2548
+#: config/tc-hppa.c:2575
#, c-format
msgid "Invalid Compare/Subtract Condition: %c"
msgstr ""
-#: config/tc-hppa.c:2563
+#: config/tc-hppa.c:2590
msgid "Invalid Compare and Branch Condition."
msgstr ""
-#: config/tc-hppa.c:2659
+#: config/tc-hppa.c:2686
msgid "Invalid Logical Instruction Condition."
msgstr ""
-#: config/tc-hppa.c:2714
+#: config/tc-hppa.c:2741
msgid "Invalid Shift/Extract/Deposit Condition."
msgstr ""
-#: config/tc-hppa.c:2826
+#: config/tc-hppa.c:2853
msgid "Invalid Unit Instruction Condition."
msgstr ""
-#: config/tc-hppa.c:3174 config/tc-hppa.c:3205 config/tc-hppa.c:3238
-#: config/tc-hppa.c:3270
+#: config/tc-hppa.c:3230 config/tc-hppa.c:3262 config/tc-hppa.c:3293
+#: config/tc-hppa.c:3323
msgid "Branch to unaligned address"
msgstr ""
-#: config/tc-hppa.c:3450
+#: config/tc-hppa.c:3501
msgid "Invalid SFU identifier"
msgstr ""
-#: config/tc-hppa.c:3500
+#: config/tc-hppa.c:3551
msgid "Invalid COPR identifier"
msgstr ""
-#: config/tc-hppa.c:3629
+#: config/tc-hppa.c:3680
msgid "Invalid Floating Point Operand Format."
msgstr ""
-#: config/tc-hppa.c:3746 config/tc-hppa.c:3766 config/tc-hppa.c:3786
-#: config/tc-hppa.c:3806 config/tc-hppa.c:3826
+#: config/tc-hppa.c:3797 config/tc-hppa.c:3817 config/tc-hppa.c:3837
+#: config/tc-hppa.c:3857 config/tc-hppa.c:3877
msgid "Invalid register for single precision fmpyadd or fmpysub"
msgstr ""
-#: config/tc-hppa.c:3883
+#: config/tc-hppa.c:3934
#, c-format
msgid "Invalid operands %s"
msgstr ""
-#: config/tc-hppa.c:4001
+#: config/tc-hppa.c:4052
#, c-format
msgid "Cannot handle fixup at %s:%d"
msgstr ""
-#: config/tc-hppa.c:4296
+#: config/tc-hppa.c:4353
msgid " -Q ignored\n"
msgstr ""
-#: config/tc-hppa.c:4300
+#: config/tc-hppa.c:4357
msgid " -c print a warning if a comment is found\n"
msgstr ""
-#: config/tc-hppa.c:4366
+#: config/tc-hppa.c:4423
#, c-format
msgid "no hppa_fixup entry for fixup type 0x%x at %s:%d"
msgstr ""
-#: config/tc-hppa.c:4533
+#: config/tc-hppa.c:4590
msgid "Unknown relocation encountered in md_apply_fix."
msgstr ""
-#: config/tc-hppa.c:4676 config/tc-hppa.c:4701
+#: config/tc-hppa.c:4733 config/tc-hppa.c:4758
#, c-format
msgid "Undefined register: '%s'."
msgstr ""
-#: config/tc-hppa.c:4735
+#: config/tc-hppa.c:4792
#, c-format
msgid "Non-absolute symbol: '%s'."
msgstr ""
-#: config/tc-hppa.c:4750
+#: config/tc-hppa.c:4807
#, c-format
msgid "Undefined absolute constant: '%s'."
msgstr ""
-#: config/tc-hppa.c:4851
+#: config/tc-hppa.c:4908
#, c-format
msgid "Invalid FP Compare Condition: %s"
msgstr ""
-#: config/tc-hppa.c:4907
+#: config/tc-hppa.c:4964
#, c-format
msgid "Invalid FTEST completer: %s"
msgstr ""
-#: config/tc-hppa.c:4974 config/tc-hppa.c:5012
+#: config/tc-hppa.c:5031 config/tc-hppa.c:5069
#, c-format
msgid "Invalid FP Operand Format: %3s"
msgstr ""
-#: config/tc-hppa.c:5091
+#: config/tc-hppa.c:5148
msgid "Bad segment in expression."
msgstr ""
-#: config/tc-hppa.c:5150
+#: config/tc-hppa.c:5207
msgid "Bad segment (should be absolute)."
msgstr ""
-#: config/tc-hppa.c:5193
+#: config/tc-hppa.c:5250
#, c-format
msgid "Invalid argument location: %s\n"
msgstr ""
-#: config/tc-hppa.c:5224
+#: config/tc-hppa.c:5281
#, c-format
msgid "Invalid argument description: %d"
msgstr ""
-#: config/tc-hppa.c:5247
+#: config/tc-hppa.c:5304
#, c-format
msgid "Invalid Nullification: (%c)"
msgstr ""
-#: config/tc-hppa.c:5983
+#: config/tc-hppa.c:6040
#, c-format
msgid "Invalid .CALL argument: %s"
msgstr ""
-#: config/tc-hppa.c:6114
+#: config/tc-hppa.c:6162
msgid ".callinfo is not within a procedure definition"
msgstr ""
-#: config/tc-hppa.c:6134
+#: config/tc-hppa.c:6182
#, c-format
msgid "FRAME parameter must be a multiple of 8: %d\n"
msgstr ""
-#: config/tc-hppa.c:6153
+#: config/tc-hppa.c:6201
msgid "Value for ENTRY_GR must be in the range 3..18\n"
msgstr ""
-#: config/tc-hppa.c:6165
+#: config/tc-hppa.c:6213
msgid "Value for ENTRY_FR must be in the range 12..21\n"
msgstr ""
-#: config/tc-hppa.c:6175
+#: config/tc-hppa.c:6223
msgid "Value for ENTRY_SR must be 3\n"
msgstr ""
-#: config/tc-hppa.c:6231
+#: config/tc-hppa.c:6279
#, c-format
msgid "Invalid .CALLINFO argument: %s"
msgstr ""
-#: config/tc-hppa.c:6342
+#: config/tc-hppa.c:6390
msgid "The .ENTER pseudo-op is not supported"
msgstr ""
-#: config/tc-hppa.c:6358
+#: config/tc-hppa.c:6406
msgid "Misplaced .entry. Ignored."
msgstr ""
-#: config/tc-hppa.c:6362
+#: config/tc-hppa.c:6410
msgid "Missing .callinfo."
msgstr ""
-#: config/tc-hppa.c:6426
+#: config/tc-hppa.c:6476
msgid ".REG expression must be a register"
msgstr ""
-#: config/tc-hppa.c:6442 read.c:4728
+#: config/tc-hppa.c:6492 read.c:4728
msgid "bad or irreducible absolute expression; zero assumed"
msgstr ""
-#: config/tc-hppa.c:6453
+#: config/tc-hppa.c:6503
msgid ".REG must use a label"
msgstr ""
-#: config/tc-hppa.c:6455
+#: config/tc-hppa.c:6505
msgid ".EQU must use a label"
msgstr ""
-#: config/tc-hppa.c:6508
+#: config/tc-hppa.c:6558
msgid ".EXIT must appear within a procedure"
msgstr ""
-#: config/tc-hppa.c:6512
+#: config/tc-hppa.c:6562
msgid "Missing .callinfo"
msgstr ""
-#: config/tc-hppa.c:6516
+#: config/tc-hppa.c:6566
msgid "No .ENTRY for this .EXIT"
msgstr ""
-#: config/tc-hppa.c:6543
+#: config/tc-hppa.c:6593
#, c-format
msgid "Cannot define export symbol: %s\n"
msgstr ""
-#: config/tc-hppa.c:6601
+#: config/tc-hppa.c:6651
#, c-format
msgid "Using ENTRY rather than CODE in export directive for %s"
msgstr ""
-#: config/tc-hppa.c:6718
+#: config/tc-hppa.c:6768
#, c-format
msgid "Undefined .EXPORT/.IMPORT argument (ignored): %s"
msgstr ""
-#: config/tc-hppa.c:6800
+#: config/tc-hppa.c:6850
msgid "Missing label name on .LABEL"
msgstr ""
-#: config/tc-hppa.c:6805
+#: config/tc-hppa.c:6855
msgid "extra .LABEL arguments ignored."
msgstr ""
-#: config/tc-hppa.c:6822
+#: config/tc-hppa.c:6872
msgid "The .LEAVE pseudo-op is not supported"
msgstr ""
-#: config/tc-hppa.c:6861
+#: config/tc-hppa.c:6911
msgid "Unrecognized .LEVEL argument\n"
msgstr ""
-#: config/tc-hppa.c:6897
+#: config/tc-hppa.c:6947
#, c-format
msgid "Cannot define static symbol: %s\n"
msgstr ""
-#: config/tc-hppa.c:6932
+#: config/tc-hppa.c:6982
msgid "Nested procedures"
msgstr ""
-#: config/tc-hppa.c:6942
+#: config/tc-hppa.c:6992
msgid "Cannot allocate unwind descriptor\n"
msgstr ""
-#: config/tc-hppa.c:7040
+#: config/tc-hppa.c:7092
msgid "misplaced .procend"
msgstr ""
-#: config/tc-hppa.c:7043
+#: config/tc-hppa.c:7095
msgid "Missing .callinfo for this procedure"
msgstr ""
-#: config/tc-hppa.c:7046
+#: config/tc-hppa.c:7098
msgid "Missing .EXIT for a .ENTRY"
msgstr ""
-#: config/tc-hppa.c:7084
+#: config/tc-hppa.c:7136
msgid "Not in a space.\n"
msgstr ""
-#: config/tc-hppa.c:7087
+#: config/tc-hppa.c:7139
msgid "Not in a subspace.\n"
msgstr ""
-#: config/tc-hppa.c:7178
+#: config/tc-hppa.c:7230
msgid "Invalid .SPACE argument"
msgstr ""
-#: config/tc-hppa.c:7225
+#: config/tc-hppa.c:7277
msgid "Can't change spaces within a procedure definition. Ignored"
msgstr ""
-#: config/tc-hppa.c:7354
+#: config/tc-hppa.c:7406
#, c-format
msgid "Undefined space: '%s' Assuming space number = 0."
msgstr ""
-#: config/tc-hppa.c:7378
+#: config/tc-hppa.c:7430
msgid "Must be in a space before changing or declaring subspaces.\n"
msgstr ""
-#: config/tc-hppa.c:7382
+#: config/tc-hppa.c:7434
msgid "Can't change subspaces within a procedure definition. Ignored"
msgstr ""
-#: config/tc-hppa.c:7417
+#: config/tc-hppa.c:7469
msgid "Parameters of an existing subspace can't be modified"
msgstr ""
-#: config/tc-hppa.c:7468
+#: config/tc-hppa.c:7520
msgid "Alignment must be a power of 2"
msgstr ""
-#: config/tc-hppa.c:7510
+#: config/tc-hppa.c:7562
msgid "FIRST not supported as a .SUBSPACE argument"
msgstr ""
-#: config/tc-hppa.c:7512
+#: config/tc-hppa.c:7564
msgid "Invalid .SUBSPACE argument"
msgstr ""
-#: config/tc-hppa.c:7692
+#: config/tc-hppa.c:7744
#, c-format
msgid "Internal error: Unable to find containing space for %s."
msgstr ""
-#: config/tc-hppa.c:7731
+#: config/tc-hppa.c:7783
#, c-format
msgid "Out of memory: could not allocate new space chain entry: %s\n"
msgstr ""
-#: config/tc-hppa.c:7817
+#: config/tc-hppa.c:7869
#, c-format
msgid "Out of memory: could not allocate new subspace chain entry: %s\n"
msgstr ""
-#: config/tc-hppa.c:8511
+#: config/tc-hppa.c:8563
#, c-format
msgid "Symbol '%s' could not be created."
msgstr ""
-#: config/tc-hppa.c:8515
+#: config/tc-hppa.c:8567
msgid "No memory for symbol name."
msgstr ""
@@ -3267,314 +3269,317 @@ msgstr ""
msgid "missing cpu architecture"
msgstr ""
-#: config/tc-i386.c:812 config/tc-i386.c:835 config/tc-m68k.c:3802
+#: config/tc-i386.c:790 config/tc-i386.c:4492
+msgid "Unknown architecture"
+msgstr ""
+
+#: config/tc-i386.c:825 config/tc-i386.c:848 config/tc-m68k.c:3812
#, c-format
msgid "Internal Error: Can't hash %s: %s"
msgstr ""
-#: config/tc-i386.c:1088
+#: config/tc-i386.c:1101
msgid "There are no unsigned pc-relative relocations"
msgstr ""
-#: config/tc-i386.c:1095 config/tc-i386.c:4622
+#: config/tc-i386.c:1108 config/tc-i386.c:4639
#, c-format
msgid "can not do %d byte pc-relative relocation"
msgstr ""
-#: config/tc-i386.c:1112
+#: config/tc-i386.c:1125
#, c-format
msgid "can not do %s %d byte relocation"
msgstr ""
-#: config/tc-i386.c:1221 config/tc-i386.c:1314
+#: config/tc-i386.c:1234 config/tc-i386.c:1327
#, c-format
msgid "no such instruction: `%s'"
msgstr ""
-#: config/tc-i386.c:1230
+#: config/tc-i386.c:1243
#, c-format
msgid "invalid character %s in mnemonic"
msgstr ""
-#: config/tc-i386.c:1237
+#: config/tc-i386.c:1250
msgid "expecting prefix; got nothing"
msgstr ""
-#: config/tc-i386.c:1239
+#: config/tc-i386.c:1252
msgid "expecting mnemonic; got nothing"
msgstr ""
-#: config/tc-i386.c:1257
+#: config/tc-i386.c:1270
#, c-format
msgid "redundant %s prefix"
msgstr ""
-#: config/tc-i386.c:1325
+#: config/tc-i386.c:1338
#, c-format
msgid "`%s' is not supported on `%s'"
msgstr ""
-#: config/tc-i386.c:1330
+#: config/tc-i386.c:1343
msgid "use .code16 to ensure correct addressing mode"
msgstr ""
-#: config/tc-i386.c:1338
+#: config/tc-i386.c:1351
#, c-format
msgid "expecting string instruction after `%s'"
msgstr ""
-#: config/tc-i386.c:1359
+#: config/tc-i386.c:1372
#, c-format
msgid "invalid character %s before operand %d"
msgstr ""
-#: config/tc-i386.c:1373
+#: config/tc-i386.c:1386
#, c-format
msgid "unbalanced parenthesis in operand %d."
msgstr ""
-#: config/tc-i386.c:1376
+#: config/tc-i386.c:1389
#, c-format
msgid "unbalanced brackets in operand %d."
msgstr ""
-#: config/tc-i386.c:1385
+#: config/tc-i386.c:1398
#, c-format
msgid "invalid character %s in operand %d"
msgstr ""
-#: config/tc-i386.c:1412
+#: config/tc-i386.c:1425
#, c-format
msgid "spurious operands; (%d operands/instruction max)"
msgstr ""
-#: config/tc-i386.c:1435
+#: config/tc-i386.c:1448
msgid "expecting operand after ','; got nothing"
msgstr ""
-#: config/tc-i386.c:1440
+#: config/tc-i386.c:1453
msgid "expecting operand before ','; got nothing"
msgstr ""
#. We found no match.
-#: config/tc-i386.c:1782
+#: config/tc-i386.c:1801
#, c-format
msgid "suffix or operands invalid for `%s'"
msgstr ""
-#: config/tc-i386.c:1793
+#: config/tc-i386.c:1812
#, 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:1801
+#: config/tc-i386.c:1820
#, c-format
msgid "stand-alone `%s' prefix"
msgstr ""
-#: config/tc-i386.c:1837 config/tc-i386.c:1852
+#: config/tc-i386.c:1856 config/tc-i386.c:1871
msgid "`%s' operand %d must use `%%es' segment"
msgstr ""
-#: config/tc-i386.c:1867
+#: config/tc-i386.c:1886
msgid "Extended register `%%%s' available only in 64bit mode."
msgstr ""
#. Prohibit these changes in the 64bit mode, since
#. the lowering is more complicated.
-#: config/tc-i386.c:1938 config/tc-i386.c:1989 config/tc-i386.c:2004
-#: config/tc-i386.c:2032 config/tc-i386.c:2060
+#: config/tc-i386.c:1957 config/tc-i386.c:2008 config/tc-i386.c:2023
+#: config/tc-i386.c:2051 config/tc-i386.c:2079
msgid "Incorrect register `%%%s' used with`%c' suffix"
msgstr ""
-#: config/tc-i386.c:1944 config/tc-i386.c:1994 config/tc-i386.c:2065
+#: config/tc-i386.c:1963 config/tc-i386.c:2013 config/tc-i386.c:2084
msgid "using `%%%s' instead of `%%%s' due to `%c' suffix"
msgstr ""
-#: config/tc-i386.c:1957 config/tc-i386.c:1975 config/tc-i386.c:2019
-#: config/tc-i386.c:2046
+#: config/tc-i386.c:1976 config/tc-i386.c:1994 config/tc-i386.c:2038
+#: config/tc-i386.c:2065
msgid "`%%%s' not allowed with `%s%c'"
msgstr ""
-#: config/tc-i386.c:2106
+#: config/tc-i386.c:2125
msgid "no instruction mnemonic suffix given; can't determine immediate size"
msgstr ""
-#: config/tc-i386.c:2132
+#: config/tc-i386.c:2151
#, c-format
msgid ""
"no instruction mnemonic suffix given; can't determine immediate size %x %c"
msgstr ""
-#: config/tc-i386.c:2157
+#: config/tc-i386.c:2176
msgid ""
"no instruction mnemonic suffix given and no register operands; can't size "
"instruction"
msgstr ""
-#: config/tc-i386.c:2205
+#: config/tc-i386.c:2224
msgid "64bit operations available only in 64bit modes."
msgstr ""
#. Reversed arguments on faddp, fsubp, etc.
-#: config/tc-i386.c:2273
+#: config/tc-i386.c:2292
msgid "translating to `%s %%%s,%%%s'"
msgstr ""
#. Extraneous `l' suffix on fp insn.
-#: config/tc-i386.c:2280
+#: config/tc-i386.c:2299
msgid "translating to `%s %%%s'"
msgstr ""
-#: config/tc-i386.c:2551
+#: config/tc-i386.c:2572
msgid "you can't `pop %%cs'"
msgstr ""
#. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.
-#: config/tc-i386.c:2584
+#: config/tc-i386.c:2605
#, c-format
msgid "translating to `%sp'"
msgstr ""
-#: config/tc-i386.c:2627
+#: config/tc-i386.c:2648
msgid ""
"Can't encode registers '%%%s' in the instruction requiring REX prefix.\n"
msgstr ""
-#: config/tc-i386.c:2679 config/tc-i386.c:2751 config/tc-i386.c:2798
+#: config/tc-i386.c:2700 config/tc-i386.c:2772 config/tc-i386.c:2819
msgid "skipping prefixes on this instruction"
msgstr ""
-#: config/tc-i386.c:2819
+#: config/tc-i386.c:2840
msgid "16-bit jump out of range"
msgstr ""
-#: config/tc-i386.c:2828
+#: config/tc-i386.c:2849
#, c-format
msgid "can't handle non absolute segment in `%s'"
msgstr ""
-#: config/tc-i386.c:3085
+#: config/tc-i386.c:3106
msgid "only 1 or 2 immediate operands are allowed"
msgstr ""
-#: config/tc-i386.c:3115 config/tc-i386.c:3353
+#: config/tc-i386.c:3136 config/tc-i386.c:3374
msgid "GOT relocations not supported in 16 bit mode"
msgstr ""
-#: config/tc-i386.c:3152 config/tc-i386.c:3389
+#: config/tc-i386.c:3173 config/tc-i386.c:3410
msgid "bad reloc specifier in expression"
msgstr ""
-#: config/tc-i386.c:3170 config/tc-i386.c:3424
+#: config/tc-i386.c:3191 config/tc-i386.c:3445
#, c-format
msgid "ignoring junk `%s' after expression"
msgstr ""
#. Missing or bad expr becomes absolute 0.
-#: config/tc-i386.c:3177
+#: config/tc-i386.c:3198
#, c-format
msgid "missing or invalid immediate expression `%s' taken as 0"
msgstr ""
-#: config/tc-i386.c:3208 config/tc-i386.c:3454
+#: config/tc-i386.c:3229 config/tc-i386.c:3475
#, c-format
msgid "unimplemented segment %s in operand"
msgstr ""
-#: config/tc-i386.c:3210 config/tc-i386.c:3456
+#: config/tc-i386.c:3231 config/tc-i386.c:3477
#, c-format
msgid "unimplemented segment type %d in operand"
msgstr ""
-#: config/tc-i386.c:3252 config/tc-i386.c:5392
+#: config/tc-i386.c:3273 config/tc-i386.c:5407
#, c-format
msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'"
msgstr ""
-#: config/tc-i386.c:3258
+#: config/tc-i386.c:3279
#, c-format
msgid "scale factor of %d without an index register"
msgstr ""
#. Missing or bad expr becomes absolute 0.
-#: config/tc-i386.c:3435
+#: config/tc-i386.c:3456
#, c-format
msgid "missing or invalid displacement expression `%s' taken as 0"
msgstr ""
-#: config/tc-i386.c:3541
+#: config/tc-i386.c:3562
#, c-format
msgid "`%s' is not a valid base/index expression"
msgstr ""
-#: config/tc-i386.c:3545
+#: config/tc-i386.c:3566
#, c-format
msgid "`%s' is not a valid %s bit base/index expression"
msgstr ""
-#: config/tc-i386.c:3620
+#: config/tc-i386.c:3641
#, c-format
msgid "bad memory operand `%s'"
msgstr ""
-#: config/tc-i386.c:3635
+#: config/tc-i386.c:3656
#, c-format
msgid "junk `%s' after register"
msgstr ""
-#: config/tc-i386.c:3644 config/tc-i386.c:3759 config/tc-i386.c:3795
+#: config/tc-i386.c:3665 config/tc-i386.c:3780 config/tc-i386.c:3816
#, c-format
msgid "bad register name `%s'"
msgstr ""
-#: config/tc-i386.c:3652
+#: config/tc-i386.c:3673
msgid "immediate operand illegal with absolute jump"
msgstr ""
-#: config/tc-i386.c:3674
+#: config/tc-i386.c:3695
#, c-format
msgid "too many memory references for `%s'"
msgstr ""
-#: config/tc-i386.c:3752
+#: config/tc-i386.c:3773
#, c-format
msgid "expecting `,' or `)' after index register in `%s'"
msgstr ""
-#: config/tc-i386.c:3774
+#: config/tc-i386.c:3795
#, c-format
msgid "expecting `)' after scale factor in `%s'"
msgstr ""
-#: config/tc-i386.c:3781
+#: config/tc-i386.c:3802
#, c-format
msgid "expecting index register or scale factor after `,'; got '%c'"
msgstr ""
-#: config/tc-i386.c:3788
+#: config/tc-i386.c:3809
#, c-format
msgid "expecting `,' or `)' after base register in `%s'"
msgstr ""
#. It's not a memory operand; argh!
-#: config/tc-i386.c:3829
+#: config/tc-i386.c:3850
#, c-format
msgid "invalid char %s beginning operand %d `%s'"
msgstr ""
-#: config/tc-i386.c:4267
+#: config/tc-i386.c:4288
msgid "Bad call to md_atof ()"
msgstr ""
-#: config/tc-i386.c:4431 config/tc-sparc.c:548
-#, c-format
-msgid "No compiled in support for %d bit object file format"
+#: config/tc-i386.c:4445
+msgid "No compiled in support for x86_64"
msgstr ""
-#: config/tc-i386.c:4449
+#: config/tc-i386.c:4466
msgid ""
" -Q ignored\n"
" -V print assembler version number\n"
@@ -3583,67 +3588,63 @@ msgid ""
" -s ignored\n"
msgstr ""
-#: config/tc-i386.c:4456
+#: config/tc-i386.c:4473
msgid " -q quieten some warnings\n"
msgstr ""
-#: config/tc-i386.c:4475
-msgid "Unknown architecture"
-msgstr ""
-
-#: config/tc-i386.c:4515
+#: config/tc-i386.c:4532 config/tc-s390.c:1446
msgid "GOT already in symbol table"
msgstr ""
-#: config/tc-i386.c:4636
+#: config/tc-i386.c:4653
#, c-format
msgid "can not do %d byte relocation"
msgstr ""
-#: config/tc-i386.c:4697
+#: config/tc-i386.c:4713 config/tc-s390.c:1746
#, c-format
msgid "cannot represent relocation type %s"
msgstr ""
-#: config/tc-i386.c:4994
+#: config/tc-i386.c:5009
#, c-format
msgid "too many memory references for '%s'"
msgstr ""
-#: config/tc-i386.c:5157
+#: config/tc-i386.c:5172
#, c-format
msgid "Unknown operand modifier `%s'\n"
msgstr ""
-#: config/tc-i386.c:5364
+#: config/tc-i386.c:5379
#, c-format
msgid "`%s' is not a valid segment register"
msgstr ""
-#: config/tc-i386.c:5374 config/tc-i386.c:5495
+#: config/tc-i386.c:5389 config/tc-i386.c:5510
msgid "Register scaling only allowed in memory operands."
msgstr ""
-#: config/tc-i386.c:5405
+#: config/tc-i386.c:5420
msgid "Too many register references in memory operand.\n"
msgstr ""
-#: config/tc-i386.c:5474
+#: config/tc-i386.c:5489
#, c-format
msgid "Syntax error. Expecting a constant. Got `%s'.\n"
msgstr ""
-#: config/tc-i386.c:5544
+#: config/tc-i386.c:5559
#, c-format
msgid "Unrecognized token '%s'"
msgstr ""
-#: config/tc-i386.c:5561
+#: config/tc-i386.c:5576
#, c-format
msgid "Unexpected token `%s'\n"
msgstr ""
-#: config/tc-i386.c:5705
+#: config/tc-i386.c:5720
#, c-format
msgid "Unrecognized token `%s'\n"
msgstr ""
@@ -3900,106 +3901,110 @@ msgstr ""
msgid "ignoring unrecognized .endian type `%s'"
msgstr ""
-#: config/tc-i960.c:3064
+#: config/tc-i960.c:3063
#, c-format
msgid "leafproc symbol '%s' undefined"
msgstr ""
-#: config/tc-i960.c:3074
+#: config/tc-i960.c:3073
#, c-format
msgid "Warning: making leafproc entries %s and %s both global\n"
msgstr ""
-#: config/tc-i960.c:3183
+#: config/tc-i960.c:3182
msgid "option --link-relax is only supported in b.out format"
msgstr ""
-#: config/tc-i960.c:3226
+#: config/tc-i960.c:3225
msgid "callj to difference of two symbols"
msgstr ""
-#: config/tc-ia64.c:4077
+#: config/tc-ia64.c:952
+msgid "Unwind directive not followed by an instruction."
+msgstr ""
+
+#: config/tc-ia64.c:4094
msgid "Register name expected"
msgstr ""
-#: config/tc-ia64.c:4082 config/tc-ia64.c:4368
+#: config/tc-ia64.c:4099 config/tc-ia64.c:4385
msgid "Comma expected"
msgstr ""
-#: config/tc-ia64.c:4090
+#: config/tc-ia64.c:4107
msgid "Register value annotation ignored"
msgstr ""
-#: config/tc-ia64.c:4114
+#: config/tc-ia64.c:4131
msgid "Directive invalid within a bundle"
msgstr ""
-#: config/tc-ia64.c:4181
+#: config/tc-ia64.c:4198
msgid "Missing predicate relation type"
msgstr ""
-#: config/tc-ia64.c:4197
+#: config/tc-ia64.c:4214
msgid "Unrecognized predicate relation type"
msgstr ""
-#: config/tc-ia64.c:4217 config/tc-ia64.c:4242
+#: config/tc-ia64.c:4234 config/tc-ia64.c:4259
msgid "Predicate register expected"
msgstr ""
-#: config/tc-ia64.c:4229
+#: config/tc-ia64.c:4246
msgid "Duplicate predicate register ignored"
msgstr ""
-#: config/tc-ia64.c:4251
+#: config/tc-ia64.c:4268
msgid "Bad register range"
msgstr ""
-#: config/tc-ia64.c:4279
+#: config/tc-ia64.c:4296
msgid "Predicate source and target required"
msgstr ""
-#: config/tc-ia64.c:4281 config/tc-ia64.c:4293
+#: config/tc-ia64.c:4298 config/tc-ia64.c:4310
msgid "Use of p0 is not valid in this context"
msgstr ""
-#: config/tc-ia64.c:4288
+#: config/tc-ia64.c:4305
msgid "At least two PR arguments expected"
msgstr ""
-#: config/tc-ia64.c:4302
+#: config/tc-ia64.c:4319
msgid "At least one PR argument expected"
msgstr ""
-#: config/tc-ia64.c:4338
+#: config/tc-ia64.c:4355
#, c-format
msgid "Inserting \"%s\" into entry hint table failed: %s"
msgstr ""
#. FIXME -- need 62-bit relocation type
-#: config/tc-ia64.c:4758
+#: config/tc-ia64.c:4775
msgid "62-bit relocation not yet implemented"
msgstr ""
-#: config/tc-ia64.c:4820
+#: config/tc-ia64.c:4837
msgid "lower 16 bits of mask ignored"
msgstr ""
-#: config/tc-ia64.c:5317
+#: config/tc-ia64.c:5337
msgid "Value truncated to 62 bits"
msgstr ""
-#: config/tc-ia64.c:5668
+#: config/tc-ia64.c:5688
msgid ""
"Additional NOP may be necessary to workaround Itanium processor A/B step "
"errata"
msgstr ""
-#: config/tc-ia64.c:5849
+#: config/tc-ia64.c:5870
#, c-format
msgid "Unrecognized option '-x%s'"
msgstr ""
-#: config/tc-ia64.c:5877
+#: config/tc-ia64.c:5898
msgid ""
"IA-64 options:\n"
" -milp32|-milp64|-mlp64|-mp64\tselect data model (default -mlp64)\n"
@@ -4009,33 +4014,33 @@ msgid ""
" -xdebug\t\t debug dependency violation checker\n"
msgstr ""
-#: config/tc-ia64.c:6147 config/tc-mips.c:1014
+#: config/tc-ia64.c:6168 config/tc-mips.c:1014
msgid "Could not set architecture and machine"
msgstr ""
-#: config/tc-ia64.c:6223
+#: config/tc-ia64.c:6244
msgid "Explicit stops are ignored in auto mode"
msgstr ""
-#: config/tc-ia64.c:6273
+#: config/tc-ia64.c:6294
msgid "Found '{' after explicit switch to automatic mode"
msgstr ""
-#: config/tc-ia64.c:6686
+#: config/tc-ia64.c:6707
#, c-format
msgid "Unhandled dependency %s for %s (%s), note %d"
msgstr ""
-#: config/tc-ia64.c:7962
+#: config/tc-ia64.c:7983
#, c-format
msgid "Unrecognized dependency specifier %d\n"
msgstr ""
-#: config/tc-ia64.c:8753
+#: config/tc-ia64.c:8774
msgid "Only the first path encountering the conflict is reported"
msgstr ""
-#: config/tc-ia64.c:8756
+#: config/tc-ia64.c:8777
msgid "This is the location of the conflicting usage"
msgstr ""
@@ -4115,82 +4120,82 @@ msgstr ""
msgid " -cpu-desc provide runtime cpu description file\n"
msgstr ""
-#: config/tc-m32r.c:688
+#: config/tc-m32r.c:689
msgid "Instructions write to the same destination register."
msgstr ""
-#: config/tc-m32r.c:696
+#: config/tc-m32r.c:697
msgid "Instructions do not use parallel execution pipelines."
msgstr ""
-#: config/tc-m32r.c:703
+#: config/tc-m32r.c:704
msgid "Instructions share the same execution pipeline"
msgstr ""
-#: config/tc-m32r.c:773 config/tc-m32r.c:870
+#: config/tc-m32r.c:774 config/tc-m32r.c:871
#, c-format
msgid "not a 16 bit instruction '%s'"
msgstr ""
-#: config/tc-m32r.c:780 config/tc-m32r.c:877 config/tc-m32r.c:1033
+#: config/tc-m32r.c:781 config/tc-m32r.c:878 config/tc-m32r.c:1034
#, c-format
msgid "unknown instruction '%s'"
msgstr ""
-#: config/tc-m32r.c:789 config/tc-m32r.c:884 config/tc-m32r.c:1040
+#: config/tc-m32r.c:790 config/tc-m32r.c:885 config/tc-m32r.c:1041
#, c-format
msgid "instruction '%s' is for the M32RX only"
msgstr ""
-#: config/tc-m32r.c:798 config/tc-m32r.c:893
+#: config/tc-m32r.c:799 config/tc-m32r.c:894
#, c-format
msgid "instruction '%s' cannot be executed in parallel."
msgstr ""
-#: config/tc-m32r.c:854 config/tc-m32r.c:918 config/tc-m32r.c:1090
+#: config/tc-m32r.c:855 config/tc-m32r.c:919 config/tc-m32r.c:1091
msgid "internal error: lookup/get operands failed"
msgstr ""
-#: config/tc-m32r.c:903
+#: config/tc-m32r.c:904
#, c-format
msgid "'%s': only the NOP instruction can be issued in parallel on the m32r"
msgstr ""
-#: config/tc-m32r.c:932
+#: config/tc-m32r.c:933
#, c-format
msgid ""
"%s: output of 1st instruction is the same as an input to 2nd instruction - "
"is this intentional ?"
msgstr ""
-#: config/tc-m32r.c:936
+#: config/tc-m32r.c:937
#, c-format
msgid ""
"%s: output of 2nd instruction is the same as an input to 1st instruction - "
"is this intentional ?"
msgstr ""
-#: config/tc-m32r.c:1250 config/tc-ppc.c:1459 config/tc-ppc.c:3681 read.c:1358
+#: config/tc-m32r.c:1251 config/tc-ppc.c:1459 config/tc-ppc.c:3681 read.c:1358
msgid "Expected comma after symbol-name: rest of line ignored."
msgstr ""
-#: config/tc-m32r.c:1260
+#: config/tc-m32r.c:1261
#, c-format
msgid ".SCOMMon length (%ld.) <0! Ignored."
msgstr ""
-#: config/tc-m32r.c:1274 config/tc-ppc.c:1481 config/tc-ppc.c:2392
+#: config/tc-m32r.c:1275 config/tc-ppc.c:1481 config/tc-ppc.c:2392
#: config/tc-ppc.c:3705
msgid "ignoring bad alignment"
msgstr ""
-#: config/tc-m32r.c:1301 config/tc-ppc.c:1492 config/tc-ppc.c:3717 read.c:1382
+#: config/tc-m32r.c:1302 config/tc-ppc.c:1492 config/tc-ppc.c:3717 read.c:1382
#: read.c:2108
#, c-format
msgid "Ignoring attempt to re-define symbol `%s'."
msgstr ""
-#: config/tc-m32r.c:1310
+#: config/tc-m32r.c:1311
#, c-format
msgid "Length of .scomm \"%s\" is already %ld. Not changed to %ld."
msgstr ""
@@ -4199,7 +4204,7 @@ msgstr ""
msgid "Unmatched high/shigh reloc"
msgstr ""
-#: config/tc-m68hc11.c:305
+#: config/tc-m68hc11.c:308
#, c-format
msgid ""
"Motorola 68HC11/68HC12 options:\n"
@@ -4215,55 +4220,55 @@ msgid ""
" (used for testing)\n"
msgstr ""
-#: config/tc-m68hc11.c:346
+#: config/tc-m68hc11.c:349
#, c-format
msgid "Default target `%s' is not supported."
msgstr ""
#. Dump the opcode statistics table.
-#: config/tc-m68hc11.c:365
+#: config/tc-m68hc11.c:368
msgid "Name # Modes Min ops Max ops Modes mask # Used\n"
msgstr ""
-#: config/tc-m68hc11.c:415
+#: config/tc-m68hc11.c:418
#, c-format
msgid "Option `%s' is not recognized."
msgstr ""
-#: config/tc-m68hc11.c:636
+#: config/tc-m68hc11.c:639
msgid "#<imm8>"
msgstr ""
-#: config/tc-m68hc11.c:645
+#: config/tc-m68hc11.c:648
msgid "#<imm16>"
msgstr ""
-#: config/tc-m68hc11.c:654 config/tc-m68hc11.c:663
+#: config/tc-m68hc11.c:657 config/tc-m68hc11.c:666
msgid "<imm8>,X"
msgstr ""
-#: config/tc-m68hc11.c:681
+#: config/tc-m68hc11.c:684
msgid "*<abs8>"
msgstr ""
-#: config/tc-m68hc11.c:693
+#: config/tc-m68hc11.c:696
msgid "#<mask>"
msgstr ""
-#: config/tc-m68hc11.c:703
+#: config/tc-m68hc11.c:706
#, c-format
msgid "symbol%d"
msgstr ""
-#: config/tc-m68hc11.c:705
+#: config/tc-m68hc11.c:708
msgid "<abs>"
msgstr ""
-#: config/tc-m68hc11.c:724
+#: config/tc-m68hc11.c:727
msgid "<label>"
msgstr ""
-#: config/tc-m68hc11.c:740
+#: config/tc-m68hc11.c:743
#, c-format
msgid ""
"# Example of `%s' instructions\n"
@@ -4271,243 +4276,243 @@ msgid ""
"_start:\n"
msgstr ""
-#: config/tc-m68hc11.c:788
+#: config/tc-m68hc11.c:791
#, c-format
msgid "Instruction `%s' is not recognized."
msgstr ""
-#: config/tc-m68hc11.c:793
+#: config/tc-m68hc11.c:796
#, c-format
msgid "Instruction formats for `%s':"
msgstr ""
-#: config/tc-m68hc11.c:926
+#: config/tc-m68hc11.c:929
#, c-format
msgid "Immediate operand is not allowed for operand %d."
msgstr ""
-#: config/tc-m68hc11.c:952
+#: config/tc-m68hc11.c:955
msgid "Indirect indexed addressing is not valid for 68HC11."
msgstr ""
-#: config/tc-m68hc11.c:972
+#: config/tc-m68hc11.c:975
msgid "Spurious `,' or bad indirect register addressing mode."
msgstr ""
-#: config/tc-m68hc11.c:988
+#: config/tc-m68hc11.c:991
msgid "Missing second register or offset for indexed-indirect mode."
msgstr ""
-#: config/tc-m68hc11.c:998
+#: config/tc-m68hc11.c:1001
msgid "Missing second register for indexed-indirect mode."
msgstr ""
-#: config/tc-m68hc11.c:1014
+#: config/tc-m68hc11.c:1017
msgid "Missing `]' to close indexed-indirect mode."
msgstr ""
-#: config/tc-m68hc11.c:1058
+#: config/tc-m68hc11.c:1061
msgid "Illegal operand."
msgstr ""
-#: config/tc-m68hc11.c:1063
+#: config/tc-m68hc11.c:1066
msgid "Missing operand."
msgstr ""
-#: config/tc-m68hc11.c:1115
+#: config/tc-m68hc11.c:1118
msgid "Pre-increment mode is not valid for 68HC11"
msgstr ""
-#: config/tc-m68hc11.c:1128
+#: config/tc-m68hc11.c:1131
msgid "Wrong register in register indirect mode."
msgstr ""
-#: config/tc-m68hc11.c:1136
+#: config/tc-m68hc11.c:1139
msgid "Missing `]' to close register indirect operand."
msgstr ""
-#: config/tc-m68hc11.c:1153
+#: config/tc-m68hc11.c:1156
msgid "Post-decrement mode is not valid for 68HC11."
msgstr ""
-#: config/tc-m68hc11.c:1161
+#: config/tc-m68hc11.c:1164
msgid "Post-increment mode is not valid for 68HC11."
msgstr ""
-#: config/tc-m68hc11.c:1178
+#: config/tc-m68hc11.c:1181
msgid "Invalid indexed indirect mode."
msgstr ""
-#: config/tc-m68hc11.c:1272
+#: config/tc-m68hc11.c:1275
#, c-format
msgid "Trap id `%ld' is out of range."
msgstr ""
-#: config/tc-m68hc11.c:1276
+#: config/tc-m68hc11.c:1279
msgid "Trap id must be within [0x30..0x39] or [0x40..0xff]."
msgstr ""
-#: config/tc-m68hc11.c:1283
+#: config/tc-m68hc11.c:1286
#, c-format
msgid "Operand out of 8-bit range: `%ld'."
msgstr ""
-#: config/tc-m68hc11.c:1290
+#: config/tc-m68hc11.c:1293
msgid "The trap id must be a constant."
msgstr ""
-#: config/tc-m68hc11.c:1315
+#: config/tc-m68hc11.c:1318
#, c-format
msgid "Operand `%x' not recognized in fixup8."
msgstr ""
-#: config/tc-m68hc11.c:1335
+#: config/tc-m68hc11.c:1338
#, c-format
msgid "Operand out of 16-bit range: `%ld'."
msgstr ""
-#: config/tc-m68hc11.c:1356
+#: config/tc-m68hc11.c:1359
#, c-format
msgid "Operand `%x' not recognized in fixup16."
msgstr ""
-#: config/tc-m68hc11.c:1374
+#: config/tc-m68hc11.c:1377
#, c-format
msgid "Unexpected branch conversion with `%x'"
msgstr ""
-#: config/tc-m68hc11.c:1463 config/tc-m68hc11.c:1592
+#: config/tc-m68hc11.c:1464 config/tc-m68hc11.c:1591
#, c-format
msgid "Operand out of range for a relative branch: `%ld'"
msgstr ""
-#: config/tc-m68hc11.c:1560
+#: config/tc-m68hc11.c:1559
msgid "Invalid register for dbcc/tbcc instruction."
msgstr ""
-#: config/tc-m68hc11.c:1651
+#: config/tc-m68hc11.c:1650
#, c-format
msgid "Increment/decrement value is out of range: `%ld'."
msgstr ""
-#: config/tc-m68hc11.c:1662
+#: config/tc-m68hc11.c:1661
msgid "Expecting a register."
msgstr ""
-#: config/tc-m68hc11.c:1677
+#: config/tc-m68hc11.c:1676
msgid "Invalid register for post/pre increment."
msgstr ""
-#: config/tc-m68hc11.c:1707
+#: config/tc-m68hc11.c:1706
msgid "Invalid register."
msgstr ""
-#: config/tc-m68hc11.c:1714
+#: config/tc-m68hc11.c:1713
#, c-format
msgid "Offset out of 16-bit range: %ld."
msgstr ""
-#: config/tc-m68hc11.c:1719
+#: config/tc-m68hc11.c:1718
#, c-format
msgid "Offset out of 5-bit range for movw/movb insn: %ld."
msgstr ""
-#: config/tc-m68hc11.c:1774
+#: config/tc-m68hc11.c:1784
msgid "Expecting register D for indexed indirect mode."
msgstr ""
-#: config/tc-m68hc11.c:1776
+#: config/tc-m68hc11.c:1786
msgid "Indexed indirect mode is not allowed for movb/movw."
msgstr ""
-#: config/tc-m68hc11.c:1793
+#: config/tc-m68hc11.c:1803
msgid "Invalid accumulator register."
msgstr ""
-#: config/tc-m68hc11.c:1818
+#: config/tc-m68hc11.c:1828
msgid "Invalid indexed register."
msgstr ""
-#: config/tc-m68hc11.c:1826
+#: config/tc-m68hc11.c:1836
msgid "Addressing mode not implemented yet."
msgstr ""
-#: config/tc-m68hc11.c:1841
+#: config/tc-m68hc11.c:1851
msgid "Invalid source register for this instruction, use 'tfr'."
msgstr ""
-#: config/tc-m68hc11.c:1843
+#: config/tc-m68hc11.c:1853
msgid "Invalid source register."
msgstr ""
-#: config/tc-m68hc11.c:1848
+#: config/tc-m68hc11.c:1858
msgid "Invalid destination register for this instruction, use 'tfr'."
msgstr ""
-#: config/tc-m68hc11.c:1850
+#: config/tc-m68hc11.c:1860
msgid "Invalid destination register."
msgstr ""
-#: config/tc-m68hc11.c:1939
+#: config/tc-m68hc11.c:1945
msgid "Invalid indexed register, expecting register X."
msgstr ""
-#: config/tc-m68hc11.c:1941
+#: config/tc-m68hc11.c:1947
msgid "Invalid indexed register, expecting register Y."
msgstr ""
-#: config/tc-m68hc11.c:2238
+#: config/tc-m68hc11.c:2239
msgid "No instruction or missing opcode."
msgstr ""
-#: config/tc-m68hc11.c:2303
+#: config/tc-m68hc11.c:2304
#, c-format
msgid "Opcode `%s' is not recognized."
msgstr ""
-#: config/tc-m68hc11.c:2325
+#: config/tc-m68hc11.c:2326
#, c-format
msgid "Garbage at end of instruction: `%s'."
msgstr ""
-#: config/tc-m68hc11.c:2348
+#: config/tc-m68hc11.c:2349
#, c-format
msgid "Invalid operand for `%s'"
msgstr ""
-#: config/tc-m68hc11.c:2405
+#: config/tc-m68hc11.c:2406
#, c-format
msgid "Relocation %d is not supported by object file format."
msgstr ""
-#: config/tc-m68hc11.c:2571
+#: config/tc-m68hc11.c:2587
msgid "bra or bsr with undefined symbol."
msgstr ""
-#: config/tc-m68hc11.c:2683
+#: config/tc-m68hc11.c:2698
#, c-format
msgid "Subtype %d is not recognized."
msgstr ""
-#: config/tc-m68hc11.c:2720
+#: config/tc-m68hc11.c:2735
msgid "Expression too complex."
msgstr ""
-#: config/tc-m68hc11.c:2749
+#: config/tc-m68hc11.c:2764
msgid "Value out of 16-bit range."
msgstr ""
-#: config/tc-m68hc11.c:2772
+#: config/tc-m68hc11.c:2787
#, c-format
msgid "Value %ld too large for 8-bit PC-relative branch."
msgstr ""
-#: config/tc-m68hc11.c:2779
+#: config/tc-m68hc11.c:2794
#, c-format
msgid "Auto increment/decrement offset '%ld' is out of range."
msgstr ""
-#: config/tc-m68hc11.c:2790
+#: config/tc-m68hc11.c:2805
#, c-format
msgid "Line %d: unknown relocation type: 0x%x."
msgstr ""
@@ -4536,318 +4541,323 @@ msgstr ""
msgid "Can not do %d byte pic relocation"
msgstr ""
-#: config/tc-m68k.c:919 config/tc-mips.c:11242
+#: config/tc-m68k.c:885
+#, c-format
+msgid "Unable to produce reloc against symbol '%s'"
+msgstr ""
+
+#: config/tc-m68k.c:929 config/tc-mips.c:11242
#, c-format
msgid "Cannot make %s relocation PC relative"
msgstr ""
-#: config/tc-m68k.c:1032 config/tc-tahoe.c:1503 config/tc-vax.c:1766
+#: config/tc-m68k.c:1042 config/tc-tahoe.c:1503 config/tc-vax.c:1766
msgid "No operator"
msgstr ""
-#: config/tc-m68k.c:1062 config/tc-tahoe.c:1520 config/tc-vax.c:1783
+#: config/tc-m68k.c:1072 config/tc-tahoe.c:1520 config/tc-vax.c:1783
msgid "Unknown operator"
msgstr ""
-#: config/tc-m68k.c:1837
+#: config/tc-m68k.c:1847
msgid "invalid instruction for this architecture; needs "
msgstr ""
-#: config/tc-m68k.c:1842
+#: config/tc-m68k.c:1852
msgid "fpu (68040, 68060 or 68881/68882)"
msgstr ""
-#: config/tc-m68k.c:1845
+#: config/tc-m68k.c:1855
msgid "mmu (68030 or 68851)"
msgstr ""
-#: config/tc-m68k.c:1848
+#: config/tc-m68k.c:1858
msgid "68020 or higher"
msgstr ""
-#: config/tc-m68k.c:1851
+#: config/tc-m68k.c:1861
msgid "68000 or higher"
msgstr ""
-#: config/tc-m68k.c:1854
+#: config/tc-m68k.c:1864
msgid "68010 or higher"
msgstr ""
-#: config/tc-m68k.c:1883
+#: config/tc-m68k.c:1893
msgid "operands mismatch"
msgstr ""
-#: config/tc-m68k.c:1940 config/tc-m68k.c:1946 config/tc-m68k.c:1952
+#: config/tc-m68k.c:1950 config/tc-m68k.c:1956 config/tc-m68k.c:1962
msgid "operand out of range"
msgstr ""
-#: config/tc-m68k.c:2009
+#: config/tc-m68k.c:2019
#, c-format
msgid "Bignum too big for %c format; truncated"
msgstr ""
-#: config/tc-m68k.c:2077
+#: config/tc-m68k.c:2087
msgid "displacement too large for this architecture; needs 68020 or higher"
msgstr ""
-#: config/tc-m68k.c:2187
+#: config/tc-m68k.c:2197
msgid ""
"scale factor invalid on this architecture; needs cpu32 or 68020 or higher"
msgstr ""
-#: config/tc-m68k.c:2192
+#: config/tc-m68k.c:2202
msgid "invalid index size for coldfire"
msgstr ""
-#: config/tc-m68k.c:2245
+#: config/tc-m68k.c:2255
msgid "Forcing byte displacement"
msgstr ""
-#: config/tc-m68k.c:2247
+#: config/tc-m68k.c:2257
msgid "byte displacement out of range"
msgstr ""
-#: config/tc-m68k.c:2294 config/tc-m68k.c:2332
+#: config/tc-m68k.c:2304 config/tc-m68k.c:2342
msgid "invalid operand mode for this architecture; needs 68020 or higher"
msgstr ""
-#: config/tc-m68k.c:2318 config/tc-m68k.c:2352
+#: config/tc-m68k.c:2328 config/tc-m68k.c:2362
msgid ":b not permitted; defaulting to :w"
msgstr ""
-#: config/tc-m68k.c:2429
+#: config/tc-m68k.c:2439
msgid "unsupported byte value; use a different suffix"
msgstr ""
-#: config/tc-m68k.c:2443
+#: config/tc-m68k.c:2453
msgid "unknown/incorrect operand"
msgstr ""
-#: config/tc-m68k.c:2476 config/tc-m68k.c:2484 config/tc-m68k.c:2491
-#: config/tc-m68k.c:2498
+#: config/tc-m68k.c:2486 config/tc-m68k.c:2494 config/tc-m68k.c:2501
+#: config/tc-m68k.c:2508
msgid "out of range"
msgstr ""
-#: config/tc-m68k.c:2548
+#: config/tc-m68k.c:2558
msgid "Can't use long branches on 68000/68010/5200"
msgstr ""
-#: config/tc-m68k.c:2658
+#: config/tc-m68k.c:2668
msgid "Expression out of range, using 0"
msgstr ""
-#: config/tc-m68k.c:2770 config/tc-m68k.c:2786
+#: config/tc-m68k.c:2780 config/tc-m68k.c:2796
msgid "Floating point register in register list"
msgstr ""
-#: config/tc-m68k.c:2776
+#: config/tc-m68k.c:2786
msgid "Wrong register in floating-point reglist"
msgstr ""
-#: config/tc-m68k.c:2792
+#: config/tc-m68k.c:2802
msgid "incorrect register in reglist"
msgstr ""
-#: config/tc-m68k.c:2798
+#: config/tc-m68k.c:2808
msgid "wrong register in floating-point reglist"
msgstr ""
-#: config/tc-m68k.c:2874
+#: config/tc-m68k.c:2884
msgid "failed sanity check"
msgstr ""
#. ERROR
-#: config/tc-m68k.c:3239
+#: config/tc-m68k.c:3249
msgid "Extra )"
msgstr ""
#. ERROR
-#: config/tc-m68k.c:3250
+#: config/tc-m68k.c:3260
msgid "Missing )"
msgstr ""
-#: config/tc-m68k.c:3267
+#: config/tc-m68k.c:3277
msgid "Missing operand"
msgstr ""
-#: config/tc-m68k.c:3599
+#: config/tc-m68k.c:3609
#, c-format
msgid "%s -- statement `%s' ignored"
msgstr ""
-#: config/tc-m68k.c:3643
+#: config/tc-m68k.c:3653
#, c-format
msgid "Don't know how to figure width of %c in md_assemble()"
msgstr ""
-#: config/tc-m68k.c:3811 config/tc-m68k.c:3849
+#: config/tc-m68k.c:3821 config/tc-m68k.c:3859
#, c-format
msgid "Internal Error: Can't find %s in hash table"
msgstr ""
-#: config/tc-m68k.c:3814 config/tc-m68k.c:3852
+#: config/tc-m68k.c:3824 config/tc-m68k.c:3862
#, c-format
msgid "Internal Error: Can't hash %s: %s"
msgstr ""
-#: config/tc-m68k.c:3980
+#: config/tc-m68k.c:3990
#, c-format
msgid "unrecognized default cpu `%s' ???"
msgstr ""
-#: config/tc-m68k.c:3992
+#: config/tc-m68k.c:4002
msgid "68040 and 68851 specified; mmu instructions may assemble incorrectly"
msgstr ""
-#: config/tc-m68k.c:4012
+#: config/tc-m68k.c:4022
msgid "options for 68881 and no-68881 both given"
msgstr ""
-#: config/tc-m68k.c:4014
+#: config/tc-m68k.c:4024
msgid "options for 68851 and no-68851 both given"
msgstr ""
-#: config/tc-m68k.c:4085
+#: config/tc-m68k.c:4095
#, c-format
msgid "text label `%s' aligned to odd boundary"
msgstr ""
-#: config/tc-m68k.c:4302
+#: config/tc-m68k.c:4312
msgid "invalid byte branch offset"
msgstr ""
-#: config/tc-m68k.c:4360
+#: config/tc-m68k.c:4370
msgid "short branch with zero offset: use :w"
msgstr ""
-#: config/tc-m68k.c:4896 config/tc-m68k.c:4907
+#: config/tc-m68k.c:4905 config/tc-m68k.c:4916
msgid "expression out of range: defaulting to 1"
msgstr ""
-#: config/tc-m68k.c:4939
+#: config/tc-m68k.c:4948
msgid "expression out of range: defaulting to 0"
msgstr ""
-#: config/tc-m68k.c:4972 config/tc-m68k.c:4984
+#: config/tc-m68k.c:4981 config/tc-m68k.c:4993
#, c-format
msgid "Can't deal with expression; defaulting to %ld"
msgstr ""
-#: config/tc-m68k.c:4998
+#: config/tc-m68k.c:5007
msgid "expression doesn't fit in BYTE"
msgstr ""
-#: config/tc-m68k.c:5002
+#: config/tc-m68k.c:5011
msgid "expression doesn't fit in WORD"
msgstr ""
-#: config/tc-m68k.c:5095
+#: config/tc-m68k.c:5104
#, c-format
msgid "%s: unrecognized processor name"
msgstr ""
-#: config/tc-m68k.c:5160
+#: config/tc-m68k.c:5169
msgid "bad coprocessor id"
msgstr ""
-#: config/tc-m68k.c:5166
+#: config/tc-m68k.c:5175
msgid "unrecognized fopt option"
msgstr ""
-#: config/tc-m68k.c:5300
+#: config/tc-m68k.c:5309
#, c-format
msgid "option `%s' may not be negated"
msgstr ""
-#: config/tc-m68k.c:5311
+#: config/tc-m68k.c:5320
#, c-format
msgid "option `%s' not recognized"
msgstr ""
-#: config/tc-m68k.c:5344
+#: config/tc-m68k.c:5353
msgid "bad format of OPT NEST=depth"
msgstr ""
-#: config/tc-m68k.c:5407
+#: config/tc-m68k.c:5416
msgid "missing label"
msgstr ""
-#: config/tc-m68k.c:5431 config/tc-m68k.c:5460
+#: config/tc-m68k.c:5440 config/tc-m68k.c:5469
msgid "bad register list"
msgstr ""
-#: config/tc-m68k.c:5433
+#: config/tc-m68k.c:5442
#, c-format
msgid "bad register list: %s"
msgstr ""
-#: config/tc-m68k.c:5531
+#: config/tc-m68k.c:5540
msgid "restore without save"
msgstr ""
-#: config/tc-m68k.c:5708 config/tc-m68k.c:6057
+#: config/tc-m68k.c:5717 config/tc-m68k.c:6066
msgid "syntax error in structured control directive"
msgstr ""
-#: config/tc-m68k.c:5759
+#: config/tc-m68k.c:5768
msgid "missing condition code in structured control directive"
msgstr ""
-#: config/tc-m68k.c:6091
+#: config/tc-m68k.c:6100
msgid "missing then"
msgstr ""
-#: config/tc-m68k.c:6173
+#: config/tc-m68k.c:6182
msgid "else without matching if"
msgstr ""
-#: config/tc-m68k.c:6207
+#: config/tc-m68k.c:6216
msgid "endi without matching if"
msgstr ""
-#: config/tc-m68k.c:6248
+#: config/tc-m68k.c:6257
msgid "break outside of structured loop"
msgstr ""
-#: config/tc-m68k.c:6287
+#: config/tc-m68k.c:6296
msgid "next outside of structured loop"
msgstr ""
-#: config/tc-m68k.c:6339
+#: config/tc-m68k.c:6348
msgid "missing ="
msgstr ""
-#: config/tc-m68k.c:6377
+#: config/tc-m68k.c:6386
msgid "missing to or downto"
msgstr ""
-#: config/tc-m68k.c:6413 config/tc-m68k.c:6447 config/tc-m68k.c:6657
+#: config/tc-m68k.c:6422 config/tc-m68k.c:6456 config/tc-m68k.c:6666
msgid "missing do"
msgstr ""
-#: config/tc-m68k.c:6550
+#: config/tc-m68k.c:6559
msgid "endf without for"
msgstr ""
-#: config/tc-m68k.c:6606
+#: config/tc-m68k.c:6615
msgid "until without repeat"
msgstr ""
-#: config/tc-m68k.c:6693
+#: config/tc-m68k.c:6702
msgid "endw without while"
msgstr ""
-#: config/tc-m68k.c:6817
+#: config/tc-m68k.c:6826
#, c-format
msgid "unrecognized option `%s'"
msgstr ""
-#: config/tc-m68k.c:6862
+#: config/tc-m68k.c:6871
#, c-format
msgid "unrecognized architecture specification `%s'"
msgstr ""
-#: config/tc-m68k.c:6932
+#: config/tc-m68k.c:6941
msgid ""
"680X0 options:\n"
"-l\t\t\tuse 1 word for refs to undefined symbols [default 2]\n"
@@ -4860,7 +4870,7 @@ msgid ""
"\t\t\t[default yes for 68020, 68030, and cpu32]\n"
msgstr ""
-#: config/tc-m68k.c:6942
+#: config/tc-m68k.c:6951
msgid ""
"-m68851 | -mno-68851\n"
"\t\t\ttarget has/lacks memory-management unit coprocessor\n"
@@ -4873,7 +4883,7 @@ msgid ""
"--bitwise-or\t\tdo not treat `|' as a comment character\n"
msgstr ""
-#: config/tc-m68k.c:6952
+#: config/tc-m68k.c:6961
msgid ""
"--base-size-default-16\tbase reg without size is 16 bits\n"
"--base-size-default-32\tbase reg without size is 32 bits (default)\n"
@@ -4881,12 +4891,12 @@ msgid ""
"--disp-size-default-32\tdisplacement with unknown size is 32 bits (default)\n"
msgstr ""
-#: config/tc-m68k.c:6987
+#: config/tc-m68k.c:6996
#, c-format
msgid "Error %s in %s\n"
msgstr ""
-#: config/tc-m68k.c:6991
+#: config/tc-m68k.c:7000
#, c-format
msgid "Opcode(%d.%s): "
msgstr ""
@@ -5174,7 +5184,7 @@ msgstr ""
msgid "pc-relative"
msgstr ""
-#: config/tc-mcore.c:2419 config/tc-pj.c:569 config/tc-sh.c:3326
+#: config/tc-mcore.c:2419 config/tc-pj.c:569 config/tc-sh.c:3331
#, c-format
msgid "Cannot represent relocation type %s"
msgstr ""
@@ -5727,13 +5737,13 @@ msgid ""
msgstr ""
#: config/tc-mn10200.c:807 config/tc-mn10300.c:953 config/tc-ppc.c:1736
-#: config/tc-v850.c:1728
+#: config/tc-s390.c:1161 config/tc-v850.c:1728
#, c-format
msgid "Unrecognized opcode: `%s'"
msgstr ""
#: config/tc-mn10200.c:1050 config/tc-mn10300.c:1476 config/tc-ppc.c:2097
-#: config/tc-v850.c:2152
+#: config/tc-s390.c:1091 config/tc-v850.c:2152
#, c-format
msgid "junk at end of line: `%s'"
msgstr ""
@@ -5946,12 +5956,12 @@ msgid ""
"-big\t\t\tgenerate big endian code\n"
msgstr ""
-#: config/tc-pj.c:458 config/tc-sh.c:2899 config/tc-sh.c:2906
-#: config/tc-sh.c:2913 config/tc-sh.c:2920
+#: config/tc-pj.c:458 config/tc-sh.c:2904 config/tc-sh.c:2911
+#: config/tc-sh.c:2918 config/tc-sh.c:2925
msgid "pcrel too far"
msgstr ""
-#: config/tc-pj.c:526 config/tc-sh.c:3011
+#: config/tc-pj.c:526 config/tc-sh.c:3016
msgid "offset out of range"
msgstr ""
@@ -5963,7 +5973,7 @@ msgstr ""
msgid "estimate size\n"
msgstr ""
-#: config/tc-ppc.c:926
+#: config/tc-ppc.c:926 config/tc-s390.c:356
#, c-format
msgid "invalid switch -m%s"
msgstr ""
@@ -6008,7 +6018,7 @@ msgstr ""
msgid "Neither Power nor PowerPC opcodes were selected."
msgstr ""
-#: config/tc-ppc.c:1117
+#: config/tc-ppc.c:1117 config/tc-s390.c:442
#, c-format
msgid "Internal assembler error for instruction %s"
msgstr ""
@@ -6022,7 +6032,7 @@ msgstr ""
msgid "identifier+constant@got means identifier@got+constant"
msgstr ""
-#: config/tc-ppc.c:1400 config/tc-sh.c:341 config/tc-sh.c:369
+#: config/tc-ppc.c:1400 config/tc-sh.c:346 config/tc-sh.c:374
#, c-format
msgid "%s relocations do not fit in %d bytes\n"
msgstr ""
@@ -6171,141 +6181,226 @@ msgstr ""
msgid "warning: symbol %s has no csect"
msgstr ""
-#: config/tc-ppc.c:4662
+#: config/tc-ppc.c:4661
msgid "symbol in .toc does not match any .tc"
msgstr ""
-#: config/tc-ppc.c:4956 config/tc-v850.c:2431
+#: config/tc-ppc.c:4955 config/tc-s390.c:1592 config/tc-v850.c:2431
msgid "unresolved expression that must be resolved"
msgstr ""
-#: config/tc-ppc.c:4959
+#: config/tc-ppc.c:4958 config/tc-s390.c:1595
msgid "unsupported relocation type"
msgstr ""
-#: config/tc-ppc.c:5021
+#: config/tc-ppc.c:5020
#, c-format
msgid "cannot emit PC relative %s relocation against %s"
msgstr ""
-#: config/tc-ppc.c:5026
+#: config/tc-ppc.c:5025
#, c-format
msgid "cannot emit PC relative %s relocation"
msgstr ""
-#: config/tc-ppc.c:5088
+#: config/tc-ppc.c:5087
msgid "must branch to an address a multiple of 4"
msgstr ""
-#: config/tc-ppc.c:5092
+#: config/tc-ppc.c:5091
#, c-format
msgid "@local or @plt branch destination is too far away, %ld bytes"
msgstr ""
-#: config/tc-ppc.c:5116
+#: config/tc-ppc.c:5115
#, c-format
msgid "Gas failure, reloc value %d\n"
msgstr ""
-#: config/tc-sh.c:878
+#: config/tc-s390.c:395
+msgid ""
+" S390 options:\n"
+" -mregnames \tAllow symbolic names for registers\n"
+" -mno-regnames\tDo not allow symbolic names for registers\n"
+msgstr ""
+
+#: config/tc-s390.c:399
+msgid ""
+" -V \tprint assembler version number\n"
+" -Qy, -Qn \tignored\n"
+msgstr ""
+
+#: config/tc-s390.c:428
+#, c-format
+msgid "Internal assembler error for instruction format %s"
+msgstr ""
+
+#: config/tc-s390.c:604
+#, c-format
+msgid "identifier+constant@%s means identifier@%s+constant"
+msgstr ""
+
+#: config/tc-s390.c:683
+msgid "Can't handle O_big in s390_exp_compare"
+msgstr ""
+
+#: config/tc-s390.c:764
+msgid "Invalid suffix for literal pool entry"
+msgstr ""
+
+#: config/tc-s390.c:805
+msgid "Big number is too big"
+msgstr ""
+
+#: config/tc-s390.c:881 config/tc-s390.c:1330
+#, c-format
+msgid "%s relocations do not fit in %d bytes"
+msgstr ""
+
+#: config/tc-s390.c:888
+msgid "relocation not applicable"
+msgstr ""
+
+#: config/tc-s390.c:1010
+msgid "invalid operand suffix"
+msgstr ""
+
+#: config/tc-s390.c:1031
+msgid "syntax error; missing '(' after displacement"
+msgstr ""
+
+#: config/tc-s390.c:1040 config/tc-s390.c:1064 config/tc-s390.c:1078
+msgid "syntax error; expected ,"
+msgstr ""
+
+#: config/tc-s390.c:1059
+msgid "syntax error; missing ')' after base register"
+msgstr ""
+
+#: config/tc-s390.c:1072
+msgid "syntax error; ')' not allowed here"
+msgstr ""
+
+#: config/tc-s390.c:1222 config/tc-s390.c:1239 config/tc-s390.c:1248
+msgid "Invalid .insn format\n"
+msgstr ""
+
+#: config/tc-s390.c:1229
+#, c-format
+msgid "Unrecognized opcode format: `%s'"
+msgstr ""
+
+#: config/tc-s390.c:1250
+msgid "second operand of .insn not a constant\n"
+msgstr ""
+
+#: config/tc-s390.c:1252
+msgid "missing comma after insn constant\n"
+msgstr ""
+
+#: config/tc-s390.c:1521
+msgid "unresolved fx_subsy symbol that must be resolved"
+msgstr ""
+
+#: config/tc-sh.c:883
msgid "illegal register after @-"
msgstr ""
-#: config/tc-sh.c:894
+#: config/tc-sh.c:899
msgid "must be @(r0,...)"
msgstr ""
-#: config/tc-sh.c:910
+#: config/tc-sh.c:915
msgid "syntax error in @(r0,...)"
msgstr ""
-#: config/tc-sh.c:943 config/tc-sh.c:948
+#: config/tc-sh.c:948 config/tc-sh.c:953
msgid "syntax error in @(disp,[Rn, gbr, pc])"
msgstr ""
-#: config/tc-sh.c:953
+#: config/tc-sh.c:958
msgid "expecting )"
msgstr ""
-#: config/tc-sh.c:962
+#: config/tc-sh.c:967
msgid "illegal register after @"
msgstr ""
-#: config/tc-sh.c:1523
+#: config/tc-sh.c:1528
#, c-format
msgid "Invalid register: 'r%d'"
msgstr ""
-#: config/tc-sh.c:1686
+#: config/tc-sh.c:1691
msgid "insn can't be combined with parallel processing insn"
msgstr ""
-#: config/tc-sh.c:1693 config/tc-sh.c:1704
+#: config/tc-sh.c:1698 config/tc-sh.c:1709
msgid "multiple movx specifications"
msgstr ""
-#: config/tc-sh.c:1698 config/tc-sh.c:1725
+#: config/tc-sh.c:1703 config/tc-sh.c:1730
msgid "multiple movy specifications"
msgstr ""
-#: config/tc-sh.c:1706
+#: config/tc-sh.c:1711
msgid "invalid movx address register"
msgstr ""
-#: config/tc-sh.c:1712 config/tc-sh.c:1717
+#: config/tc-sh.c:1717 config/tc-sh.c:1722
msgid "invalid movx dsp register"
msgstr ""
-#: config/tc-sh.c:1734 config/tc-sh.c:1739
+#: config/tc-sh.c:1739 config/tc-sh.c:1744
msgid "invalid movy dsp register"
msgstr ""
-#: config/tc-sh.c:1743
+#: config/tc-sh.c:1748
msgid "invalid movy address register"
msgstr ""
-#: config/tc-sh.c:1749
+#: config/tc-sh.c:1754
msgid "dsp immediate shift value not constant"
msgstr ""
-#: config/tc-sh.c:1756 config/tc-sh.c:1769
+#: config/tc-sh.c:1761 config/tc-sh.c:1774
msgid "multiple parallel processing specifications"
msgstr ""
-#: config/tc-sh.c:1762
+#: config/tc-sh.c:1767
msgid "multiple condition specifications"
msgstr ""
-#: config/tc-sh.c:1778
+#: config/tc-sh.c:1783
msgid "insn cannot be combined with pmuls"
msgstr ""
-#: config/tc-sh.c:1795
+#: config/tc-sh.c:1800
msgid "bad padd / psub pmuls output operand"
msgstr ""
-#: config/tc-sh.c:1805
+#: config/tc-sh.c:1810
msgid "condition not followed by conditionalizable insn"
msgstr ""
-#: config/tc-sh.c:1815
+#: config/tc-sh.c:1820
msgid "unrecognized characters at end of parallel processing insn"
msgstr ""
-#: config/tc-sh.c:1931
+#: config/tc-sh.c:1936
#, c-format
msgid "excess operands: '%s'"
msgstr ""
-#: config/tc-sh.c:2099
+#: config/tc-sh.c:2104
msgid ".uses pseudo-op seen when not relaxing"
msgstr ""
-#: config/tc-sh.c:2105
+#: config/tc-sh.c:2110
msgid "bad .uses format"
msgstr ""
-#: config/tc-sh.c:2166
+#: config/tc-sh.c:2171
msgid ""
"SH options:\n"
"-little\t\t\tgenerate little endian code\n"
@@ -6314,61 +6409,61 @@ msgid ""
"-dsp\t\t\tenable sh-dsp insns, and disable sh3e / sh4 insns.\n"
msgstr ""
-#: config/tc-sh.c:2177 config/tc-w65.c:862
+#: config/tc-sh.c:2182 config/tc-w65.c:862
msgid "call to tc_Nout_fix_to_chars \n"
msgstr ""
-#: config/tc-sh.c:2261
+#: config/tc-sh.c:2266
msgid ".uses does not refer to a local symbol in the same section"
msgstr ""
-#: config/tc-sh.c:2280
+#: config/tc-sh.c:2285
msgid "can't find fixup pointed to by .uses"
msgstr ""
-#: config/tc-sh.c:2303
+#: config/tc-sh.c:2308
msgid ".uses target does not refer to a local symbol in the same section"
msgstr ""
-#: config/tc-sh.c:2401
+#: config/tc-sh.c:2406
msgid "displacement overflows 12-bit field"
msgstr ""
-#: config/tc-sh.c:2404
+#: config/tc-sh.c:2409
#, c-format
msgid "displacement to defined symbol %s overflows 12-bit field"
msgstr ""
-#: config/tc-sh.c:2408
+#: config/tc-sh.c:2413
#, c-format
msgid "displacement to undefined symbol %s overflows 12-bit field"
msgstr ""
-#: config/tc-sh.c:2486
+#: config/tc-sh.c:2491
msgid "displacement overflows 8-bit field"
msgstr ""
-#: config/tc-sh.c:2489
+#: config/tc-sh.c:2494
#, c-format
msgid "displacement to defined symbol %s overflows 8-bit field"
msgstr ""
-#: config/tc-sh.c:2493
+#: config/tc-sh.c:2498
#, c-format
msgid "displacement to undefined symbol %s overflows 8-bit field "
msgstr ""
-#: config/tc-sh.c:2506
+#: config/tc-sh.c:2511
#, c-format
msgid "overflow in branch to %s; converted into longer instruction sequence"
msgstr ""
-#: config/tc-sh.c:2581 config/tc-sh.c:2629 config/tc-sparc.c:4084
+#: config/tc-sh.c:2586 config/tc-sh.c:2634 config/tc-sparc.c:4084
#: config/tc-sparc.c:4109
msgid "misaligned data"
msgstr ""
-#: config/tc-sh.c:3003
+#: config/tc-sh.c:3008
msgid "misaligned offset"
msgstr ""
@@ -6390,6 +6485,11 @@ msgstr ""
msgid "invalid architecture -A%s"
msgstr ""
+#: config/tc-sparc.c:548
+#, c-format
+msgid "No compiled in support for %d bit object file format"
+msgstr ""
+
#: config/tc-sparc.c:585
msgid "Unrecognized option following -K"
msgstr ""
@@ -7908,8 +8008,8 @@ msgstr ""
msgid "Unassigned file number %ld"
msgstr ""
-#: dwarf2dbg.c:1255 dwarf2dbg.c:1263 dwarf2dbg.c:1271 dwarf2dbg.c:1284
-#: dwarf2dbg.c:1291
+#: dwarf2dbg.c:1258 dwarf2dbg.c:1266 dwarf2dbg.c:1274 dwarf2dbg.c:1287
+#: dwarf2dbg.c:1294
msgid "dwarf2 is not supported for this object file format"
msgstr ""
@@ -8665,34 +8765,34 @@ msgstr ""
msgid "Error: "
msgstr ""
-#: messages.c:413 messages.c:429
+#: messages.c:413 messages.c:433
msgid "Fatal error: "
msgstr ""
-#: messages.c:446
+#: messages.c:450
msgid "Internal error!\n"
msgstr ""
-#: messages.c:448
+#: messages.c:452
#, c-format
msgid "Assertion failure in %s at %s line %d.\n"
msgstr ""
-#: messages.c:451
+#: messages.c:455
#, c-format
msgid "Assertion failure at %s line %d.\n"
msgstr ""
-#: messages.c:452 messages.c:471
+#: messages.c:456 messages.c:475
msgid "Please report this bug.\n"
msgstr ""
-#: messages.c:466
+#: messages.c:470
#, c-format
msgid "Internal error, aborting at %s line %d in %s\n"
msgstr ""
-#: messages.c:469
+#: messages.c:473
#, c-format
msgid "Internal error, aborting at %s line %d\n"
msgstr ""