aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cvsignore2
-rw-r--r--bfd/ChangeLog20
-rw-r--r--bfd/Makefile.am14
-rw-r--r--bfd/Makefile.in16
-rw-r--r--bfd/archures.c6
-rw-r--r--bfd/bfd-in.h16
-rw-r--r--bfd/bfd-in2.h30
-rw-r--r--bfd/coff-i386.c4
-rw-r--r--bfd/coff-mcore.c8
-rw-r--r--bfd/coffcode.h12
-rw-r--r--bfd/cofflink.c2
-rw-r--r--bfd/config.bfd17
-rwxr-xr-xbfd/configure30
-rw-r--r--bfd/configure.in6
-rw-r--r--bfd/cpu-m68hc11.c39
-rw-r--r--bfd/cpu-m68hc12.c38
-rw-r--r--bfd/doc/Makefile.in2
-rw-r--r--bfd/elf-bfd.h20
-rw-r--r--bfd/elf.c12
-rw-r--r--bfd/elf32-m68hc11.c281
-rw-r--r--bfd/elf32-m68hc12.c281
-rw-r--r--bfd/elfcode.h16
-rw-r--r--bfd/elfcore.h4
-rw-r--r--bfd/elfxx-target.h1
-rw-r--r--bfd/libbfd.h3
-rw-r--r--bfd/peicode.h2
-rw-r--r--bfd/po/POTFILES.in72
-rw-r--r--bfd/po/bfd.pot889
-rw-r--r--bfd/reloc.c17
-rw-r--r--bfd/section.c12
-rw-r--r--bfd/targets.c4
-rw-r--r--binutils/po/POTFILES.in2
-rw-r--r--binutils/po/binutils.pot1726
-rw-r--r--binutils/readelf.c3
-rw-r--r--binutils/testsuite/ChangeLog5
-rw-r--r--binutils/testsuite/binutils-all/objdump.exp13
-rw-r--r--gas/ChangeLog13
-rw-r--r--gas/Makefile.am11
-rw-r--r--gas/Makefile.in15
-rw-r--r--gas/config/obj-elf.c2
-rw-r--r--gas/config/tc-i386.c6
-rw-r--r--gas/config/tc-m32r.c7
-rw-r--r--gas/config/tc-m68hc11.c2831
-rw-r--r--gas/config/tc-m68hc11.h109
-rwxr-xr-xgas/configure335
-rw-r--r--gas/configure.in3
-rw-r--r--gas/doc/Makefile.am1
-rw-r--r--gas/doc/Makefile.in3
-rw-r--r--gas/doc/all.texi1
-rw-r--r--gas/doc/as.texinfo51
-rw-r--r--gas/doc/c-m68hc11.texi235
-rw-r--r--gas/expr.c6
-rw-r--r--gas/po/POTFILES.in10
-rw-r--r--gas/po/gas.pot2519
-rw-r--r--gas/testsuite/ChangeLog9
-rw-r--r--gas/testsuite/gas/m68hc11/all.exp18
-rw-r--r--gas/testsuite/gas/m68hc11/all_insns.d352
-rw-r--r--gas/testsuite/gas/m68hc11/all_insns.s335
-rw-r--r--gas/testsuite/gas/m68hc11/insns.d44
-rw-r--r--gas/testsuite/gas/m68hc11/insns.s60
-rw-r--r--gas/testsuite/gas/m68hc11/lbranch.d47
-rw-r--r--gas/testsuite/gas/m68hc11/lbranch.s41
-rw-r--r--gas/testsuite/gas/m68hc11/opers12.d70
-rw-r--r--gas/testsuite/gas/m68hc11/opers12.s72
-rw-r--r--gas/testsuite/gas/m68k/all.exp14
-rw-r--r--gprof/Makefile.in2
-rw-r--r--gprof/po/gprof.pot40
-rw-r--r--include/ChangeLog5
-rw-r--r--include/dis-asm.h2
-rw-r--r--include/elf/ChangeLog24
-rw-r--r--include/elf/m68hc11.h42
-rw-r--r--include/opcode/ChangeLog4
-rw-r--r--include/opcode/cgen.h2
-rw-r--r--include/opcode/m68hc11.h418
-rw-r--r--ld/ChangeLog14
-rw-r--r--ld/Makefile.am16
-rw-r--r--ld/Makefile.in18
-rw-r--r--ld/configure.tgt6
-rw-r--r--ld/emulparams/m68hc11elf.sh13
-rw-r--r--ld/emulparams/m68hc11elfb.sh9
-rw-r--r--ld/emulparams/m68hc12elf.sh13
-rw-r--r--ld/emulparams/m68hc12elfb.sh9
-rw-r--r--ld/emulparams/shpe.sh3
-rw-r--r--ld/emultempl/elf32.em8
-rw-r--r--ld/po/POTFILES.in2
-rw-r--r--ld/po/ld.pot446
-rw-r--r--ld/scripttempl/elfm68hc11.sc359
-rw-r--r--ld/scripttempl/elfm68hc12.sc359
-rwxr-xr-xltconfig2
-rw-r--r--opcodes/Makefile.am8
-rw-r--r--opcodes/Makefile.in10
-rwxr-xr-xopcodes/configure2
-rw-r--r--opcodes/configure.in2
-rw-r--r--opcodes/disassemble.c10
-rw-r--r--opcodes/m68hc11-dis.c608
-rw-r--r--opcodes/m68hc11-opc.c1074
-rw-r--r--opcodes/po/POTFILES.in2
-rw-r--r--opcodes/po/opcodes.pot19
98 files changed, 11777 insertions, 2619 deletions
diff --git a/.cvsignore b/.cvsignore
index dab6c32..bde4852 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -28,3 +28,5 @@ configure.vrs
dir.info
Makefile
lost+found
+update.out
+
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index df53b6a..3bf5a17 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,23 @@
+2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
+
+ * Makefile.in, bfd-in2.h, libbfd.h, configure: Rebuild.
+ * Makefile.am (ALL_MACHINES, ALL_MACHINES_CFILES, BFD32_BACKENDS,
+ BFD32_BACKENDS_CFILES): Add 68hc12, 68hc11 files.
+ * configure.in (bfd_elf32_m68hc12_vec): Recognize.
+ (bfd_elf32_m68hc11_vec): Likewise.
+ * config.bfd (targ_cpu): Recognize 68hc12 and 68hc11.
+ Supports 68hc11 & 68hc12 at the same time.
+ * targets.c (bfd_elf32_m68hc12_vec): Declare and put in
+ bfd_target_vector.
+ (bfd_elf32_m68hc11_vec): Likewise.
+ * elf.c (prep_headers): Recognize bfd_arch_m68hc12 and 68hc11.
+ * archures.c (bfd_m68hc12_arch): Define and register in global list
+ (bfd_m68hc11_arch): Likewise.
+ * reloc.c (BFD_RELOC_M68HC11_HI8, BFD_RELOC_M68HC11_LO8,
+ BFD_RELOC_M68HC11_3B): Define.
+ * cpu-m68hc12.c, elf32-m68hc12.c: New files for 68hc12 support.
+ * cpu-m68hc11.c, elf32-m68hc11.c: New files for 68hc11 support.
+
2000-06-18 Ulf Carlsson <ulfc@engr.sgi.com>
* elf_bfd.h (struct elf_backend_data): Add info argument to
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 1b6a0a7..39c7455 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -57,6 +57,8 @@ ALL_MACHINES = \
cpu-i860.lo \
cpu-i960.lo \
cpu-m32r.lo \
+ cpu-m68hc11.lo \
+ cpu-m68hc12.lo \
cpu-m68k.lo \
cpu-m88k.lo \
cpu-m10200.lo \
@@ -96,6 +98,8 @@ ALL_MACHINES_CFILES = \
cpu-i860.c \
cpu-i960.c \
cpu-m32r.c \
+ cpu-m68hc11.c \
+ cpu-m68hc12.c \
cpu-m68k.c \
cpu-m88k.c \
cpu-m10200.c \
@@ -179,6 +183,8 @@ BFD32_BACKENDS = \
elf32-i860.lo \
elf32-i960.lo \
elf32-m32r.lo \
+ elf32-m68hc11.lo \
+ elf32-m68hc12.lo \
elf32-m68k.lo \
elf32-m88k.lo \
elf-m10200.lo \
@@ -313,6 +319,8 @@ BFD32_BACKENDS_CFILES = \
elf32-i960.c \
elf32-m32r.c \
elf32-m68k.c \
+ elf32-m68hc11.c \
+ elf32-m68hc12.c \
elf32-m88k.c \
elf-m10200.c \
elf-m10300.c \
@@ -721,6 +729,8 @@ cpu-i860.lo: cpu-i860.c $(INCDIR)/filenames.h
cpu-i960.lo: cpu-i960.c $(INCDIR)/filenames.h
cpu-m32r.lo: cpu-m32r.c $(INCDIR)/filenames.h
cpu-m68k.lo: cpu-m68k.c $(INCDIR)/filenames.h
+cpu-m68hc11.lo: cpu-m68hc11.c $(INCDIR)/filenames.h
+cpu-m68hc12.lo: cpu-m68hc12.c $(INCDIR)/filenames.h
cpu-m88k.lo: cpu-m88k.c $(INCDIR)/filenames.h
cpu-m10200.lo: cpu-m10200.c $(INCDIR)/filenames.h
cpu-m10300.lo: cpu-m10300.c $(INCDIR)/filenames.h
@@ -913,6 +923,10 @@ elf32-fr30.lo: elf32-fr30.c $(INCDIR)/filenames.h elf-bfd.h \
elf32-gen.lo: elf32-gen.c $(INCDIR)/filenames.h elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h elf32-target.h
+elf32-m68hc11.lo: elf32-m68hc11.c $(INCDIR)/bfdlink.h elf-bfd.h \
+ $(INCDIR)/elf/m68hc11.h elf32-target.h
+elf32-m68hc12.lo: elf32-m68hc12.c $(INCDIR)/bfdlink.h elf-bfd.h \
+ $(INCDIR)/elf/m68hc11.h elf32-target.h
elf32-hppa.lo: elf32-hppa.c $(INCDIR)/filenames.h elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h $(INCDIR)/elf/hppa.h $(INCDIR)/elf/reloc-macros.h \
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index f23960a..a894da4 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -172,6 +172,8 @@ ALL_MACHINES = \
cpu-i860.lo \
cpu-i960.lo \
cpu-m32r.lo \
+ cpu-m68hc11.lo \
+ cpu-m68hc12.lo \
cpu-m68k.lo \
cpu-m88k.lo \
cpu-m10200.lo \
@@ -212,6 +214,8 @@ ALL_MACHINES_CFILES = \
cpu-i860.c \
cpu-i960.c \
cpu-m32r.c \
+ cpu-m68hc11.c \
+ cpu-m68hc12.c \
cpu-m68k.c \
cpu-m88k.c \
cpu-m10200.c \
@@ -296,6 +300,8 @@ BFD32_BACKENDS = \
elf32-i860.lo \
elf32-i960.lo \
elf32-m32r.lo \
+ elf32-m68hc11.lo \
+ elf32-m68hc12.lo \
elf32-m68k.lo \
elf32-m88k.lo \
elf-m10200.lo \
@@ -431,6 +437,8 @@ BFD32_BACKENDS_CFILES = \
elf32-i960.c \
elf32-m32r.c \
elf32-m68k.c \
+ elf32-m68hc11.c \
+ elf32-m68hc12.c \
elf32-m88k.c \
elf-m10200.c \
elf-m10300.c \
@@ -663,7 +671,7 @@ configure.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
SOURCES = $(libbfd_a_SOURCES) $(libbfd_la_SOURCES)
OBJECTS = $(libbfd_a_OBJECTS) $(libbfd_la_OBJECTS)
@@ -1249,6 +1257,8 @@ cpu-i860.lo: cpu-i860.c $(INCDIR)/filenames.h
cpu-i960.lo: cpu-i960.c $(INCDIR)/filenames.h
cpu-m32r.lo: cpu-m32r.c $(INCDIR)/filenames.h
cpu-m68k.lo: cpu-m68k.c $(INCDIR)/filenames.h
+cpu-m68hc11.lo: cpu-m68hc11.c $(INCDIR)/filenames.h
+cpu-m68hc12.lo: cpu-m68hc12.c $(INCDIR)/filenames.h
cpu-m88k.lo: cpu-m88k.c $(INCDIR)/filenames.h
cpu-m10200.lo: cpu-m10200.c $(INCDIR)/filenames.h
cpu-m10300.lo: cpu-m10300.c $(INCDIR)/filenames.h
@@ -1441,6 +1451,10 @@ elf32-fr30.lo: elf32-fr30.c $(INCDIR)/filenames.h elf-bfd.h \
elf32-gen.lo: elf32-gen.c $(INCDIR)/filenames.h elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h elf32-target.h
+elf32-m68hc11.lo: elf32-m68hc11.c $(INCDIR)/bfdlink.h elf-bfd.h \
+ $(INCDIR)/elf/m68hc11.h elf32-target.h
+elf32-m68hc12.lo: elf32-m68hc12.c $(INCDIR)/bfdlink.h elf-bfd.h \
+ $(INCDIR)/elf/m68hc11.h elf32-target.h
elf32-hppa.lo: elf32-hppa.c $(INCDIR)/filenames.h elf-bfd.h \
$(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h \
$(INCDIR)/bfdlink.h $(INCDIR)/elf/hppa.h $(INCDIR)/elf/reloc-macros.h \
diff --git a/bfd/archures.c b/bfd/archures.c
index 69e42bf..ffc7937 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -174,6 +174,8 @@ DESCRIPTION
.#define bfd_mach_d10v_ts2 2
.#define bfd_mach_d10v_ts3 3
. bfd_arch_d30v, {* Mitsubishi D30V *}
+. bfd_arch_m68hc11, {* Motorola 68HC11 *}
+. bfd_arch_m68hc12, {* Motorola 68HC12 *}
. bfd_arch_z8k, {* Zilog Z8000 *}
.#define bfd_mach_z8001 1
.#define bfd_mach_z8002 2
@@ -279,6 +281,8 @@ extern const bfd_arch_info_type bfd_i386_arch;
extern const bfd_arch_info_type bfd_i860_arch;
extern const bfd_arch_info_type bfd_i960_arch;
extern const bfd_arch_info_type bfd_m32r_arch;
+extern const bfd_arch_info_type bfd_m68hc11_arch;
+extern const bfd_arch_info_type bfd_m68hc12_arch;
extern const bfd_arch_info_type bfd_m68k_arch;
extern const bfd_arch_info_type bfd_m88k_arch;
extern const bfd_arch_info_type bfd_mips_arch;
@@ -322,6 +326,8 @@ static const bfd_arch_info_type * const bfd_archures_list[] =
&bfd_i860_arch,
&bfd_i960_arch,
&bfd_m32r_arch,
+ &bfd_m68hc11_arch,
+ &bfd_m68hc12_arch,
&bfd_m68k_arch,
&bfd_m88k_arch,
&bfd_mips_arch,
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index 26a9080..f0a1d84 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-/* bfd.h -- The only header file required by users of the bfd library
+/* bfd.h -- The only header file required by users of the bfd library
The bfd.h file is generated from bfd-in.h and various .c files; if you
change it, your changes will probably be lost.
@@ -109,7 +109,7 @@ typedef enum bfd_boolean {bfd_fffalse, bfd_tttrue} boolean;
/* FIXME: This should be using off_t from <sys/types.h>.
For now, try to avoid breaking stuff by not including <sys/types.h> here.
This will break on systems with 64-bit file offsets (e.g. 4.4BSD).
- Probably the best long-term answer is to avoid using file_ptr AND off_t
+ Probably the best long-term answer is to avoid using file_ptr AND off_t
in this header file, and to handle this in the BFD implementation
rather than in its interface. */
/* typedef off_t file_ptr; */
@@ -284,11 +284,11 @@ typedef struct carsym {
file_ptr file_offset; /* look here to find the file */
} carsym; /* to make these you call a carsymogen */
-
+
/* Used in generating armaps (archive tables of contents).
Perhaps just a forward definition would do? */
struct orl { /* output ranlib */
- char **name; /* symbol name */
+ char **name; /* symbol name */
file_ptr pos; /* bfd* or file position */
int namidx; /* index into string table */
};
@@ -296,7 +296,7 @@ struct orl { /* output ranlib */
/* Linenumber stuff */
typedef struct lineno_cache_entry {
- unsigned int line_number; /* Linenumber from start of function*/
+ unsigned int line_number; /* Linenumber from start of function*/
union {
struct symbol_cache_entry *sym; /* Function name */
unsigned long offset; /* Offset into section */
@@ -327,15 +327,15 @@ typedef struct sec *sec_ptr;
#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true)
#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true)
-typedef struct stat stat_type;
+typedef struct stat stat_type;
typedef enum bfd_print_symbol
-{
+{
bfd_print_symbol_name,
bfd_print_symbol_more,
bfd_print_symbol_all
} bfd_print_symbol_type;
-
+
/* Information about a symbol that nm needs. */
typedef struct _symbol_info
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 92501f0..b0832b9 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -23,7 +23,7 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-/* bfd.h -- The only header file required by users of the bfd library
+/* bfd.h -- The only header file required by users of the bfd library
The bfd.h file is generated from bfd-in.h and various .c files; if you
change it, your changes will probably be lost.
@@ -109,7 +109,7 @@ typedef enum bfd_boolean {bfd_fffalse, bfd_tttrue} boolean;
/* FIXME: This should be using off_t from <sys/types.h>.
For now, try to avoid breaking stuff by not including <sys/types.h> here.
This will break on systems with 64-bit file offsets (e.g. 4.4BSD).
- Probably the best long-term answer is to avoid using file_ptr AND off_t
+ Probably the best long-term answer is to avoid using file_ptr AND off_t
in this header file, and to handle this in the BFD implementation
rather than in its interface. */
/* typedef off_t file_ptr; */
@@ -284,11 +284,11 @@ typedef struct carsym {
file_ptr file_offset; /* look here to find the file */
} carsym; /* to make these you call a carsymogen */
-
+
/* Used in generating armaps (archive tables of contents).
Perhaps just a forward definition would do? */
struct orl { /* output ranlib */
- char **name; /* symbol name */
+ char **name; /* symbol name */
file_ptr pos; /* bfd* or file position */
int namidx; /* index into string table */
};
@@ -296,7 +296,7 @@ struct orl { /* output ranlib */
/* Linenumber stuff */
typedef struct lineno_cache_entry {
- unsigned int line_number; /* Linenumber from start of function*/
+ unsigned int line_number; /* Linenumber from start of function*/
union {
struct symbol_cache_entry *sym; /* Function name */
unsigned long offset; /* Offset into section */
@@ -327,15 +327,15 @@ typedef struct sec *sec_ptr;
#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),true)
#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),true)
-typedef struct stat stat_type;
+typedef struct stat stat_type;
typedef enum bfd_print_symbol
-{
+{
bfd_print_symbol_name,
bfd_print_symbol_more,
bfd_print_symbol_all
} bfd_print_symbol_type;
-
+
/* Information about a symbol that nm needs. */
typedef struct _symbol_info
@@ -1413,6 +1413,8 @@ enum bfd_architecture
#define bfd_mach_d10v_ts2 2
#define bfd_mach_d10v_ts3 3
bfd_arch_d30v, /* Mitsubishi D30V */
+ bfd_arch_m68hc11, /* Motorola 68HC11 */
+ bfd_arch_m68hc12, /* Motorola 68HC12 */
bfd_arch_z8k, /* Zilog Z8000 */
#define bfd_mach_z8001 1
#define bfd_mach_z8002 2
@@ -2545,6 +2547,18 @@ this offset in the reloc's section offset. */
BFD_RELOC_IA64_LTOFF_TP22,
BFD_RELOC_IA64_LTOFF22X,
BFD_RELOC_IA64_LDXMOV,
+
+/* Motorola 68HC11 reloc.
+This is the 8 bits high part of an absolute address. */
+ BFD_RELOC_M68HC11_HI8,
+
+/* Motorola 68HC11 reloc.
+This is the 8 bits low part of an absolute address. */
+ BFD_RELOC_M68HC11_LO8,
+
+/* Motorola 68HC11 reloc.
+This is the 3 bits of a value. */
+ BFD_RELOC_M68HC11_3B,
BFD_RELOC_UNUSED };
typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
reloc_howto_type *
diff --git a/bfd/coff-i386.c b/bfd/coff-i386.c
index c7aa659..0f23325 100644
--- a/bfd/coff-i386.c
+++ b/bfd/coff-i386.c
@@ -176,19 +176,17 @@ coff_i386_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
}
#ifdef COFF_WITH_PE
-
/* Return true if this relocation should appear in the output .reloc
section. */
static boolean in_reloc_p PARAMS ((bfd *, reloc_howto_type *));
static boolean in_reloc_p (abfd, howto)
- bfd *abfd ATTRIBUTE_UNUSED;
+ bfd * abfd ATTRIBUTE_UNUSED;
reloc_howto_type *howto;
{
return ! howto->pc_relative && howto->type != R_IMAGEBASE;
}
-
#endif /* COFF_WITH_PE */
#ifndef PCRELOFFSET
diff --git a/bfd/coff-mcore.c b/bfd/coff-mcore.c
index 19cbea1..f20c2ca 100644
--- a/bfd/coff-mcore.c
+++ b/bfd/coff-mcore.c
@@ -582,5 +582,9 @@ coff_mcore_relocate_section (output_bfd, info, input_bfd, input_section,
extern const bfd_target TARGET_LITTLE_SYM;
/* The transfer vectors that lead the outside world to all of the above. */
-CREATE_BIG_COFF_TARGET_VEC (TARGET_BIG_SYM, TARGET_BIG_NAME, D_PAGED, (SEC_LINK_ONCE | SEC_LINK_DUPLICATES), 0, & TARGET_LITTLE_SYM)
-CREATE_LITTLE_COFF_TARGET_VEC (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME, D_PAGED, (SEC_LINK_ONCE | SEC_LINK_DUPLICATES), 0, & TARGET_BIG_SYM)
+CREATE_BIG_COFF_TARGET_VEC (TARGET_BIG_SYM, TARGET_BIG_NAME, D_PAGED,
+ (SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_READONLY | SEC_LINK_ONCE | SEC_LINK_DUPLICATES),
+ 0, & TARGET_LITTLE_SYM)
+CREATE_LITTLE_COFF_TARGET_VEC (TARGET_LITTLE_SYM, TARGET_LITTLE_NAME, D_PAGED,
+ (SEC_CODE | SEC_DATA | SEC_DEBUGGING | SEC_READONLY | SEC_LINK_ONCE | SEC_LINK_DUPLICATES),
+ 0, & TARGET_BIG_SYM)
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 9344498..f4e27fa 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -1466,8 +1466,8 @@ static const unsigned int coff_section_alignment_table_size =
static boolean
coff_new_section_hook (abfd, section)
- bfd *abfd;
- asection *section;
+ bfd * abfd;
+ asection * section;
{
combined_entry_type *native;
@@ -3342,7 +3342,7 @@ coff_write_object_contents (abfd)
&& ! is_reloc_section)
hasdebug = true;
-#ifdef RS6000COFF_C
+#ifdef RS6000COFF_C
#ifndef XCOFF64
/* Indicate the use of an XCOFF overflow section header. */
if (current->reloc_count >= 0xffff || current->lineno_count >= 0xffff)
@@ -3395,7 +3395,7 @@ coff_write_object_contents (abfd)
SCNHDR buff;
if (coff_swap_scnhdr_out (abfd, &section, &buff) == 0
|| bfd_write ((PTR) (&buff), 1, bfd_coff_scnhsz (abfd), abfd)
- != bfd_coff_scnhsz (abfd))
+ != bfd_coff_scnhsz (abfd))
return false;
}
@@ -3517,7 +3517,7 @@ coff_write_object_contents (abfd)
scnhdr.s_flags = STYP_OVRFLO;
if (coff_swap_scnhdr_out (abfd, &scnhdr, &buff) == 0
|| bfd_write ((PTR) &buff, 1, bfd_coff_scnhsz (abfd), abfd)
- != bfd_coff_scnhsz (abfd))
+ != bfd_coff_scnhsz (abfd))
return false;
}
}
@@ -4438,7 +4438,7 @@ coff_slurp_symbol_table (abfd)
#endif
case C_BLOCK: /* ".bb" or ".eb" */
- case C_FCN: /* ".bf" or ".ef" (or PE ".lf") */
+ case C_FCN: /* ".bf" or ".ef" (or PE ".lf") */
case C_EFCN: /* physical end of function */
#if defined COFF_WITH_PE
/* PE sets the symbol to a value relative to the start
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index b648fa1..01fa2e7 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -2201,7 +2201,7 @@ _bfd_coff_link_input_bfd (finfo, input_bfd)
is.n_numaux, auxptr);
}
- skipping = false;
+ skipping = false;
}
iline.l_addr.l_symndx = indx;
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 324a168..f85a6de 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -37,6 +37,8 @@ c54x*) targ_archs=bfd_tic54x_arch ;;
hppa*) targ_archs=bfd_hppa_arch ;;
i[3456]86) targ_archs=bfd_i386_arch ;;
i370) targ_archs=bfd_i370_arch ;;
+m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch" ;;
+m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch" ;;
m68*) targ_archs=bfd_m68k_arch ;;
m88*) targ_archs=bfd_m88k_arch ;;
mips*) targ_archs=bfd_mips_arch ;;
@@ -118,7 +120,7 @@ case "${targ}" in
targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
targ_underscore=yes
;;
- arm-*-aout | armel-*-aout)
+ arm-*-aout | armel-*-aout)
targ_defvec=aout_arm_little_vec
targ_selvecs=aout_arm_big_vec
;;
@@ -231,7 +233,7 @@ case "${targ}" in
hppa*-*-*elf* | hppa*-*-linux-gnu* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems*)
targ_defvec=bfd_elf32_hppa_vec
;;
-#ifdef BFD64
+#ifdef BFD64
hppa*64*-*-hpux11*)
targ_defvec=bfd_elf64_hppa_vec
targ_cflags=-DHPUX_LARGE_AR_IDS
@@ -404,6 +406,15 @@ case "${targ}" in
targ_defvec=bfd_elf32_m32r_vec
;;
+ m68hc11-*-* | m6811-*-*)
+ targ_defvec=bfd_elf32_m68hc11_vec
+ targ_selvecs="bfd_elf32_m68hc11_vec bfd_elf32_m68hc12_vec"
+ ;;
+ m68hc12-*-* | m6812-*-*)
+ targ_defvec=bfd_elf32_m68hc12_vec
+ targ_selvecs="bfd_elf32_m68hc11_vec bfd_elf32_m68hc12_vec"
+ ;;
+
m68*-apollo-*)
targ_defvec=apollocoff_vec
;;
@@ -740,7 +751,7 @@ case "${targ}" in
sparc64-*-elf*)
targ_defvec=bfd_elf64_sparc_vec
targ_selvecs=bfd_elf32_sparc_vec
- ;;
+ ;;
#endif /* BFD64 */
sparc*-*-coff*)
targ_defvec=sparccoff_vec
diff --git a/bfd/configure b/bfd/configure
index ba644d2..092c228 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -5144,6 +5144,8 @@ do
bfd_elf64_littlemips_vec) tb="$tb elf64-mips.lo elf64.lo elf32-mips.lo elf32.lo $elf ecofflink.lo"
target64=true ;;
bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
+ bfd_elf32_m68hc11_vec) tb="$tb elf32-m68hc11.lo elf32.lo $elf" ;;
+ bfd_elf32_m68hc12_vec) tb="$tb elf32-m68hc12.lo elf32.lo $elf" ;;
bfd_elf32_m68k_vec) tb="$tb elf32-m68k.lo elf32.lo $elf" ;;
bfd_elf32_m88k_vec) tb="$tb elf32-m88k.lo elf32.lo $elf" ;;
bfd_elf32_mcore_big_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
@@ -5236,8 +5238,8 @@ do
shlcoff_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shcoff_small_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shlcoff_small_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
- shlpe_vec) tb="$tb pe-sh.lo coff-sh.lo cofflink.lo" ;;
- shlpei_vec) tb="$tb pei-sh.lo coff-sh.lo cofflink.lo" ;;
+ shlpe_vec) tb="$tb pe-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
+ shlpei_vec) tb="$tb pei-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
som_vec) tb="$tb som.lo" ;;
sparcle_aout_vec) tb="$tb aout-sparcle.lo aout32.lo" ;;
sparclinux_vec) tb="$tb sparclinux.lo aout32.lo" ;;
@@ -5346,17 +5348,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:5350: checking for $ac_hdr" >&5
+echo "configure:5352: 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 5355 "configure"
+#line 5357 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5360: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5362: \"$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*
@@ -5385,12 +5387,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5389: checking for $ac_func" >&5
+echo "configure:5391: 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 5394 "configure"
+#line 5396 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5413,7 +5415,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5419: \"$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
@@ -5438,7 +5440,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:5442: checking for working mmap" >&5
+echo "configure:5444: 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
@@ -5446,7 +5448,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 5450 "configure"
+#line 5452 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -5586,7 +5588,7 @@ main()
}
EOF
-if { (eval echo configure:5590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5592: \"$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
@@ -5611,12 +5613,12 @@ fi
for ac_func in madvise mprotect
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5615: checking for $ac_func" >&5
+echo "configure:5617: 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 5620 "configure"
+#line 5622 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5639,7 +5641,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5645: \"$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
diff --git a/bfd/configure.in b/bfd/configure.in
index 08daaa8..4b1c723 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -501,6 +501,8 @@ do
bfd_elf64_littlemips_vec) tb="$tb elf64-mips.lo elf64.lo elf32-mips.lo elf32.lo $elf ecofflink.lo"
target64=true ;;
bfd_elf32_m32r_vec) tb="$tb elf32-m32r.lo elf32.lo $elf" ;;
+ bfd_elf32_m68hc11_vec) tb="$tb elf32-m68hc11.lo elf32.lo $elf" ;;
+ bfd_elf32_m68hc12_vec) tb="$tb elf32-m68hc12.lo elf32.lo $elf" ;;
bfd_elf32_m68k_vec) tb="$tb elf32-m68k.lo elf32.lo $elf" ;;
bfd_elf32_m88k_vec) tb="$tb elf32-m88k.lo elf32.lo $elf" ;;
bfd_elf32_mcore_big_vec) tb="$tb elf32-mcore.lo elf32.lo $elf" ;;
@@ -593,8 +595,8 @@ do
shlcoff_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shcoff_small_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
shlcoff_small_vec) tb="$tb coff-sh.lo cofflink.lo" ;;
- shlpe_vec) tb="$tb pe-sh.lo coff-sh.lo cofflink.lo" ;;
- shlpei_vec) tb="$tb pei-sh.lo coff-sh.lo cofflink.lo" ;;
+ shlpe_vec) tb="$tb pe-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
+ shlpei_vec) tb="$tb pei-sh.lo coff-sh.lo peigen.lo cofflink.lo" ;;
som_vec) tb="$tb som.lo" ;;
sparcle_aout_vec) tb="$tb aout-sparcle.lo aout32.lo" ;;
sparclinux_vec) tb="$tb sparclinux.lo aout32.lo" ;;
diff --git a/bfd/cpu-m68hc11.c b/bfd/cpu-m68hc11.c
new file mode 100644
index 0000000..0df14c8
--- /dev/null
+++ b/bfd/cpu-m68hc11.c
@@ -0,0 +1,39 @@
+/* BFD support for the Motorola 68HC11 processor
+ Copyright 1999, 2000 Free Software Foundation, Inc.
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "libbfd.h"
+
+const bfd_arch_info_type bfd_m68hc11_arch =
+{
+ 16, /* 16 bits in a word */
+ 16, /* 16 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_m68hc11,
+ 0,
+ "m68hc11",
+ "m68hc11",
+ 4, /* section alignment power */
+ true,
+ bfd_default_compatible,
+ bfd_default_scan,
+ 0,
+};
+
diff --git a/bfd/cpu-m68hc12.c b/bfd/cpu-m68hc12.c
new file mode 100644
index 0000000..830ddb5
--- /dev/null
+++ b/bfd/cpu-m68hc12.c
@@ -0,0 +1,38 @@
+/* BFD support for the Motorola 68HC12 processor
+ Copyright 1999, 2000 Free Software Foundation, Inc.
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "libbfd.h"
+
+const bfd_arch_info_type bfd_m68hc12_arch =
+{
+ 16, /* 16 bits in a word */
+ 16, /* 16 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_m68hc12,
+ 0,
+ "m68hc12",
+ "m68hc12",
+ 4, /* section alignment power */
+ true,
+ bfd_default_compatible,
+ bfd_default_scan,
+ 0,
+};
diff --git a/bfd/doc/Makefile.in b/bfd/doc/Makefile.in
index e45ab48..80be82a 100644
--- a/bfd/doc/Makefile.in
+++ b/bfd/doc/Makefile.in
@@ -188,7 +188,7 @@ DIST_COMMON = ChangeLog Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index b17f7c6..8489a32 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -373,8 +373,8 @@ struct elf_backend_data
/* A function to set the type of the info field. Processor-specific
types should be handled here. */
- int (*elf_backend_get_symbol_type) PARAMS (( Elf_Internal_Sym *, int));
-
+ int (*elf_backend_get_symbol_type) PARAMS (( Elf_Internal_Sym *, int));
+
/* A function to do additional processing on the ELF section header
just before writing it out. This is used to set the flags and
type fields for some sections, or to actually write out data for
@@ -638,7 +638,7 @@ struct elf_backend_data
both REL and RELA relocations, and this flag is set for those
backends.) */
unsigned may_use_rel_p : 1;
-
+
/* Whether the backend may use RELA relocations. (Some backends use
both REL and RELA relocations, and this flag is set for those
backends.) */
@@ -647,8 +647,8 @@ struct elf_backend_data
/* Whether the default relocation type is RELA. If a backend with
this flag set wants REL relocations for a particular section,
it must note that explicitly. Similarly, if this flag is clear,
- and the backend wants RELA relocations for a particular
- section. */
+ and the backend wants RELA relocations for a particular
+ section. */
unsigned default_use_rela_p : 1;
/* True if addresses "naturally" sign extend. This is used when
@@ -1013,7 +1013,7 @@ extern boolean _bfd_elf_find_nearest_line PARAMS ((bfd *, asection *,
#define _bfd_elf_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
extern int _bfd_elf_sizeof_headers PARAMS ((bfd *, boolean));
extern boolean _bfd_elf_new_section_hook PARAMS ((bfd *, asection *));
-extern boolean _bfd_elf_init_reloc_shdr
+extern boolean _bfd_elf_init_reloc_shdr
PARAMS ((bfd *, Elf_Internal_Shdr *, asection *, boolean));
/* If the target doesn't have reloc handling written yet: */
@@ -1282,11 +1282,11 @@ extern boolean _bfd_mips_elf_finish_dynamic_symbol
Elf_Internal_Sym *));
extern boolean _bfd_mips_elf_finish_dynamic_sections
PARAMS ((bfd *, struct bfd_link_info *));
-extern asection * _bfd_mips_elf_gc_mark_hook
+extern asection * _bfd_mips_elf_gc_mark_hook
PARAMS ((bfd *, struct bfd_link_info *, Elf_Internal_Rela *,
struct elf_link_hash_entry *, Elf_Internal_Sym *));
-extern boolean _bfd_mips_elf_gc_sweep_hook
- PARAMS ((bfd *, struct bfd_link_info *, asection *,
+extern boolean _bfd_mips_elf_gc_sweep_hook
+ PARAMS ((bfd *, struct bfd_link_info *, asection *,
const Elf_Internal_Rela *));
extern boolean _bfd_mips_elf_always_size_sections
PARAMS ((bfd *, struct bfd_link_info *));
@@ -1297,7 +1297,7 @@ extern boolean _bfd_mips_elf_check_relocs
const Elf_Internal_Rela *));
extern struct bfd_link_hash_table *_bfd_mips_elf_link_hash_table_create
PARAMS ((bfd *));
-extern boolean _bfd_mips_elf_print_private_bfd_data
+extern boolean _bfd_mips_elf_print_private_bfd_data
PARAMS ((bfd *, PTR));
extern boolean _bfd_mips_elf_link_output_symbol_hook
PARAMS ((bfd *, struct bfd_link_info *, const char *, Elf_Internal_Sym *,
diff --git a/bfd/elf.c b/bfd/elf.c
index a52d793..f88ebbd 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -1333,8 +1333,10 @@ bfd_section_from_shdr (abfd, shindex)
/* If this reloc section does not use the main symbol table we
don't treat it as a reloc section. BFD can't adequately
represent such a section, so at least for now, we don't
- try. We just present it as a normal section. */
- if (hdr->sh_link != elf_onesymtab (abfd))
+ try. We just present it as a normal section. We also
+ can't use it as a reloc section if it points to the null
+ section. */
+ if (hdr->sh_link != elf_onesymtab (abfd) || hdr->sh_info == SHN_UNDEF)
return _bfd_elf_make_section_from_shdr (abfd, hdr, name);
if (! bfd_section_from_shdr (abfd, hdr->sh_info))
@@ -3265,6 +3267,12 @@ prep_headers (abfd)
case bfd_arch_ia64:
i_ehdrp->e_machine = EM_IA_64;
break;
+ case bfd_arch_m68hc11:
+ i_ehdrp->e_machine = EM_68HC11;
+ break;
+ case bfd_arch_m68hc12:
+ i_ehdrp->e_machine = EM_68HC12;
+ break;
case bfd_arch_m68k:
i_ehdrp->e_machine = EM_68K;
break;
diff --git a/bfd/elf32-m68hc11.c b/bfd/elf32-m68hc11.c
new file mode 100644
index 0000000..594d114
--- /dev/null
+++ b/bfd/elf32-m68hc11.c
@@ -0,0 +1,281 @@
+/* Motorola 68HC11-specific support for 32-bit ELF
+ Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Contributed by Stephane Carrez (stcarrez@worldnet.fr)
+ (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com))
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "libbfd.h"
+#include "elf-bfd.h"
+#include "elf/m68hc11.h"
+
+static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
+PARAMS ((bfd * abfd, bfd_reloc_code_real_type code));
+static void m68hc11_info_to_howto_rel
+PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+
+
+/* Use REL instead of RELA to save space */
+#define USE_REL
+
+/* The Motorola 68HC11 microcontroler only addresses 64Kb.
+ We must handle 8 and 16-bit relocations. The 32-bit relocation
+ is defined but not used except by gas when -gstabs is used (which
+ is wrong).
+ The 3-bit and 16-bit PC rel relocation is only used by 68HC12. */
+static reloc_howto_type elf_m68hc11_howto_table[] = {
+ /* This reloc does nothing. */
+ HOWTO (R_M68HC11_NONE, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_NONE", /* name */
+ false, /* partial_inplace */
+ 0, /* src_mask */
+ 0, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 8 bit absolute relocation */
+ HOWTO (R_M68HC11_8, /* type */
+ 0, /* rightshift */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_8", /* name */
+ false, /* partial_inplace */
+ 0x00ff, /* src_mask */
+ 0x00ff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 8 bit absolute relocation (upper address) */
+ HOWTO (R_M68HC11_HI8, /* type */
+ 8, /* rightshift */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_HI8", /* name */
+ false, /* partial_inplace */
+ 0x00ff, /* src_mask */
+ 0x00ff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 8 bit absolute relocation (upper address) */
+ HOWTO (R_M68HC11_LO8, /* type */
+ 0, /* rightshift */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_LO8", /* name */
+ false, /* partial_inplace */
+ 0x00ff, /* src_mask */
+ 0x00ff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 8 bit PC-rel relocation */
+ HOWTO (R_M68HC11_PCREL_8, /* type */
+ 0, /* rightshift */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* bitsize */
+ true, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_PCREL_8", /* name */
+ false, /* partial_inplace */
+ 0x0, /* src_mask */
+ 0x00ff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 16 bit absolute relocation */
+ HOWTO (R_M68HC11_16, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont /*bitfield */ , /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_16", /* name */
+ false, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 32 bit absolute relocation. This one is never used for the
+ code relocation. It's used by gas for -gstabs generation. */
+ HOWTO (R_M68HC11_32, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_32", /* name */
+ false, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 3 bit absolute relocation */
+ HOWTO (R_M68HC11_3B, /* type */
+ 0, /* rightshift */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 3, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_4B", /* name */
+ false, /* partial_inplace */
+ 0x003, /* src_mask */
+ 0x003, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 16 bit PC-rel relocation */
+ HOWTO (R_M68HC11_PCREL_16, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ true, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_PCREL_16", /* name */
+ false, /* partial_inplace */
+ 0x0, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* GNU extension to record C++ vtable hierarchy */
+ HOWTO (R_M68HC11_GNU_VTINHERIT, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont, /* complain_on_overflow */
+ NULL, /* special_function */
+ "R_M68HC11_GNU_VTINHERIT", /* name */
+ false, /* partial_inplace */
+ 0, /* src_mask */
+ 0, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* GNU extension to record C++ vtable member usage */
+ HOWTO (R_M68HC11_GNU_VTENTRY, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont, /* complain_on_overflow */
+ _bfd_elf_rel_vtable_reloc_fn, /* special_function */
+ "R_M68HC11_GNU_VTENTRY", /* name */
+ false, /* partial_inplace */
+ 0, /* src_mask */
+ 0, /* dst_mask */
+ false), /* pcrel_offset */
+};
+
+/* Map BFD reloc types to M68HC11 ELF reloc types. */
+
+struct m68hc11_reloc_map
+{
+ bfd_reloc_code_real_type bfd_reloc_val;
+ unsigned char elf_reloc_val;
+};
+
+static const struct m68hc11_reloc_map m68hc11_reloc_map[] = {
+ {BFD_RELOC_NONE, R_M68HC11_NONE,},
+ {BFD_RELOC_8, R_M68HC11_8},
+ {BFD_RELOC_M68HC11_HI8, R_M68HC11_HI8},
+ {BFD_RELOC_M68HC11_LO8, R_M68HC11_LO8},
+ {BFD_RELOC_8_PCREL, R_M68HC11_PCREL_8},
+ {BFD_RELOC_16_PCREL, R_M68HC11_PCREL_16},
+ {BFD_RELOC_16, R_M68HC11_16},
+ {BFD_RELOC_32, R_M68HC11_32},
+ {BFD_RELOC_M68HC11_3B, R_M68HC11_3B},
+
+ /* The following relocs are defined but they probably don't work yet. */
+ {BFD_RELOC_VTABLE_INHERIT, R_M68HC11_GNU_VTINHERIT},
+ {BFD_RELOC_VTABLE_ENTRY, R_M68HC11_GNU_VTENTRY},
+};
+
+static reloc_howto_type *
+bfd_elf32_bfd_reloc_type_lookup (abfd, code)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ bfd_reloc_code_real_type code;
+{
+ unsigned int i;
+
+ for (i = 0;
+ i < sizeof (m68hc11_reloc_map) / sizeof (struct m68hc11_reloc_map);
+ i++)
+ {
+ if (m68hc11_reloc_map[i].bfd_reloc_val == code)
+ return &elf_m68hc11_howto_table[m68hc11_reloc_map[i].elf_reloc_val];
+ }
+
+ return NULL;
+}
+
+/* Set the howto pointer for an M68HC11 ELF reloc. */
+
+static void
+m68hc11_info_to_howto_rel (abfd, cache_ptr, dst)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ arelent *cache_ptr;
+ Elf32_Internal_Rel *dst;
+{
+ unsigned int r_type;
+
+ r_type = ELF32_R_TYPE (dst->r_info);
+ BFD_ASSERT (r_type < (unsigned int) R_M68HC11_max);
+ cache_ptr->howto = &elf_m68hc11_howto_table[r_type];
+}
+
+/* Below is the only difference between elf32-m68hc12.c and elf32-m68hc11.c.
+ The Motorola spec says to use a different Elf machine code. */
+#define ELF_ARCH bfd_arch_m68hc11
+#define ELF_MACHINE_CODE EM_68HC11
+#define ELF_MAXPAGESIZE 0x1000
+
+#define TARGET_BIG_SYM bfd_elf32_m68hc11_vec
+#define TARGET_BIG_NAME "elf32-m68hc11"
+
+#define elf_info_to_howto 0
+#define elf_info_to_howto_rel m68hc11_info_to_howto_rel
+#define elf_backend_object_p 0
+#define elf_backend_final_write_processing 0
+
+#include "elf32-target.h"
diff --git a/bfd/elf32-m68hc12.c b/bfd/elf32-m68hc12.c
new file mode 100644
index 0000000..b4db9bc
--- /dev/null
+++ b/bfd/elf32-m68hc12.c
@@ -0,0 +1,281 @@
+/* Motorola 68HC12-specific support for 32-bit ELF
+ Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Contributed by Stephane Carrez (stcarrez@worldnet.fr)
+ (Heavily copied from the D10V port by Martin Hunt (hunt@cygnus.com))
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "libbfd.h"
+#include "elf-bfd.h"
+#include "elf/m68hc11.h"
+
+static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
+PARAMS ((bfd * abfd, bfd_reloc_code_real_type code));
+static void m68hc11_info_to_howto_rel
+PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+
+
+/* Use REL instead of RELA to save space */
+#define USE_REL
+
+/* The Motorola 68HC11 microcontroler only addresses 64Kb.
+ We must handle 8 and 16-bit relocations. The 32-bit relocation
+ is defined but not used except by gas when -gstabs is used (which
+ is wrong).
+ The 3-bit and 16-bit PC rel relocation is only used by 68HC12. */
+static reloc_howto_type elf_m68hc11_howto_table[] = {
+ /* This reloc does nothing. */
+ HOWTO (R_M68HC11_NONE, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_NONE", /* name */
+ false, /* partial_inplace */
+ 0, /* src_mask */
+ 0, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 8 bit absolute relocation */
+ HOWTO (R_M68HC11_8, /* type */
+ 0, /* rightshift */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_8", /* name */
+ false, /* partial_inplace */
+ 0x00ff, /* src_mask */
+ 0x00ff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 8 bit absolute relocation (upper address) */
+ HOWTO (R_M68HC11_HI8, /* type */
+ 8, /* rightshift */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_HI8", /* name */
+ false, /* partial_inplace */
+ 0x00ff, /* src_mask */
+ 0x00ff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 8 bit absolute relocation (upper address) */
+ HOWTO (R_M68HC11_LO8, /* type */
+ 0, /* rightshift */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_LO8", /* name */
+ false, /* partial_inplace */
+ 0x00ff, /* src_mask */
+ 0x00ff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 8 bit PC-rel relocation */
+ HOWTO (R_M68HC11_PCREL_8, /* type */
+ 0, /* rightshift */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 8, /* bitsize */
+ true, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_PCREL_8", /* name */
+ false, /* partial_inplace */
+ 0x0, /* src_mask */
+ 0x00ff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 16 bit absolute relocation */
+ HOWTO (R_M68HC11_16, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont /*bitfield */ , /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_16", /* name */
+ false, /* partial_inplace */
+ 0xffff, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 32 bit absolute relocation. This one is never used for the
+ code relocation. It's used by gas for -gstabs generation. */
+ HOWTO (R_M68HC11_32, /* type */
+ 0, /* rightshift */
+ 2, /* size (0 = byte, 1 = short, 2 = long) */
+ 32, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_32", /* name */
+ false, /* partial_inplace */
+ 0xffffffff, /* src_mask */
+ 0xffffffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 3 bit absolute relocation */
+ HOWTO (R_M68HC11_3B, /* type */
+ 0, /* rightshift */
+ 0, /* size (0 = byte, 1 = short, 2 = long) */
+ 3, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_bitfield, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_4B", /* name */
+ false, /* partial_inplace */
+ 0x003, /* src_mask */
+ 0x003, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* A 16 bit PC-rel relocation */
+ HOWTO (R_M68HC11_PCREL_16, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 16, /* bitsize */
+ true, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont, /* complain_on_overflow */
+ bfd_elf_generic_reloc, /* special_function */
+ "R_M68HC11_PCREL_16", /* name */
+ false, /* partial_inplace */
+ 0x0, /* src_mask */
+ 0xffff, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* GNU extension to record C++ vtable hierarchy */
+ HOWTO (R_M68HC11_GNU_VTINHERIT, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont, /* complain_on_overflow */
+ NULL, /* special_function */
+ "R_M68HC11_GNU_VTINHERIT", /* name */
+ false, /* partial_inplace */
+ 0, /* src_mask */
+ 0, /* dst_mask */
+ false), /* pcrel_offset */
+
+ /* GNU extension to record C++ vtable member usage */
+ HOWTO (R_M68HC11_GNU_VTENTRY, /* type */
+ 0, /* rightshift */
+ 1, /* size (0 = byte, 1 = short, 2 = long) */
+ 0, /* bitsize */
+ false, /* pc_relative */
+ 0, /* bitpos */
+ complain_overflow_dont, /* complain_on_overflow */
+ _bfd_elf_rel_vtable_reloc_fn, /* special_function */
+ "R_M68HC11_GNU_VTENTRY", /* name */
+ false, /* partial_inplace */
+ 0, /* src_mask */
+ 0, /* dst_mask */
+ false), /* pcrel_offset */
+};
+
+/* Map BFD reloc types to M68HC11 ELF reloc types. */
+
+struct m68hc11_reloc_map
+{
+ bfd_reloc_code_real_type bfd_reloc_val;
+ unsigned char elf_reloc_val;
+};
+
+static const struct m68hc11_reloc_map m68hc11_reloc_map[] = {
+ {BFD_RELOC_NONE, R_M68HC11_NONE,},
+ {BFD_RELOC_8, R_M68HC11_8},
+ {BFD_RELOC_M68HC11_HI8, R_M68HC11_HI8},
+ {BFD_RELOC_M68HC11_LO8, R_M68HC11_LO8},
+ {BFD_RELOC_8_PCREL, R_M68HC11_PCREL_8},
+ {BFD_RELOC_16_PCREL, R_M68HC11_PCREL_16},
+ {BFD_RELOC_16, R_M68HC11_16},
+ {BFD_RELOC_32, R_M68HC11_32},
+ {BFD_RELOC_M68HC11_3B, R_M68HC11_3B},
+
+ /* The following relocs are defined but they probably don't work yet. */
+ {BFD_RELOC_VTABLE_INHERIT, R_M68HC11_GNU_VTINHERIT},
+ {BFD_RELOC_VTABLE_ENTRY, R_M68HC11_GNU_VTENTRY},
+};
+
+static reloc_howto_type *
+bfd_elf32_bfd_reloc_type_lookup (abfd, code)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ bfd_reloc_code_real_type code;
+{
+ unsigned int i;
+
+ for (i = 0;
+ i < sizeof (m68hc11_reloc_map) / sizeof (struct m68hc11_reloc_map);
+ i++)
+ {
+ if (m68hc11_reloc_map[i].bfd_reloc_val == code)
+ return &elf_m68hc11_howto_table[m68hc11_reloc_map[i].elf_reloc_val];
+ }
+
+ return NULL;
+}
+
+/* Set the howto pointer for an M68HC11 ELF reloc. */
+
+static void
+m68hc11_info_to_howto_rel (abfd, cache_ptr, dst)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ arelent *cache_ptr;
+ Elf32_Internal_Rel *dst;
+{
+ unsigned int r_type;
+
+ r_type = ELF32_R_TYPE (dst->r_info);
+ BFD_ASSERT (r_type < (unsigned int) R_M68HC11_max);
+ cache_ptr->howto = &elf_m68hc11_howto_table[r_type];
+}
+
+/* Below is the only difference between elf32-m68hc12.c and elf32-m68hc11.c.
+ The Motorola spec says to use a different Elf machine code. */
+#define ELF_ARCH bfd_arch_m68hc12
+#define ELF_MACHINE_CODE EM_68HC12
+#define ELF_MAXPAGESIZE 0x1000
+
+#define TARGET_BIG_SYM bfd_elf32_m68hc12_vec
+#define TARGET_BIG_NAME "elf32-m68hc12"
+
+#define elf_info_to_howto 0
+#define elf_info_to_howto_rel m68hc11_info_to_howto_rel
+#define elf_backend_object_p 0
+#define elf_backend_final_write_processing 0
+
+#include "elf32-target.h"
diff --git a/bfd/elfcode.h b/bfd/elfcode.h
index b1ce9d8..cd8e9a6 100644
--- a/bfd/elfcode.h
+++ b/bfd/elfcode.h
@@ -167,7 +167,7 @@ static void elf_swap_shdr_out
#define section_from_elf_index bfd_section_from_elf_index
-static boolean elf_slurp_reloc_table_from_section
+static boolean elf_slurp_reloc_table_from_section
PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, bfd_size_type,
arelent *, asymbol **, boolean));
@@ -1224,7 +1224,7 @@ error_return:
return -1;
}
-/* Read relocations for ASECT from REL_HDR. There are RELOC_COUNT of
+/* Read relocations for ASECT from REL_HDR. There are RELOC_COUNT of
them. */
static boolean
@@ -1349,7 +1349,7 @@ elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
rel_hdr = &d->rel_hdr;
reloc_count = rel_hdr->sh_size / rel_hdr->sh_entsize;
rel_hdr2 = d->rel_hdr2;
- reloc_count2 = (rel_hdr2
+ reloc_count2 = (rel_hdr2
? (rel_hdr2->sh_size / rel_hdr2->sh_entsize)
: 0);
@@ -1373,8 +1373,8 @@ elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
reloc_count2 = 0;
}
- relents = ((arelent *)
- bfd_alloc (abfd,
+ relents = ((arelent *)
+ bfd_alloc (abfd,
(reloc_count + reloc_count2) * sizeof (arelent)));
if (relents == NULL)
return false;
@@ -1384,15 +1384,15 @@ elf_slurp_reloc_table (abfd, asect, symbols, dynamic)
relents,
symbols, dynamic))
return false;
-
- if (rel_hdr2
+
+ if (rel_hdr2
&& !elf_slurp_reloc_table_from_section (abfd, asect,
rel_hdr2, reloc_count2,
relents + reloc_count,
symbols, dynamic))
return false;
-
+
asect->relocation = relents;
return true;
}
diff --git a/bfd/elfcore.h b/bfd/elfcore.h
index ec03ec3..11bfeac 100644
--- a/bfd/elfcore.h
+++ b/bfd/elfcore.h
@@ -99,9 +99,7 @@ elf_core_file_p (abfd)
/* Check the magic number. */
if (elf_file_p (&x_ehdr) == false)
- {
- goto wrong;
- }
+ goto wrong;
/* FIXME: Check EI_VERSION here ! */
diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h
index b1f4867..3b9b434 100644
--- a/bfd/elfxx-target.h
+++ b/bfd/elfxx-target.h
@@ -313,7 +313,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define elf_backend_hide_symbol _bfd_elf_link_hash_hide_symbol
#endif
-
/* Previously, backends could only use SHT_REL or SHT_RELA relocation
sections, but not both. They defined USE_REL to indicate SHT_REL
sections, and left it undefined to indicated SHT_RELA sections.
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index effb0e8..d7e7730 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -965,6 +965,9 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_IA64_LTOFF_TP22",
"BFD_RELOC_IA64_LTOFF22X",
"BFD_RELOC_IA64_LDXMOV",
+ "BFD_RELOC_M68HC11_HI8",
+ "BFD_RELOC_M68HC11_LO8",
+ "BFD_RELOC_M68HC11_3B",
"@@overflow: BFD_RELOC_UNUSED@@",
};
#endif
diff --git a/bfd/peicode.h b/bfd/peicode.h
index 56bc1c3..8f64453 100644
--- a/bfd/peicode.h
+++ b/bfd/peicode.h
@@ -69,7 +69,6 @@ static boolean (*pe_saved_coff_bfd_print_private_bfd_data)
static boolean pe_print_private_bfd_data PARAMS ((bfd *, PTR));
#define coff_bfd_print_private_bfd_data pe_print_private_bfd_data
-
static boolean (*pe_saved_coff_bfd_copy_private_bfd_data)
PARAMS ((bfd *, bfd *)) =
#ifndef coff_bfd_copy_private_bfd_data
@@ -243,7 +242,6 @@ coff_swap_filehdr_in (abfd, src, dst)
#define coff_swap_filehdr_out _bfd_pe_only_swap_filehdr_out
#endif
-
static void
coff_swap_scnhdr_in (abfd, ext, in)
bfd *abfd;
diff --git a/bfd/po/POTFILES.in b/bfd/po/POTFILES.in
index 94b8282..aecb88e 100644
--- a/bfd/po/POTFILES.in
+++ b/bfd/po/POTFILES.in
@@ -1,14 +1,14 @@
aix386-core.c
+aout0.c
+aout32.c
+aout64.c
aout-adobe.c
aout-arm.c
+aoutf1.h
aout-ns32k.c
aout-sparcle.c
aout-target.h
aout-tic30.c
-aout0.c
-aout32.c
-aout64.c
-aoutf1.h
aoutx.h
archive.c
archures.c
@@ -21,17 +21,21 @@ cf-i386lynx.c
cf-m68klynx.c
cf-sparclynx.c
cisco-core.c
+coff64-rs6000.c
coff-a29k.c
coff-alpha.c
coff-apollo.c
coff-arm.c
coff-aux.c
+coffcode.h
+coffgen.c
coff-go32.c
coff-h8300.c
coff-h8500.c
coff-i386.c
coff-i860.c
coff-i960.c
+cofflink.c
coff-m68k.c
coff-m88k.c
coff-mips.c
@@ -41,21 +45,20 @@ coff-sh.c
coff-sparc.c
coff-stgo32.c
coff-svm68k.c
+coffswap.h
coff-tic30.c
+coff-tic54x.c
coff-tic80.c
coff-u68k.c
coff-w65.c
coff-we32k.c
coff-z8k.c
-coffcode.h
-coffgen.c
-cofflink.c
-coffswap.h
corefile.c
cpu-a29k.c
cpu-alpha.c
cpu-arc.c
cpu-arm.c
+cpu-avr.c
cpu-d10v.c
cpu-d30v.c
cpu-fr30.c
@@ -66,9 +69,12 @@ cpu-i370.c
cpu-i386.c
cpu-i860.c
cpu-i960.c
+cpu-ia64.c
cpu-m10200.c
cpu-m10300.c
cpu-m32r.c
+cpu-m68hc11.c
+cpu-m68hc12.c
cpu-m68k.c
cpu-m88k.c
cpu-mcore.c
@@ -80,6 +86,7 @@ cpu-rs6000.c
cpu-sh.c
cpu-sparc.c
cpu-tic30.c
+cpu-tic54x.c
cpu-tic80.c
cpu-v850.c
cpu-vax.c
@@ -92,21 +99,25 @@ dwarf2.c
ecoff.c
ecofflink.c
ecoffswap.h
-elf-bfd.h
-elf-m10200.c
-elf-m10300.c
-elf.c
+efi-app-ia32.c
+efi-app-ia64.c
elf32-arc.c
elf32-arm.h
+elf32-avr.c
+elf32.c
elf32-d10v.c
elf32-d30v.c
elf32-fr30.c
elf32-gen.c
+elf32-hppa.c
+elf32-hppa.h
elf32-i370.c
elf32-i386.c
elf32-i860.c
elf32-i960.c
elf32-m32r.c
+elf32-m68hc11.c
+elf32-m68hc12.c
elf32-m68k.c
elf32-m88k.c
elf32-mcore.c
@@ -116,20 +127,25 @@ elf32-ppc.c
elf32-sh.c
elf32-sparc.c
elf32-v850.c
-elf32.c
elf64-alpha.c
+elf64.c
elf64-gen.c
elf64-hppa.c
elf64-hppa.h
+elf64-ia64.c
elf64-mips.c
elf64-sparc.c
-elf64.c
elfarm-nabi.c
elfarm-oabi.c
+elf-bfd.h
+elf.c
elfcode.h
elfcore.h
+elf-hppa.h
elflink.c
elflink.h
+elf-m10200.c
+elf-m10300.c
epoc-pe-arm.c
epoc-pei-arm.c
format.c
@@ -139,6 +155,7 @@ go32stub.h
hash.c
hp300bsd.c
hp300hpux.c
+hppa_stubs.h
hpux-core.c
i386aout.c
i386bsd.c
@@ -174,16 +191,16 @@ m88kmach3.c
mipsbsd.c
netbsd.h
newsos3.c
-nlm-target.h
-nlm.c
nlm32-alpha.c
+nlm32.c
nlm32-i386.c
nlm32-ppc.c
nlm32-sparc.c
-nlm32.c
nlm64.c
+nlm.c
nlmcode.h
nlmswap.h
+nlm-target.h
ns32k.h
ns32knetbsd.c
oasys.c
@@ -192,17 +209,21 @@ osf-core.c
pc532-mach.c
pe-arm.c
pe-i386.c
-pe-mcore.c
-pe-ppc.c
pei-arm.c
+peicode.h
+peigen.c
pei-i386.c
pei-mcore.c
+pei-mips.c
pei-ppc.c
-peicode.h
-peigen.c
+pei-sh.c
+pe-mcore.c
+pe-mips.c
+pe-ppc.c
+pe-sh.c
ppcboot.c
-reloc.c
reloc16.c
+reloc.c
riscix.c
sco5-core.c
section.c
@@ -212,8 +233,8 @@ sparclinux.c
sparclynx.c
sparcnetbsd.c
srec.c
-stab-syms.c
stabs.c
+stab-syms.c
sunos.c
syms.c
targets.c
@@ -221,10 +242,11 @@ tekhex.c
trad-core.c
vaxnetbsd.c
versados.c
+vms.c
vms-gsd.c
+vms.h
vms-hdr.c
vms-misc.c
vms-tir.c
-vms.c
-vms.h
xcofflink.c
+xcoff-target.h
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index 10ce322..3275437 100644
--- a/bfd/po/bfd.pot
+++ b/bfd/po/bfd.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-04-04 23:18+0930\n"
+"POT-Creation-Date: 2000-06-18 17:36-0700\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"
@@ -39,16 +39,16 @@ msgstr ""
msgid "%s: relocateable link from %s to %s not supported"
msgstr ""
-#: archive.c:1724
+#: archive.c:1808
msgid "Warning: writing archive was slow: rewriting timestamp\n"
msgstr ""
-#: archive.c:1990
+#: archive.c:2074
msgid "Reading archive file mod timestamp"
msgstr ""
#. FIXME: bfd can't call perror.
-#: archive.c:2014
+#: archive.c:2098
msgid "Writing updated armap timestamp"
msgstr ""
@@ -176,7 +176,7 @@ msgstr ""
msgid "GP relative relocation used when GP not defined"
msgstr ""
-#: coff-alpha.c:1486 elf64-alpha.c:3990
+#: coff-alpha.c:1486 elf64-alpha.c:3993
msgid "using multiple gp values"
msgstr ""
@@ -213,7 +213,7 @@ msgstr ""
msgid " consider relinking with --support-old-code enabled"
msgstr ""
-#: coff-arm.c:1722 coff-tic80.c:682 cofflink.c:2980
+#: coff-arm.c:1722 coff-tic80.c:682 cofflink.c:2979
#, c-format
msgid "%s: bad reloc address 0x%lx in section `%s'"
msgstr ""
@@ -271,19 +271,19 @@ msgstr ""
msgid "private flags = %x:"
msgstr ""
-#: coff-arm.c:2293 elf32-arm.h:2089
+#: coff-arm.c:2293 elf32-arm.h:2142
msgid " [floats passed in float registers]"
msgstr ""
-#: coff-arm.c:2295 elf32-arm.h:2091
+#: coff-arm.c:2295
msgid " [floats passed in integer registers]"
msgstr ""
-#: coff-arm.c:2298 elf32-arm.h:2094
+#: coff-arm.c:2298 elf32-arm.h:2145
msgid " [position independent]"
msgstr ""
-#: coff-arm.c:2300 elf32-arm.h:2096
+#: coff-arm.c:2300
msgid " [absolute position]"
msgstr ""
@@ -311,144 +311,154 @@ msgstr ""
msgid "Warning: Clearing the interworking flag of %s due to outside request"
msgstr ""
-#: coff-i960.c:136 coff-i960.c:485
-msgid "uncertain calling convention for non-COFF symbol"
-msgstr ""
-
-#: coff-mips.c:875 elf32-mips.c:1406
-msgid "GP relative relocation when _gp not defined"
-msgstr ""
-
-#: coff-mips.c:2433
-msgid "unsupported reloc type"
-msgstr ""
-
-#. No other sections should appear in -membedded-pic
-#. code.
-#: coff-mips.c:2470
-msgid "reloc against unsupported section"
-msgstr ""
-
-#: coff-mips.c:2478
-msgid "reloc not properly aligned"
-msgstr ""
-
-#: coff-tic80.c:445
+#: coffcode.h:2101
#, c-format
-msgid "Unrecognized reloc type 0x%x"
+msgid "Unrecognized TI COFF target id '0x%x'"
msgstr ""
-#: coff-w65.c:383
-#, c-format
-msgid "ignoring reloc %s\n"
-msgstr ""
-
-#: coffcode.h:3965
+#: coffcode.h:4121
#, c-format
msgid "%s: warning: illegal symbol index %ld in line numbers"
msgstr ""
-#: coffcode.h:3979
+#: coffcode.h:4135
#, c-format
msgid "%s: warning: duplicate line number information for `%s'"
msgstr ""
-#: coffcode.h:4334
+#: coffcode.h:4495
#, c-format
msgid "%s: Unrecognized storage class %d for %s symbol `%s'"
msgstr ""
-#: coffcode.h:4465
+#: coffcode.h:4626
#, c-format
msgid "warning: %s: local symbol `%s' has no section"
msgstr ""
-#: coffcode.h:4578
+#: coff-tic54x.c:377 coffcode.h:4739
#, c-format
msgid "%s: warning: illegal symbol index %ld in relocs"
msgstr ""
-#: coffcode.h:4616
+#: coffcode.h:4777
#, c-format
msgid "%s: illegal relocation type %d at address 0x%lx"
msgstr ""
-#: coffgen.c:1613
+#: coffgen.c:1635
#, c-format
msgid "%s: bad string table size %lu"
msgstr ""
-#: coffgen.c:2076
+#: coffgen.c:2098
#, c-format
msgid "AUX tagndx %ld ttlsiz 0x%lx lnnos %ld next %ld"
msgstr ""
-#: cofflink.c:518 elflink.h:1568
+#: coff-i960.c:136 coff-i960.c:485
+msgid "uncertain calling convention for non-COFF symbol"
+msgstr ""
+
+#: cofflink.c:518 elflink.h:1567
#, c-format
msgid "Warning: type of symbol `%s' changed from %d to %d in %s"
msgstr ""
-#: cofflink.c:2285
+#: cofflink.c:2284
#, c-format
msgid "%s: relocs in section `%s', but it has no contents"
msgstr ""
-#: cofflink.c:2619 coffswap.h:904
+#: cofflink.c:2618 coffswap.h:897
#, c-format
msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
msgstr ""
-#: cofflink.c:2628 coffswap.h:891
+#: cofflink.c:2627 coffswap.h:883
#, c-format
msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
msgstr ""
-#: dwarf2.c:429
+#: coff-mips.c:875 elf32-mips.c:1406
+msgid "GP relative relocation when _gp not defined"
+msgstr ""
+
+#: coff-mips.c:2433
+msgid "unsupported reloc type"
+msgstr ""
+
+#. No other sections should appear in -membedded-pic
+#. code.
+#: coff-mips.c:2470
+msgid "reloc against unsupported section"
+msgstr ""
+
+#: coff-mips.c:2478
+msgid "reloc not properly aligned"
+msgstr ""
+
+#: coff-tic54x.c:264 coff-tic80.c:445
+#, c-format
+msgid "Unrecognized reloc type 0x%x"
+msgstr ""
+
+#: coff-w65.c:383
+#, c-format
+msgid "ignoring reloc %s\n"
+msgstr ""
+
+#: dwarf2.c:432
msgid "Dwarf Error: Can't find .debug_abbrev section."
msgstr ""
-#: dwarf2.c:447
+#: dwarf2.c:450
#, c-format
msgid "Dwarf Error: Abbrev offset (%u) bigger than abbrev size (%u)."
msgstr ""
-#: dwarf2.c:627
+#: dwarf2.c:630
#, c-format
msgid "Dwarf Error: Invalid or unhandled FORM value: %d."
msgstr ""
-#: dwarf2.c:700
+#: dwarf2.c:704
msgid "Dwarf Error: mangled line number section (bad file number)."
msgstr ""
-#: dwarf2.c:791
+#: dwarf2.c:793
msgid "Dwarf Error: Can't find .debug_line section."
msgstr ""
-#: dwarf2.c:963
+#: dwarf2.c:817
+#, c-format
+msgid "Dwarf Error: Line offset (%u) bigger than line size (%u)."
+msgstr ""
+
+#: dwarf2.c:976
msgid "Dwarf Error: mangled line number section."
msgstr ""
-#: dwarf2.c:1151 dwarf2.c:1307
+#: dwarf2.c:1164 dwarf2.c:1320
#, c-format
msgid "Dwarf Error: Could not find abbrev number %d."
msgstr ""
-#: dwarf2.c:1268
+#: dwarf2.c:1281
#, c-format
msgid ""
"Dwarf Error: found dwarf version '%hu', this reader only handles version 2 "
"information."
msgstr ""
-#: dwarf2.c:1275
+#: dwarf2.c:1288
#, c-format
msgid ""
"Dwarf Error: found address size '%u', this reader can not handle sizes "
"greater than '%u'."
msgstr ""
-#: dwarf2.c:1298
+#: dwarf2.c:1311
#, c-format
msgid "Dwarf Error: Bad abbrev number: %d."
msgstr ""
@@ -514,230 +524,185 @@ msgid ""
" Type: %s"
msgstr ""
-#: elf-m10200.c:455 elf-m10300.c:670 elf32-arm.h:1853 elf32-d10v.c:493
-#: elf32-fr30.c:651 elf32-m32r.c:1265 elf32-v850.c:1677
-msgid "internal error: out of range error"
-msgstr ""
-
-#: elf-m10200.c:459 elf-m10300.c:674 elf32-arm.h:1857 elf32-d10v.c:497
-#: elf32-fr30.c:655 elf32-m32r.c:1269 elf32-v850.c:1681
-msgid "internal error: unsupported relocation error"
-msgstr ""
-
-#: elf-m10200.c:463 elf-m10300.c:678 elf32-arm.h:1861 elf32-d10v.c:501
-#: elf32-m32r.c:1273
-msgid "internal error: dangerous error"
-msgstr ""
-
-#: elf-m10200.c:467 elf-m10300.c:682 elf32-arm.h:1865 elf32-d10v.c:505
-#: elf32-fr30.c:663 elf32-m32r.c:1277 elf32-v850.c:1701
-msgid "internal error: unknown error"
-msgstr ""
-
-#: elf.c:323
-#, c-format
-msgid "%s: invalid string offset %u >= %lu for section `%s'"
-msgstr ""
-
-#: elf.c:546
-msgid ""
-"\n"
-"Program Header:\n"
-msgstr ""
-
-#: elf.c:594
-msgid ""
-"\n"
-"Dynamic Section:\n"
-msgstr ""
-
-#: elf.c:696
-msgid ""
-"\n"
-"Version definitions:\n"
-msgstr ""
-
-#: elf.c:719
-msgid ""
-"\n"
-"Version References:\n"
-msgstr ""
-
-#: elf.c:724
+#: elf32-arm.h:1188
#, c-format
-msgid " required from %s:\n"
+msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'."
msgstr ""
-#: elf.c:1286
+#: elf32-arm.h:1377
#, c-format
-msgid "%s: invalid link %lu for reloc section %s (index %u)"
+msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'."
msgstr ""
-#: elf.c:2045
+#: elf-hppa.h:1329 elf-hppa.h:1362 elf32-arm.h:1825 elf32-i386.c:1418
+#: elf32-ppc.c:3082
#, c-format
msgid ""
-"creating section symbol, name = %s, value = 0x%.8lx, index = %d, section = "
-"0x%.8lx\n"
-msgstr ""
-
-#: elf.c:2648
-#, c-format
-msgid "%s: Not enough room for program headers (allocated %u, need %u)"
-msgstr ""
-
-#: elf.c:2747
-#, c-format
-msgid "%s: Not enough room for program headers, try linking with -N"
-msgstr ""
-
-#: elf.c:2873
-#, c-format
-msgid "Error: First section in segment (%s) starts at 0x%x"
-msgstr ""
-
-#: elf.c:2876
-#, c-format
-msgid " whereas segment starts at 0x%x"
-msgstr ""
-
-#: elf.c:3146
-#, c-format
-msgid "%s: warning: allocated section `%s' not in segment"
-msgstr ""
-
-#: elf.c:3528
-#, c-format
-msgid "%s: symbol `%s' required but not present"
+"%s: warning: unresolvable relocation against symbol `%s' from %s section"
msgstr ""
-#: elf.c:3537
-#, c-format
-msgid ""
-"elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = "
-"0x%.8lx%s\n"
+#: elf-m10200.c:455 elf-m10300.c:670 elf32-arm.h:1894 elf32-avr.c:844
+#: elf32-d10v.c:479 elf32-fr30.c:651 elf32-m32r.c:1265 elf32-v850.c:1677
+msgid "internal error: out of range error"
msgstr ""
-#: elf.c:3679
-#, c-format
-msgid "%s: warning: Empty loadable segment detected\n"
+#: elf-m10200.c:459 elf-m10300.c:674 elf32-arm.h:1898 elf32-avr.c:848
+#: elf32-d10v.c:483 elf32-fr30.c:655 elf32-m32r.c:1269 elf32-v850.c:1681
+msgid "internal error: unsupported relocation error"
msgstr ""
-#: elf.c:4956
-#, c-format
-msgid "%s: unsupported relocation type %s"
+#: elf-m10200.c:463 elf-m10300.c:678 elf32-arm.h:1902 elf32-d10v.c:487
+#: elf32-m32r.c:1273
+msgid "internal error: dangerous error"
msgstr ""
-#: elf32-arm.h:1787 elf32-i386.c:1304 elf32-ppc.c:3092
-#, c-format
-msgid ""
-"%s: warning: unresolvable relocation against symbol `%s' from %s section"
+#: elf-m10200.c:467 elf-m10300.c:682 elf32-arm.h:1906 elf32-avr.c:856
+#: elf32-d10v.c:491 elf32-fr30.c:663 elf32-m32r.c:1277 elf32-v850.c:1701
+msgid "internal error: unknown error"
msgstr ""
-#: elf32-arm.h:1891
+#: elf32-arm.h:1934
#, c-format
msgid ""
"Warning: Not setting interwork flag of %s since it has already been "
"specified as non-interworking"
msgstr ""
-#: elf32-arm.h:1895
+#: elf32-arm.h:1938
#, c-format
msgid "Warning: Clearing the interwork flag of %s due to outside request"
msgstr ""
-#: elf32-arm.h:1943
+#: elf32-arm.h:1989
#, c-format
msgid ""
"Warning: Clearing the interwork flag in %s because non-interworking code in "
"%s has been linked with it"
msgstr ""
-#: elf32-arm.h:1977
+#: elf32-arm.h:2058
#, c-format
-msgid "%s: compiled for a %s endian system and target is %s endian"
+msgid ""
+"Error: %s compiled for EABI version %d, whereas %s is compiled for version %d"
msgstr ""
-#: elf32-arm.h:2023
+#: elf32-arm.h:2070
#, c-format
msgid "Error: %s compiled for APCS-%d, whereas %s is compiled for APCS-%d"
msgstr ""
-#: elf32-arm.h:2031
+#: elf32-arm.h:2078
#, c-format
msgid ""
"Error: %s passes floats in %s registers, whereas %s passes them in %s "
"registers"
msgstr ""
-#: elf32-arm.h:2034 elf32-arm.h:2036
+#: elf32-arm.h:2081 elf32-arm.h:2083
msgid "float"
msgstr ""
-#: elf32-arm.h:2034 elf32-arm.h:2036
+#: elf32-arm.h:2081 elf32-arm.h:2083
msgid "integer"
msgstr ""
-#: elf32-arm.h:2039
+#: elf32-arm.h:2086
#, c-format
msgid "Error: %s is compiled as position %s code, whereas %s is not"
msgstr ""
-#: elf32-arm.h:2042
+#: elf32-arm.h:2089
msgid "independent"
msgstr ""
-#: elf32-arm.h:2042
+#: elf32-arm.h:2089
msgid "dependent"
msgstr ""
-#: elf32-arm.h:2048
+#: elf32-arm.h:2095
#, c-format
msgid "Warning: %s %s interworking, whereas %s %s"
msgstr ""
-#: elf32-arm.h:2051
+#: elf32-arm.h:2098
msgid "supports"
msgstr ""
-#: elf32-arm.h:2051
+#: elf32-arm.h:2098
msgid "does not support"
msgstr ""
-#: elf32-arm.h:2053
+#: elf32-arm.h:2100
msgid "does not"
msgstr ""
-#: elf32-arm.h:2053
+#: elf32-arm.h:2100
msgid "does"
msgstr ""
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-arm.h:2076 elf32-m68k.c:430 elf32-mips.c:2634
+#: elf32-arm.h:2125 elf32-m68k.c:430 elf32-mips.c:2621
#, c-format
msgid "private flags = %lx:"
msgstr ""
-#: elf32-arm.h:2079
+#: elf32-arm.h:2134
msgid " [interworking enabled]"
msgstr ""
-#: elf32-arm.h:2081
-msgid " [interworking not enabled]"
-msgstr ""
-
-#: elf32-arm.h:2084
+#: elf32-arm.h:2137
msgid " [APCS-26]"
msgstr ""
-#: elf32-arm.h:2086
+#: elf32-arm.h:2139
msgid " [APCS-32]"
msgstr ""
-#: elf32-fr30.c:659 elf32-v850.c:1685
+#: elf32-arm.h:2148
+msgid " [new ABI]"
+msgstr ""
+
+#: elf32-arm.h:2151
+msgid " [old ABI]"
+msgstr ""
+
+#: elf32-arm.h:2154
+msgid " [software FP]"
+msgstr ""
+
+#: elf32-arm.h:2161
+msgid " [Version1 EABI]"
+msgstr ""
+
+#: elf32-arm.h:2164
+msgid " [sorted symbol table]"
+msgstr ""
+
+#: elf32-arm.h:2166
+msgid " [unsorted symbol table]"
+msgstr ""
+
+#: elf32-arm.h:2172
+msgid " <EABI version unrecognised>"
+msgstr ""
+
+#: elf32-arm.h:2179
+msgid " [relocatable executable]"
+msgstr ""
+
+#: elf32-arm.h:2182
+msgid " [has entry point]"
+msgstr ""
+
+#: elf32-arm.h:2187
+msgid "<Unrecognised flag bits set>"
+msgstr ""
+
+#: elf32-avr.c:852 elf32-fr30.c:659 elf32-v850.c:1685
msgid "internal error: dangerous relocation"
msgstr ""
-#: elf32-i386.c:239
+#: elf32-i386.c:274
#, c-format
msgid "%s: invalid relocation type %d"
msgstr ""
@@ -746,7 +711,7 @@ msgstr ""
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr ""
-#: elf32-m32r.c:1000 elf32-ppc.c:2963
+#: elf32-m32r.c:1000 elf32-ppc.c:2950 elf64-ia64.c:3185
#, c-format
msgid "%s: unknown relocation type %d"
msgstr ""
@@ -778,17 +743,12 @@ msgstr ""
msgid " [cpu32]"
msgstr ""
-#: elf32-mcore.c:329
-#, c-format
-msgid "%s: compiled for a %s endian system and target is %s endian.\n"
-msgstr ""
-
-#: elf32-mcore.c:377 elf32-mcore.c:504
+#: elf32-mcore.c:367 elf32-mcore.c:494
#, c-format
msgid "%s: Relocation %s (%d) is not currently supported.\n"
msgstr ""
-#: elf32-mcore.c:463
+#: elf32-mcore.c:453
#, c-format
msgid "%s: Unknown relocation type %d\n"
msgstr ""
@@ -802,228 +762,218 @@ msgstr ""
msgid "Linking mips16 objects into %s format is not supported"
msgstr ""
-#: elf32-mips.c:2469 elf32-ppc.c:1408
-#, c-format
-msgid "%s: compiled for a big endian system and target is little endian"
-msgstr ""
-
-#: elf32-mips.c:2471 elf32-ppc.c:1410
-#, c-format
-msgid "%s: compiled for a little endian system and target is big endian"
-msgstr ""
-
-#: elf32-mips.c:2520
+#: elf32-mips.c:2507
#, c-format
msgid "%s: linking PIC files with non-PIC files"
msgstr ""
-#: elf32-mips.c:2530
+#: elf32-mips.c:2517
#, c-format
msgid "%s: linking abicalls files with non-abicalls files"
msgstr ""
-#: elf32-mips.c:2560
+#: elf32-mips.c:2547
#, c-format
msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
msgstr ""
-#: elf32-mips.c:2569
+#: elf32-mips.c:2556
#, c-format
msgid "%s: ISA mismatch (%d) with previous modules (%d)"
msgstr ""
-#: elf32-mips.c:2592
+#: elf32-mips.c:2579
#, c-format
msgid "%s: ABI mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elf32-mips.c:2606 elf32-ppc.c:1477 elf64-sparc.c:2844
+#: elf32-mips.c:2593 elf32-ppc.c:1464 elf64-sparc.c:2957
#, c-format
msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
msgstr ""
-#: elf32-mips.c:2637
+#: elf32-mips.c:2624
msgid " [abi=O32]"
msgstr ""
-#: elf32-mips.c:2639
+#: elf32-mips.c:2626
msgid " [abi=O64]"
msgstr ""
-#: elf32-mips.c:2641
+#: elf32-mips.c:2628
msgid " [abi=EABI32]"
msgstr ""
-#: elf32-mips.c:2643
+#: elf32-mips.c:2630
msgid " [abi=EABI64]"
msgstr ""
-#: elf32-mips.c:2645
+#: elf32-mips.c:2632
msgid " [abi unknown]"
msgstr ""
-#: elf32-mips.c:2647
+#: elf32-mips.c:2634
msgid " [abi=N32]"
msgstr ""
-#: elf32-mips.c:2649
+#: elf32-mips.c:2636
msgid " [abi=64]"
msgstr ""
-#: elf32-mips.c:2651
+#: elf32-mips.c:2638
msgid " [no abi set]"
msgstr ""
-#: elf32-mips.c:2654
+#: elf32-mips.c:2641
msgid " [mips1]"
msgstr ""
-#: elf32-mips.c:2656
+#: elf32-mips.c:2643
msgid " [mips2]"
msgstr ""
-#: elf32-mips.c:2658
+#: elf32-mips.c:2645
msgid " [mips3]"
msgstr ""
-#: elf32-mips.c:2660
+#: elf32-mips.c:2647
msgid " [mips4]"
msgstr ""
-#: elf32-mips.c:2662
+#: elf32-mips.c:2649
msgid " [unknown ISA]"
msgstr ""
-#: elf32-mips.c:2665
+#: elf32-mips.c:2652
msgid " [32bitmode]"
msgstr ""
-#: elf32-mips.c:2667
+#: elf32-mips.c:2654
msgid " [not 32bitmode]"
msgstr ""
-#: elf32-mips.c:4270
+#: elf32-mips.c:4257
msgid "static procedure (no name)"
msgstr ""
-#: elf32-mips.c:4887 elf64-alpha.c:4364
+#: elf32-mips.c:4874 elf64-alpha.c:4367
#, c-format
msgid "%s: illegal section name `%s'"
msgstr ""
-#: elf32-mips.c:5414
+#: elf32-mips.c:5401
msgid "not enough GOT space for local GOT entries"
msgstr ""
-#: elf32-mips.c:6493
+#: elf32-mips.c:6495
#, c-format
msgid "%s: %s+0x%lx: jump to stub routine which is not jal"
msgstr ""
-#: elf32-mips.c:7521
+#: elf32-mips.c:7523
#, c-format
msgid "%s: CALL16 reloc at 0x%lx not against global symbol"
msgstr ""
-#: elf32-ppc.c:1443
+#: elf32-ppc.c:1430
#, c-format
msgid ""
"%s: compiled with -mrelocatable and linked with modules compiled normally"
msgstr ""
-#: elf32-ppc.c:1451
+#: elf32-ppc.c:1438
#, c-format
msgid ""
"%s: compiled normally and linked with modules compiled with -mrelocatable"
msgstr ""
-#: elf32-ppc.c:1578
+#: elf32-ppc.c:1565
#, c-format
msgid "%s: Unknown special linker type %d"
msgstr ""
-#: elf32-ppc.c:2251 elf32-ppc.c:2285 elf32-ppc.c:2320
+#: elf32-ppc.c:2238 elf32-ppc.c:2272 elf32-ppc.c:2307
#, c-format
msgid "%s: relocation %s cannot be used when making a shared object"
msgstr ""
-#: elf32-ppc.c:3123
+#: elf32-ppc.c:3116
#, c-format
msgid "%s: unknown relocation type %d for symbol %s"
msgstr ""
-#: elf32-ppc.c:3491 elf32-ppc.c:3513 elf32-ppc.c:3562
+#: elf32-ppc.c:3484 elf32-ppc.c:3506 elf32-ppc.c:3555
#, c-format
msgid ""
"%s: The target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr ""
-#: elf32-ppc.c:3628
+#: elf32-ppc.c:3621
#, c-format
msgid "%s: Relocation %s is not yet supported for symbol %s."
msgstr ""
-#: elf32-sh.c:681
+#: elf32-sh.c:819
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES offset"
msgstr ""
-#: elf32-sh.c:693
+#: elf32-sh.c:831
#, c-format
msgid "%s: 0x%lx: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr ""
-#: elf32-sh.c:710
+#: elf32-sh.c:848
#, c-format
msgid "%s: 0x%lx: warning: bad R_SH_USES load offset"
msgstr ""
-#: elf32-sh.c:725
+#: elf32-sh.c:863
#, c-format
msgid "%s: 0x%lx: warning: could not find expected reloc"
msgstr ""
-#: elf32-sh.c:762
+#: elf32-sh.c:900
#, c-format
msgid "%s: 0x%lx: warning: symbol in unexpected section"
msgstr ""
-#: elf32-sh.c:884
+#: elf32-sh.c:1022
#, c-format
msgid "%s: 0x%lx: warning: could not find expected COUNT reloc"
msgstr ""
-#: elf32-sh.c:893
+#: elf32-sh.c:1031
#, c-format
msgid "%s: 0x%lx: warning: bad count"
msgstr ""
-#: elf32-sh.c:1279 elf32-sh.c:1666
+#: elf32-sh.c:1424 elf32-sh.c:1811
#, c-format
msgid "%s: 0x%lx: fatal: reloc overflow while relaxing"
msgstr ""
-#: elf32-sparc.c:1486 elf64-sparc.c:2242
+#: elf32-sparc.c:1509 elf64-sparc.c:2262
#, c-format
msgid "%s: probably compiled without -fPIC?"
msgstr ""
-#: elf32-sparc.c:1856
+#: elf32-sparc.c:1970
#, c-format
msgid "%s: compiled for a v8plus system and target is v8"
msgstr ""
-#: elf32-sparc.c:1865
+#: elf32-sparc.c:1979
#, c-format
msgid "%s: compiled for a v8plusa system and target is v8plus"
msgstr ""
-#: elf32-sparc.c:1873
+#: elf32-sparc.c:1987
#, c-format
msgid "%s: compiled for a 64 bit system and target is 32 bit"
msgstr ""
-#: elf32-sparc.c:1888
+#: elf32-sparc.c:2002
#, c-format
msgid "%s: linking little endian files with big endian files"
msgstr ""
@@ -1104,77 +1054,227 @@ msgstr ""
msgid "%s: .got subsegment exceeds 64K (size %d)"
msgstr ""
-#: elf64-sparc.c:1249
+#: elf64-ia64.c:1826
+msgid "@pltoff reloc against local symbol"
+msgstr ""
+
+#: elf64-ia64.c:1873
+msgid "non-zero addend in @fptr reloc"
+msgstr ""
+
+#: elf64-ia64.c:3060
+#, c-format
+msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
+msgstr ""
+
+#: elf64-ia64.c:3071
+#, c-format
+msgid "%s: __gp does not cover short data segment"
+msgstr ""
+
+#: elf64-ia64.c:3335
+#, c-format
+msgid "%s: linking non-pic code in a shared library"
+msgstr ""
+
+#: elf64-ia64.c:3365
+#, c-format
+msgid "%s: @gprel relocation against dynamic symbol %s"
+msgstr ""
+
+#: elf64-ia64.c:3500
+#, c-format
+msgid "%s: dynamic relocation against speculation fixup"
+msgstr ""
+
+#: elf64-ia64.c:3508
+#, c-format
+msgid "%s: speculation fixup against undefined weak symbol"
+msgstr ""
+
+#: elf64-ia64.c:3665
+msgid "unsupported reloc"
+msgstr ""
+
+#: elf64-ia64.c:3979
+#, c-format
+msgid "%s: linking trap-on-NULL-dereference with non-trapping files"
+msgstr ""
+
+#: elf64-ia64.c:3988
+#, c-format
+msgid "%s: linking big-endian files with little-endian files"
+msgstr ""
+
+#: elf64-ia64.c:3997
+#, c-format
+msgid "%s: linking 64-bit files with 32-bit files"
+msgstr ""
+
+#: elf64-sparc.c:1250
#, c-format
msgid "%s: check_relocs: unhandled reloc type %d"
msgstr ""
-#: elf64-sparc.c:1286
+#: elf64-sparc.c:1287
msgid "%s: Only registers %%g[2367] can be declared using STT_REGISTER"
msgstr ""
-#: elf64-sparc.c:1306
+#: elf64-sparc.c:1307
msgid ""
"Register %%g%d used incompatibly: previously declared in %s to %s, in %s "
"redefined to %s"
msgstr ""
-#: elf64-sparc.c:1329
+#: elf64-sparc.c:1330
#, c-format
msgid "Symbol `%s' has differing types: previously %s, REGISTER in %s"
msgstr ""
-#: elf64-sparc.c:1375
+#: elf64-sparc.c:1376
#, c-format
msgid "Symbol `%s' has differing types: REGISTER in %s, %s in %s"
msgstr ""
-#: elf64-sparc.c:2825
+#: elf64-sparc.c:2938
#, c-format
msgid "%s: linking UltraSPARC specific with HAL specific code"
msgstr ""
-#: elfcode.h:1061
+#: elf.c:327
+#, c-format
+msgid "%s: invalid string offset %u >= %lu for section `%s'"
+msgstr ""
+
+#: elf.c:550
+msgid ""
+"\n"
+"Program Header:\n"
+msgstr ""
+
+#: elf.c:598
+msgid ""
+"\n"
+"Dynamic Section:\n"
+msgstr ""
+
+#: elf.c:700
+msgid ""
+"\n"
+"Version definitions:\n"
+msgstr ""
+
+#: elf.c:723
+msgid ""
+"\n"
+"Version References:\n"
+msgstr ""
+
+#: elf.c:728
+#, c-format
+msgid " required from %s:\n"
+msgstr ""
+
+#: elf.c:1292
+#, c-format
+msgid "%s: invalid link %lu for reloc section %s (index %u)"
+msgstr ""
+
+#: elf.c:2069
+#, c-format
+msgid ""
+"creating section symbol, name = %s, value = 0x%.8lx, index = %d, section = "
+"0x%.8lx\n"
+msgstr ""
+
+#: elf.c:2672
+#, c-format
+msgid "%s: Not enough room for program headers (allocated %u, need %u)"
+msgstr ""
+
+#: elf.c:2771
+#, c-format
+msgid "%s: Not enough room for program headers, try linking with -N"
+msgstr ""
+
+#: elf.c:2897
+#, c-format
+msgid "Error: First section in segment (%s) starts at 0x%x"
+msgstr ""
+
+#: elf.c:2900
+#, c-format
+msgid " whereas segment starts at 0x%x"
+msgstr ""
+
+#: elf.c:3173
+#, c-format
+msgid "%s: warning: allocated section `%s' not in segment"
+msgstr ""
+
+#: elf.c:3564
+#, c-format
+msgid "%s: symbol `%s' required but not present"
+msgstr ""
+
+#: elf.c:3573
+#, c-format
+msgid ""
+"elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = "
+"0x%.8lx%s\n"
+msgstr ""
+
+#: elf.c:3715
+#, c-format
+msgid "%s: warning: Empty loadable segment detected\n"
+msgstr ""
+
+#: elf.c:5030
+#, c-format
+msgid "%s: unsupported relocation type %s"
+msgstr ""
+
+#: elfcode.h:1059
#, c-format
msgid "%s: version count (%ld) does not match symbol count (%ld)"
msgstr ""
-#: elflink.c:423
+#: elflink.c:416
#, c-format
msgid "%s: Section %s is already to large to put hole of %ld bytes in"
msgstr ""
-#: elflink.h:1388
+#: elflink.h:1387
#, c-format
msgid "%s: %s: invalid version %u (max %d)"
msgstr ""
-#: elflink.h:1429
+#: elflink.h:1428
#, c-format
msgid "%s: %s: invalid needed version %d"
msgstr ""
-#: elflink.h:1546
+#: elflink.h:1545
#, c-format
msgid "Warning: size of symbol `%s' changed from %lu to %lu in %s"
msgstr ""
-#: elflink.h:1790
+#: elflink.h:1789
#, c-format
msgid "%s: warning: unexpected redefinition of `%s'"
msgstr ""
-#: elflink.h:3480
+#: elflink.h:3496
#, c-format
msgid "warning: type and size of dynamic symbol `%s' are not defined"
msgstr ""
-#: elflink.h:3752
+#: elflink.h:3768
#, c-format
msgid "%s: undefined versioned symbol name %s"
msgstr ""
-#: elflink.h:4983
+#: elflink.h:5012
#, c-format
msgid "%s: could not find output section %s for input section %s"
msgstr ""
@@ -1283,6 +1383,16 @@ msgstr ""
msgid "not mapping: env var not set\n"
msgstr ""
+#: libbfd.c:1315
+#, c-format
+msgid "%s: compiled for a big endian system and target is little endian"
+msgstr ""
+
+#: libbfd.c:1317
+#, c-format
+msgid "%s: compiled for a little endian system and target is big endian"
+msgstr ""
+
#: linker.c:2679
#, c-format
msgid "Attempt to do relocateable link with %s input and %s output"
@@ -1299,330 +1409,328 @@ msgid "Unhandled OSF/1 core file section type %d\n"
msgstr ""
#. XXX code yet to be written.
-#: peicode.h:806
+#: peicode.h:804
#, c-format
msgid "%s: Unhandled import type; %x"
msgstr ""
-#: peicode.h:811
+#: peicode.h:809
#, c-format
msgid "%s: Unrecognised import type; %x"
msgstr ""
-#: peicode.h:825
+#: peicode.h:823
#, c-format
msgid "%s: Unrecognised import name type; %x"
msgstr ""
-#: peicode.h:1182
+#: peicode.h:1180
#, c-format
msgid "%s: Unrecognised machine type (0x%x) in Import Library Format archive"
msgstr ""
-#: peicode.h:1194
+#: peicode.h:1192
#, c-format
msgid ""
"%s: Recognised but unhandled machine type (0x%x) in Import Library Format "
"archive"
msgstr ""
-#: peicode.h:1211
+#: peicode.h:1209
#, c-format
msgid "%s: size field is zero in Import Library Format header"
msgstr ""
-#: peicode.h:1239
+#: peicode.h:1237
#, c-format
msgid "%s: string not null terminated in ILF object file."
msgstr ""
-#: peigen.c:938
+#: peigen.c:968
#, c-format
msgid "%s: line number overflow: 0x%lx > 0xffff"
msgstr ""
-#: peigen.c:950
+#: peigen.c:980
#, c-format
msgid "%s: reloc overflow: 0x%lx > 0xffff"
msgstr ""
-#: peigen.c:963
+#: peigen.c:993
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr ""
-#: peigen.c:964
+#: peigen.c:994
msgid "Import Directory [parts of .idata]"
msgstr ""
-#: peigen.c:965
+#: peigen.c:995
msgid "Resource Directory [.rsrc]"
msgstr ""
-#: peigen.c:966
+#: peigen.c:996
msgid "Exception Directory [.pdata]"
msgstr ""
-#: peigen.c:967
+#: peigen.c:997
msgid "Security Directory"
msgstr ""
-#: peigen.c:968
+#: peigen.c:998
msgid "Base Relocation Directory [.reloc]"
msgstr ""
-#: peigen.c:969
+#: peigen.c:999
msgid "Debug Directory"
msgstr ""
-#: peigen.c:970
+#: peigen.c:1000
msgid "Description Directory"
msgstr ""
-#: peigen.c:971
+#: peigen.c:1001
msgid "Special Directory"
msgstr ""
-#: peigen.c:972
+#: peigen.c:1002
msgid "Thread Storage Directory [.tls]"
msgstr ""
-#: peigen.c:973
+#: peigen.c:1003
msgid "Load Configuration Directory"
msgstr ""
-#: peigen.c:974
+#: peigen.c:1004
msgid "Bound Import Directory"
msgstr ""
-#: peigen.c:975
+#: peigen.c:1005
msgid "Import Address Table Directory"
msgstr ""
-#: peigen.c:976 peigen.c:977 peigen.c:978
-msgid "Reserved"
+#: peigen.c:1006
+msgid "Delay Import Directory"
msgstr ""
-#: peigen.c:1022
-msgid ""
-"\n"
-"The import table is the .idata section\n"
+#: peigen.c:1007 peigen.c:1008
+msgid "Reserved"
msgstr ""
-#: peigen.c:1044
+#: peigen.c:1072
msgid ""
"\n"
"There is an import table, but the section containing it could not be found\n"
msgstr ""
-#: peigen.c:1048
+#: peigen.c:1077
#, c-format
msgid ""
"\n"
"There is an import table in %s at 0x%lx\n"
msgstr ""
-#: peigen.c:1089
+#: peigen.c:1116
#, c-format
msgid ""
"\n"
"Function descriptor located at the start address: %04lx\n"
msgstr ""
-#: peigen.c:1092
+#: peigen.c:1119
#, c-format
msgid "\tcode-base %08lx toc (loadable/actual) %08lx/%08lx\n"
msgstr ""
-#: peigen.c:1098
+#: peigen.c:1125
msgid ""
"\n"
"No reldata section! Function descriptor not decoded.\n"
msgstr ""
-#: peigen.c:1103
+#: peigen.c:1130
+#, c-format
msgid ""
"\n"
-"The Import Tables (interpreted .idata section contents)\n"
+"The Import Tables (interpreted %s section contents)\n"
msgstr ""
-#: peigen.c:1105
+#: peigen.c:1133
msgid " vma: Hint Time Forward DLL First\n"
msgstr ""
-#: peigen.c:1107
+#: peigen.c:1135
msgid " Table Stamp Chain Name Thunk\n"
msgstr ""
-#: peigen.c:1157
+#: peigen.c:1185
#, c-format
msgid ""
"\n"
"\tDLL Name: %s\n"
msgstr ""
-#: peigen.c:1161 peigen.c:1224
+#: peigen.c:1189 peigen.c:1252
msgid "\tvma: Hint/Ord Member-Name\n"
msgstr ""
-#: peigen.c:1223
+#: peigen.c:1251
msgid "\tThe Import Address Table (difference found)\n"
msgstr ""
-#: peigen.c:1230
+#: peigen.c:1258
msgid "\t>>> Ran out of IAT members!\n"
msgstr ""
-#: peigen.c:1248
+#: peigen.c:1277
msgid "\tThe Import Address Table is identical\n"
msgstr ""
-#: peigen.c:1297
-msgid ""
-"\n"
-"The export table is the .edata section\n"
-msgstr ""
-
-#: peigen.c:1319
+#: peigen.c:1351
msgid ""
"\n"
"There is an export table, but the section containing it could not be found\n"
msgstr ""
-#: peigen.c:1323
+#: peigen.c:1356
#, c-format
msgid ""
"\n"
"There is an export table in %s at 0x%lx\n"
msgstr ""
-#: peigen.c:1355
+#: peigen.c:1387
+#, c-format
msgid ""
"\n"
-"The Export Tables (interpreted .edata section contents)\n"
+"The Export Tables (interpreted %s section contents)\n"
"\n"
msgstr ""
-#: peigen.c:1358
+#: peigen.c:1391
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr ""
-#: peigen.c:1361
+#: peigen.c:1394
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr ""
-#: peigen.c:1364
+#: peigen.c:1397
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr ""
-#: peigen.c:1367
+#: peigen.c:1400
msgid "Name \t\t\t\t"
msgstr ""
-#: peigen.c:1373
+#: peigen.c:1406
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr ""
-#: peigen.c:1376
+#: peigen.c:1409
msgid "Number in:\n"
msgstr ""
-#: peigen.c:1379
+#: peigen.c:1412
#, c-format
-msgid "\tExport Address Table \t\t%lx\n"
+msgid "\tExport Address Table \t\t%08lx\n"
msgstr ""
-#: peigen.c:1383
+#: peigen.c:1416
#, c-format
-msgid "\t[Name Pointer/Ordinal] Table\t%lu\n"
+msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr ""
-#: peigen.c:1386
+#: peigen.c:1419
msgid "Table Addresses\n"
msgstr ""
-#: peigen.c:1389
+#: peigen.c:1422
msgid "\tExport Address Table \t\t"
msgstr ""
-#: peigen.c:1394
+#: peigen.c:1427
msgid "\tName Pointer Table \t\t"
msgstr ""
-#: peigen.c:1399
+#: peigen.c:1432
msgid "\tOrdinal Table \t\t\t"
msgstr ""
-#: peigen.c:1415
+#: peigen.c:1448
#, c-format
msgid ""
"\n"
"Export Address Table -- Ordinal Base %ld\n"
msgstr ""
-#: peigen.c:1436
+#: peigen.c:1467
msgid "Forwarder RVA"
msgstr ""
-#: peigen.c:1444
+#: peigen.c:1478
msgid "Export RVA"
msgstr ""
-#: peigen.c:1451
+#: peigen.c:1485
msgid ""
"\n"
"[Ordinal/Name Pointer] Table\n"
msgstr ""
-#: peigen.c:1496
+#: peigen.c:1539
#, c-format
msgid "Warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr ""
-#: peigen.c:1500
+#: peigen.c:1543
msgid ""
"\n"
"The Function Table (interpreted .pdata section contents)\n"
msgstr ""
-#: peigen.c:1502
+#: peigen.c:1546
+msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
+msgstr ""
+
+#: peigen.c:1549
msgid " vma:\t\tBegin End EH EH PrologEnd Exception\n"
msgstr ""
-#: peigen.c:1504
+#: peigen.c:1551
msgid " \t\tAddress Address Handler Data Address Mask\n"
msgstr ""
-#: peigen.c:1576
+#: peigen.c:1624
msgid " Register save millicode"
msgstr ""
-#: peigen.c:1579
+#: peigen.c:1627
msgid " Register restore millicode"
msgstr ""
-#: peigen.c:1582
+#: peigen.c:1630
msgid " Glue code sequence"
msgstr ""
-#: peigen.c:1628
+#: peigen.c:1682
msgid ""
"\n"
"\n"
"PE File Base Relocations (interpreted .reloc section contents)\n"
msgstr ""
-#: peigen.c:1663
+#: peigen.c:1717
#, c-format
msgid ""
"\n"
"Virtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld\n"
msgstr ""
-#: peigen.c:1676
+#: peigen.c:1730
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr ""
@@ -1630,57 +1738,72 @@ msgstr ""
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peigen.c:1714
+#: peigen.c:1769
#, c-format
msgid ""
"\n"
"Characteristics 0x%x\n"
msgstr ""
-#: ppcboot.c:418
+#: pe-mips.c:657
+#, c-format
+msgid "%s: `ld -r' not supported with PE MIPS objects\n"
+msgstr ""
+
+#: pe-mips.c:820
+#, c-format
+msgid "%s: jump too far away\n"
+msgstr ""
+
+#: pe-mips.c:847
+#, c-format
+msgid "%s: bad pair/reflo after refhi\n"
+msgstr ""
+
+#: ppcboot.c:422
msgid ""
"\n"
"ppcboot header:\n"
msgstr ""
-#: ppcboot.c:419
+#: ppcboot.c:423
#, c-format
msgid "Entry offset = 0x%.8lx (%ld)\n"
msgstr ""
-#: ppcboot.c:420
+#: ppcboot.c:424
#, c-format
msgid "Length = 0x%.8lx (%ld)\n"
msgstr ""
-#: ppcboot.c:423
+#: ppcboot.c:427
#, c-format
msgid "Flag field = 0x%.2x\n"
msgstr ""
-#: ppcboot.c:429
+#: ppcboot.c:433
#, c-format
msgid "Partition name = \"%s\"\n"
msgstr ""
-#: ppcboot.c:448
+#: ppcboot.c:452
#, c-format
msgid ""
"\n"
"Partition[%d] start = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
msgstr ""
-#: ppcboot.c:454
+#: ppcboot.c:458
#, c-format
msgid "Partition[%d] end = { 0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x }\n"
msgstr ""
-#: ppcboot.c:460
+#: ppcboot.c:464
#, c-format
msgid "Partition[%d] sector = 0x%.8lx (%ld)\n"
msgstr ""
-#: ppcboot.c:461
+#: ppcboot.c:465
#, c-format
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr ""
@@ -1722,29 +1845,29 @@ msgstr ""
msgid "Object module NOT error-free !\n"
msgstr ""
-#: vms-misc.c:541
+#: vms-misc.c:544
#, c-format
msgid "Stack overflow (%d) in _bfd_vms_push"
msgstr ""
-#: vms-misc.c:560
+#: vms-misc.c:563
msgid "Stack underflow in _bfd_vms_pop"
msgstr ""
-#: vms-misc.c:931
+#: vms-misc.c:934
msgid "_bfd_vms_output_counted called with zero bytes"
msgstr ""
-#: vms-misc.c:936
+#: vms-misc.c:939
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr ""
-#: vms-misc.c:1069
+#: vms-misc.c:1072
#, c-format
msgid "Symbol %s replaced by %s\n"
msgstr ""
-#: vms-misc.c:1133
+#: vms-misc.c:1136
#, c-format
msgid "failed to enter %s"
msgstr ""
@@ -1940,97 +2063,97 @@ msgstr ""
msgid "Unhandled relocation %s"
msgstr ""
-#: xcofflink.c:1661
+#: xcofflink.c:1653
#, c-format
msgid "%s: `%s' has line numbers but no enclosing section"
msgstr ""
-#: xcofflink.c:1713
+#: xcofflink.c:1705
#, c-format
msgid "%s: class %d symbol `%s' has no aux entries"
msgstr ""
-#: xcofflink.c:1736
+#: xcofflink.c:1728
#, c-format
msgid "%s: symbol `%s' has unrecognized csect type %d"
msgstr ""
-#: xcofflink.c:1748
+#: xcofflink.c:1740
#, c-format
msgid "%s: bad XTY_ER symbol `%s': class %d scnum %d scnlen %d"
msgstr ""
-#: xcofflink.c:1787
+#: xcofflink.c:1779
#, c-format
msgid "%s: XMC_TC0 symbol `%s' is class %d scnlen %d"
msgstr ""
-#: xcofflink.c:1911
+#: xcofflink.c:1903
#, c-format
msgid "%s: symbol `%s' has unrecognized smclas %d"
msgstr ""
-#: xcofflink.c:1930
+#: xcofflink.c:1922
#, c-format
msgid "%s: csect `%s' not in enclosing section"
msgstr ""
-#: xcofflink.c:2034
+#: xcofflink.c:2026
#, c-format
msgid "%s: misplaced XTY_LD `%s'"
msgstr ""
-#: xcofflink.c:2345
+#: xcofflink.c:2337
#, c-format
msgid "%s: reloc %s:%d not in csect"
msgstr ""
-#: xcofflink.c:2480
+#: xcofflink.c:2472
#, c-format
msgid "%s: XCOFF shared object when not producing XCOFF output"
msgstr ""
-#: xcofflink.c:2501
+#: xcofflink.c:2493
#, c-format
msgid "%s: dynamic object with no .loader section"
msgstr ""
-#: xcofflink.c:3141
+#: xcofflink.c:3133
#, c-format
msgid "%s: no such symbol"
msgstr ""
-#: xcofflink.c:3733
+#: xcofflink.c:3725
#, c-format
msgid "warning: attempt to export undefined symbol `%s'"
msgstr ""
-#: xcofflink.c:4709
+#: xcofflink.c:4701
#, c-format
msgid "TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling"
msgstr ""
-#: xcofflink.c:5534 xcofflink.c:5890 xcofflink.c:5927 xcofflink.c:6244
+#: xcofflink.c:5526 xcofflink.c:5882 xcofflink.c:5919 xcofflink.c:6236
#, c-format
msgid "%s: loader reloc in unrecognized section `%s'"
msgstr ""
-#: xcofflink.c:5556 xcofflink.c:6255
+#: xcofflink.c:5548 xcofflink.c:6247
#, c-format
msgid "%s: `%s' in loader reloc but not loader sym"
msgstr ""
-#: xcofflink.c:5571
+#: xcofflink.c:5563
#, c-format
msgid "%s: loader reloc in read-only section %s"
msgstr ""
-#: xcofflink.c:6451
+#: xcofflink.c:6443
#, c-format
msgid "%s: unsupported relocation type 0x%02x"
msgstr ""
-#: xcofflink.c:6497
+#: xcofflink.c:6489
#, c-format
msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
msgstr ""
diff --git a/bfd/reloc.c b/bfd/reloc.c
index a14d552..119aea9 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -2881,6 +2881,23 @@ ENUMX
BFD_RELOC_IA64_LDXMOV
ENUMDOC
Intel IA64 Relocations.
+
+ENUM
+ BFD_RELOC_M68HC11_HI8
+ENUMDOC
+ Motorola 68HC11 reloc.
+ This is the 8 bits high part of an absolute address.
+ENUM
+ BFD_RELOC_M68HC11_LO8
+ENUMDOC
+ Motorola 68HC11 reloc.
+ This is the 8 bits low part of an absolute address.
+ENUM
+ BFD_RELOC_M68HC11_3B
+ENUMDOC
+ Motorola 68HC11 reloc.
+ This is the 3 bits of a value.
+
ENDSENUM
BFD_RELOC_UNUSED
CODE_FRAGMENT
diff --git a/bfd/section.c b/bfd/section.c
index ff977fd..be881d8 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -552,25 +552,25 @@ static const asymbol global_syms[] =
const asymbol * const SYM = (asymbol *) &global_syms[IDX]; \
const asection SEC = \
/* name, index, next, flags, set_vma, reloc_done, linker_mark, gc_mark */ \
- { NAME, 0, 0, FLAGS, 0, 0, 0, 0, \
+ { NAME, 0, NULL, FLAGS, 0, 0, 0, 0, \
\
/* vma, lma, _cooked_size, _raw_size, output_offset, output_section, */ \
0, 0, 0, 0, 0, (struct sec *) &SEC, \
\
/* alig..., reloc..., orel..., reloc_count, filepos, rel_..., line_... */ \
- 0, 0, 0, 0, 0, 0, 0, \
+ 0, NULL, NULL, 0, 0, 0, 0, \
\
/* userdata, contents, lineno, lineno_count */ \
- 0, 0, 0, 0, \
+ NULL, NULL, NULL, 0, \
\
/* comdat_info, moving_line_filepos, target_index, used_by_bfd, */ \
- NULL, 0, 0, 0, \
+ NULL, 0, 0, NULL, \
\
/* cons..., owner, symbol */ \
- 0, 0, (struct symbol_cache_entry *) &global_syms[IDX], \
+ NULL, NULL, (struct symbol_cache_entry *) &global_syms[IDX], \
\
/* symbol_ptr_ptr, link_order_head, ..._tail */ \
- (struct symbol_cache_entry **) &SYM, 0, 0 \
+ (struct symbol_cache_entry **) &SYM, NULL, NULL \
}
STD_SECTION (bfd_com_section, SEC_IS_COMMON, bfd_com_symbol,
diff --git a/bfd/targets.c b/bfd/targets.c
index 980f95c..c9f7f95 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -533,6 +533,8 @@ extern const bfd_target bfd_elf32_little_generic_vec;
extern const bfd_target bfd_elf32_littlemips_vec;
extern const bfd_target bfd_elf64_littlemips_vec;
extern const bfd_target bfd_elf32_m32r_vec;
+extern const bfd_target bfd_elf32_m68hc11_vec;
+extern const bfd_target bfd_elf32_m68hc12_vec;
extern const bfd_target bfd_elf32_m68k_vec;
extern const bfd_target bfd_elf32_m88k_vec;
extern const bfd_target bfd_elf32_mn10200_vec;
@@ -738,6 +740,8 @@ const bfd_target * const bfd_target_vector[] = {
&bfd_elf32_m32r_vec,
&bfd_elf32_mn10200_vec,
&bfd_elf32_mn10300_vec,
+ &bfd_elf32_m68hc11_vec,
+ &bfd_elf32_m68hc12_vec,
&bfd_elf32_m68k_vec,
&bfd_elf32_m88k_vec,
&bfd_elf32_sparc_vec,
diff --git a/binutils/po/POTFILES.in b/binutils/po/POTFILES.in
index a3a0586..861e0ff 100644
--- a/binutils/po/POTFILES.in
+++ b/binutils/po/POTFILES.in
@@ -14,8 +14,6 @@ debug.h
dlltool.c
dlltool.h
dllwrap.c
-dyn-string.c
-dyn-string.h
filemode.c
ieee.c
ieee.c
diff --git a/binutils/po/binutils.pot b/binutils/po/binutils.pot
index cfc4ed4..65fb9f5 100644
--- a/binutils/po/binutils.pot
+++ b/binutils/po/binutils.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-04-04 23:33+0930\n"
+"POT-Creation-Date: 2000-06-18 18:12-0700\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"
@@ -22,8 +22,8 @@ msgid ""
" [--basenames] [--functions] [addr addr ...]\n"
msgstr ""
-#: addr2line.c:83 ar.c:286 nlmconv.c:1141 nm.c:306 objcopy.c:344 objcopy.c:376
-#: objdump.c:277 readelf.c:1703 size.c:89 strings.c:512 windres.c:737
+#: addr2line.c:83 ar.c:287 nlmconv.c:1119 nm.c:306 objcopy.c:359 objcopy.c:391
+#: objdump.c:271 readelf.c:1818 size.c:91 strings.c:530 windres.c:737
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
@@ -33,264 +33,272 @@ msgstr ""
msgid "%s: can not get addresses from archive"
msgstr ""
-#: ar.c:235
+#: ar.c:236
#, c-format
msgid "no entry %s in archive\n"
msgstr ""
-#: ar.c:252
+#: ar.c:253
#, c-format
msgid ""
"Usage: %s [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file "
"file...\n"
msgstr ""
-#: ar.c:255
+#: ar.c:256
#, c-format
msgid " %s -M [<mri-script]\n"
msgstr ""
-#: ar.c:256
+#: ar.c:257
msgid " commands:\n"
msgstr ""
-#: ar.c:257
+#: ar.c:258
msgid " d - delete file(s) from the archive\n"
msgstr ""
-#: ar.c:258
+#: ar.c:259
msgid " m[ab] - move file(s) in the archive\n"
msgstr ""
-#: ar.c:259
+#: ar.c:260
msgid " p - print file(s) found in the archive\n"
msgstr ""
-#: ar.c:260
+#: ar.c:261
msgid " q[f] - quick append file(s) to the archive\n"
msgstr ""
-#: ar.c:261
+#: ar.c:262
msgid ""
" r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
msgstr ""
-#: ar.c:262
+#: ar.c:263
msgid " t - display contents of archive\n"
msgstr ""
-#: ar.c:263
+#: ar.c:264
msgid " x[o] - extract file(s) from the archive\n"
msgstr ""
-#: ar.c:264
+#: ar.c:265
msgid " command specific modifiers:\n"
msgstr ""
-#: ar.c:265
+#: ar.c:266
msgid " [a] - put file(s) after [member-name]\n"
msgstr ""
-#: ar.c:266
+#: ar.c:267
msgid " [b] - put file(s) before [member-name] (same as [i])\n"
msgstr ""
-#: ar.c:267
+#: ar.c:268
msgid " [N] - use instance [count] of name\n"
msgstr ""
-#: ar.c:268
+#: ar.c:269
msgid " [f] - truncate inserted file names\n"
msgstr ""
-#: ar.c:269
+#: ar.c:270
msgid " [P] - use full path names when matching\n"
msgstr ""
-#: ar.c:270
+#: ar.c:271
msgid " [o] - preserve original dates\n"
msgstr ""
-#: ar.c:271
+#: ar.c:272
msgid ""
" [u] - only replace files that are newer than current archive "
"contents\n"
msgstr ""
-#: ar.c:272
+#: ar.c:273
msgid " generic modifiers:\n"
msgstr ""
-#: ar.c:273
+#: ar.c:274
msgid " [c] - do not warn if the library had to be created\n"
msgstr ""
-#: ar.c:274
+#: ar.c:275
msgid " [s] - create an archive index (cf. ranlib)\n"
msgstr ""
-#: ar.c:275
+#: ar.c:276
msgid " [S] - do not build a symbol table\n"
msgstr ""
-#: ar.c:276
+#: ar.c:277
msgid " [v] - be verbose\n"
msgstr ""
-#: ar.c:277
+#: ar.c:278
msgid " [V] - display the version number\n"
msgstr ""
-#: ar.c:281
+#: ar.c:282
#, c-format
msgid "Usage: %s [-vV] archive\n"
msgstr ""
-#: ar.c:466
+#: ar.c:487
msgid "two different operation options specified"
msgstr ""
-#: ar.c:541
+#: ar.c:562
#, c-format
-msgid "%s: illegal option -- %c\n"
+msgid "illegal option -- %c"
msgstr ""
-#: ar.c:573
+#: ar.c:594
msgid "no operation specified"
msgstr ""
-#: ar.c:576
+#: ar.c:597
msgid "`u' is only meaningful with the `r' option."
msgstr ""
-#: ar.c:586
-msgid "`N' is only meaningful with the `x' and 'd' options."
+#: ar.c:607
+msgid "`N' is only meaningful with the `x' and `d' options."
msgstr ""
-#: ar.c:589
+#: ar.c:610
msgid "Value for `N' must be positive."
msgstr ""
-#: ar.c:672
+#: ar.c:693
#, c-format
-msgid "%s: internal error -- this option not implemented\n"
+msgid "internal error -- this option not implemented"
msgstr ""
-#: ar.c:790 ar.c:841 ar.c:1283 objcopy.c:1021
+#: ar.c:812 ar.c:864 ar.c:1310 objcopy.c:1110
#, c-format
msgid "internal stat error on %s"
msgstr ""
-#: ar.c:810 ar.c:878
+#: ar.c:816
+#, c-format
+msgid ""
+"\n"
+"<member %s>\n"
+"\n"
+msgstr ""
+
+#: ar.c:833 ar.c:901
#, c-format
msgid "%s is not a valid archive"
msgstr ""
-#: ar.c:846
+#: ar.c:869
#, c-format
msgid "stat returns negative size for %s"
msgstr ""
-#: ar.c:967
+#: ar.c:996
#, c-format
msgid "%s is not an archive"
msgstr ""
-#: ar.c:974
+#: ar.c:1003
#, c-format
-msgid "%s: creating %s\n"
+msgid "creating %s"
msgstr ""
-#: ar.c:1181
+#: ar.c:1209
#, c-format
msgid "No member named `%s'\n"
msgstr ""
-#: ar.c:1233
+#: ar.c:1261
#, c-format
-msgid "%s: no entry %s in archive %s!\n"
+msgid "no entry %s in archive %s!"
msgstr ""
-#: ar.c:1395
+#: ar.c:1422
#, c-format
msgid "%s: no archive map to update"
msgstr ""
-#: arsup.c:87
+#: arsup.c:88
#, c-format
msgid "No entry %s in archive.\n"
msgstr ""
-#: arsup.c:119
+#: arsup.c:120
#, c-format
msgid "Can't open file %s\n"
msgstr ""
-#: arsup.c:167
+#: arsup.c:170
#, c-format
msgid "%s: Can't open output archive %s\n"
msgstr ""
-#: arsup.c:179
+#: arsup.c:182
#, c-format
msgid "%s: Can't open input archive %s\n"
msgstr ""
-#: arsup.c:185
+#: arsup.c:188
#, c-format
msgid "%s: file %s is not an archive\n"
msgstr ""
-#: arsup.c:226
+#: arsup.c:229
#, c-format
msgid "%s: no output archive specified yet\n"
msgstr ""
-#: arsup.c:246 arsup.c:281 arsup.c:317 arsup.c:337 arsup.c:395
+#: arsup.c:249 arsup.c:284 arsup.c:320 arsup.c:340 arsup.c:398
#, c-format
msgid "%s: no open output archive\n"
msgstr ""
-#: arsup.c:254 arsup.c:355 arsup.c:375
+#: arsup.c:257 arsup.c:358 arsup.c:378
#, c-format
msgid "%s: can't open file %s\n"
msgstr ""
-#: arsup.c:302 arsup.c:371 arsup.c:450
+#: arsup.c:305 arsup.c:374 arsup.c:453
#, c-format
msgid "%s: can't find module file %s\n"
msgstr ""
-#: arsup.c:402
+#: arsup.c:405
#, c-format
msgid "Current open archive is %s\n"
msgstr ""
-#: arsup.c:429
+#: arsup.c:432
#, c-format
msgid "%s: no open archive\n"
msgstr ""
-#: bucomm.c:139
+#: bucomm.c:135
#, c-format
msgid "can't set BFD default target to `%s': %s"
msgstr ""
-#: bucomm.c:151
+#: bucomm.c:147
#, c-format
msgid "%s: Matching formats:"
msgstr ""
-#: bucomm.c:168
+#: bucomm.c:164
msgid "Supported targets:"
msgstr ""
-#: bucomm.c:170
+#: bucomm.c:166
#, c-format
msgid "%s: supported targets:"
msgstr ""
-#: bucomm.c:263
+#: bucomm.c:272
#, c-format
msgid "%s: bad number: %s"
msgstr ""
@@ -305,14 +313,13 @@ msgstr ""
msgid "%s: Print a human readable interpretation of a SYSROFF object file\n"
msgstr ""
-#: coffdump.c:498 srconv.c:1940 sysdump.c:755
+#: coffdump.c:498 srconv.c:1941 sysdump.c:755
#, c-format
msgid "GNU %s version %s\n"
msgstr ""
-#: coffdump.c:516 srconv.c:1977 sysdump.c:775
-#, c-format
-msgid "%s: no input file specified\n"
+#: coffdump.c:516 srconv.c:1975 sysdump.c:775
+msgid "no input file specified"
msgstr ""
#: debug.c:653
@@ -412,688 +419,880 @@ msgstr ""
msgid "debug_write_type: illegal type encountered"
msgstr ""
-#: dlltool.c:770 dlltool.c:794 dlltool.c:819
+#: dlltool.c:732 dlltool.c:756 dlltool.c:781
#, c-format
-msgid "Internal error: Unknown machine type: %d\n"
+msgid "Internal error: Unknown machine type: %d"
msgstr ""
-#: dlltool.c:856
+#: dlltool.c:818
#, c-format
msgid "Can't open def file: %s"
msgstr ""
-#: dlltool.c:861
+#: dlltool.c:823
#, c-format
msgid "Processing def file: %s"
msgstr ""
-#: dlltool.c:865
+#: dlltool.c:827
msgid "Processed def file"
msgstr ""
-#: dlltool.c:890
+#: dlltool.c:852
#, c-format
-msgid "Syntax error in def file %s:%d\n"
+msgid "Syntax error in def file %s:%d"
msgstr ""
-#: dlltool.c:923
+#: dlltool.c:885
#, c-format
msgid "NAME: %s base: %x"
msgstr ""
-#: dlltool.c:926
-msgid "Can't have LIBRARY and NAME\n"
+#: dlltool.c:888 dlltool.c:907
+msgid "Can't have LIBRARY and NAME"
msgstr ""
-#: dlltool.c:942
+#: dlltool.c:904
#, c-format
msgid "LIBRARY: %s base: %x"
msgstr ""
-#: dlltool.c:945
-#, c-format
-msgid "%s: Can't have LIBRARY and NAME\n"
-msgstr ""
-
-#: dlltool.c:1200 resrc.c:271
+#: dlltool.c:1162 resrc.c:271
#, c-format
msgid "wait: %s"
msgstr ""
-#: dlltool.c:1205 resrc.c:276
+#: dlltool.c:1167 dllwrap.c:456 resrc.c:276
#, c-format
msgid "subprocess got fatal signal %d"
msgstr ""
-#: dlltool.c:1211
+#: dlltool.c:1173 dllwrap.c:463 resrc.c:283
#, c-format
-msgid "%s exited with status %d\n"
+msgid "%s exited with status %d"
msgstr ""
-#: dlltool.c:1243
+#: dlltool.c:1205
#, c-format
-msgid "Sucking in info from %s section in %s\n"
+msgid "Sucking in info from %s section in %s"
msgstr ""
-#: dlltool.c:1367
+#: dlltool.c:1329
#, c-format
-msgid "Excluding symbol: %s\n"
+msgid "Excluding symbol: %s"
msgstr ""
-#: dlltool.c:1462 dlltool.c:1473 nm.c:904 nm.c:915 objdump.c:444 objdump.c:461
+#: dlltool.c:1424 dlltool.c:1435 nm.c:901 nm.c:912 objdump.c:440 objdump.c:457
#, c-format
-msgid "%s: no symbols\n"
+msgid "%s: no symbols"
msgstr ""
#. FIXME: we ought to read in and block out the base relocations
-#: dlltool.c:1500
+#: dlltool.c:1462
#, c-format
-msgid "Done reading %s\n"
+msgid "Done reading %s"
msgstr ""
-#: dlltool.c:1511
+#: dlltool.c:1473
#, c-format
msgid "Unable to open object file: %s"
msgstr ""
-#: dlltool.c:1514
+#: dlltool.c:1476
#, c-format
msgid "Scanning object file %s"
msgstr ""
-#: dlltool.c:1529
+#: dlltool.c:1491
#, c-format
msgid "Cannot produce mcore-elf dll from archive file: %s"
msgstr ""
-#: dlltool.c:1621
+#: dlltool.c:1583
msgid "Adding exports to output file"
msgstr ""
-#: dlltool.c:1666
+#: dlltool.c:1628
msgid "Added exports to output file"
msgstr ""
-#: dlltool.c:1790
+#: dlltool.c:1752
#, c-format
-msgid "Generating export file: %s\n"
+msgid "Generating export file: %s"
msgstr ""
-#: dlltool.c:1795
+#: dlltool.c:1757
#, c-format
msgid "Unable to open temporary assembler file: %s"
msgstr ""
-#: dlltool.c:1798
+#: dlltool.c:1760
#, c-format
msgid "Opened temporary file: %s"
msgstr ""
-#: dlltool.c:2012
+#: dlltool.c:1974
msgid "Generated exports file"
msgstr ""
-#: dlltool.c:2267
+#: dlltool.c:2229
#, c-format
msgid "bfd_open failed open stub file: %s"
msgstr ""
-#: dlltool.c:2270
+#: dlltool.c:2232
#, c-format
msgid "Creating stub file: %s"
msgstr ""
-#: dlltool.c:2657
+#: dlltool.c:2619
#, c-format
msgid "failed to open temporary head file: %s"
msgstr ""
-#: dlltool.c:2716
+#: dlltool.c:2678
#, c-format
msgid "failed to open temporary tail file: %s"
msgstr ""
-#: dlltool.c:2784
+#: dlltool.c:2746
#, c-format
msgid "Can't open .lib file: %s"
msgstr ""
-#: dlltool.c:2787
+#: dlltool.c:2749
#, c-format
-msgid "Creating library file: %s\n"
+msgid "Creating library file: %s"
msgstr ""
-#: dlltool.c:2846
+#: dlltool.c:2808
#, c-format
-msgid "cannot delete %s: %s\n"
+msgid "cannot delete %s: %s"
msgstr ""
-#: dlltool.c:2850
+#: dlltool.c:2812
msgid "Created lib file"
msgstr ""
-#: dlltool.c:2955
+#: dlltool.c:2917
#, c-format
-msgid "Warning, ignoring duplicate EXPORT %s %d,%d\n"
+msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
msgstr ""
-#: dlltool.c:2961
+#: dlltool.c:2923
#, c-format
msgid "Error, duplicate EXPORT with oridinals: %s"
msgstr ""
-#: dlltool.c:3088
+#: dlltool.c:3050
msgid "Processing definitions"
msgstr ""
-#: dlltool.c:3126
+#: dlltool.c:3088
msgid "Processed definitions"
msgstr ""
#. xgetext:c-format
-#: dlltool.c:3137
+#: dlltool.c:3099 dllwrap.c:520
#, c-format
msgid "Usage %s <options> <object-files>\n"
msgstr ""
#. xgetext:c-format
-#: dlltool.c:3139
+#: dlltool.c:3101
#, c-format
msgid ""
" -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
msgstr ""
-#: dlltool.c:3140
+#: dlltool.c:3102
msgid ""
" possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, "
"ppc, thumb\n"
msgstr ""
-#: dlltool.c:3141
+#: dlltool.c:3103
msgid " -e --output-exp <outname> Generate an export file.\n"
msgstr ""
-#: dlltool.c:3142
+#: dlltool.c:3104
msgid " -l --output-lib <outname> Generate an interface library.\n"
msgstr ""
-#: dlltool.c:3143
+#: dlltool.c:3105
msgid " -a --add-indirect Add dll indirects to export file.\n"
msgstr ""
-#: dlltool.c:3144
+#: dlltool.c:3106
msgid ""
" -D --dllname <name> Name of input dll to put into interface lib.\n"
msgstr ""
-#: dlltool.c:3145
+#: dlltool.c:3107
msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
msgstr ""
-#: dlltool.c:3146
+#: dlltool.c:3108
msgid " -z --output-def <deffile> Name of .def file to be created.\n"
msgstr ""
-#: dlltool.c:3147
+#: dlltool.c:3109
msgid " --export-all-symbols Export all symbols to .def\n"
msgstr ""
-#: dlltool.c:3148
+#: dlltool.c:3110
msgid " --no-export-all-symbols Only export listed symbols\n"
msgstr ""
-#: dlltool.c:3149
+#: dlltool.c:3111
msgid " --exclude-symbols <list> Don't export <list>\n"
msgstr ""
-#: dlltool.c:3150
+#: dlltool.c:3112
msgid " --no-default-excludes Clear default exclude symbols\n"
msgstr ""
-#: dlltool.c:3151
+#: dlltool.c:3113
msgid " -b --base-file <basefile> Read linker generated base file.\n"
msgstr ""
-#: dlltool.c:3152
+#: dlltool.c:3114
msgid " -x --no-idata4 Don't generate idata$4 section.\n"
msgstr ""
-#: dlltool.c:3153
+#: dlltool.c:3115
msgid " -c --no-idata5 Don't generate idata$5 section.\n"
msgstr ""
-#: dlltool.c:3154
+#: dlltool.c:3116
msgid ""
" -U --add-underscore Add underscores to symbols in interface "
"library.\n"
msgstr ""
-#: dlltool.c:3155
+#: dlltool.c:3117
msgid " -k --kill-at Kill @<n> from exported names.\n"
msgstr ""
-#: dlltool.c:3156
+#: dlltool.c:3118
msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
msgstr ""
-#: dlltool.c:3157
+#: dlltool.c:3119
msgid " -S --as <name> Use <name> for assembler.\n"
msgstr ""
-#: dlltool.c:3158
+#: dlltool.c:3120
msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
msgstr ""
-#: dlltool.c:3159
+#: dlltool.c:3121
msgid ""
" -C --compat-implib Create backward compatible import library.\n"
msgstr ""
-#: dlltool.c:3160
+#: dlltool.c:3122
msgid ""
" -n --no-delete Keep temp files (repeat for extra "
"preservation).\n"
msgstr ""
-#: dlltool.c:3161
+#: dlltool.c:3123
msgid " -v --verbose Be verbose.\n"
msgstr ""
-#: dlltool.c:3162
+#: dlltool.c:3124
msgid " -V --version Display the program version.\n"
msgstr ""
-#: dlltool.c:3163
+#: dlltool.c:3125
msgid " -h --help Display this information.\n"
msgstr ""
-#: dlltool.c:3165
+#: dlltool.c:3127
msgid ""
" -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
msgstr ""
-#: dlltool.c:3166
+#: dlltool.c:3128
msgid " -L --linker <name> Use <name> as the linker.\n"
msgstr ""
-#: dlltool.c:3167
+#: dlltool.c:3129
msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
msgstr ""
-#: dlltool.c:3311
+#: dlltool.c:3273
#, c-format
msgid "Unable to open base-file: %s"
msgstr ""
-#: dlltool.c:3340
+#: dlltool.c:3302
#, c-format
msgid "Machine '%s' not supported"
msgstr ""
-#: dlltool.c:3443 dllwrap.c:215
+#: dlltool.c:3405 dllwrap.c:241
#, c-format
msgid "Tried file: %s"
msgstr ""
-#: dlltool.c:3450 dllwrap.c:222
+#: dlltool.c:3412 dllwrap.c:248
#, c-format
msgid "Using file: %s"
msgstr ""
-#: ieee.c:316
+#: dllwrap.c:335
+#, c-format
+msgid "Keeping temporary base file %s"
+msgstr ""
+
+#: dllwrap.c:337
+#, c-format
+msgid "Deleting temporary base file %s"
+msgstr ""
+
+#: dllwrap.c:351
+#, c-format
+msgid "Keeping temporary exp file %s"
+msgstr ""
+
+#: dllwrap.c:353
+#, c-format
+msgid "Deleting temporary exp file %s"
+msgstr ""
+
+#: dllwrap.c:366
+#, c-format
+msgid "Keeping temporary def file %s"
+msgstr ""
+
+#: dllwrap.c:368
+#, c-format
+msgid "Deleting temporary def file %s"
+msgstr ""
+
+#: dllwrap.c:521
+msgid " Generic options:\n"
+msgstr ""
+
+#: dllwrap.c:522
+msgid " --quiet, -q Work quietly\n"
+msgstr ""
+
+#: dllwrap.c:523
+msgid " --verbose, -v Verbose\n"
+msgstr ""
+
+#: dllwrap.c:524
+msgid " --version Print dllwrap version\n"
+msgstr ""
+
+#: dllwrap.c:525
+msgid " --implib <outname> Synonym for --output-lib\n"
+msgstr ""
+
+#: dllwrap.c:526
+#, c-format
+msgid " Options for %s:\n"
+msgstr ""
+
+#: dllwrap.c:527
+msgid " --driver-name <driver> Defaults to \"gcc\"\n"
+msgstr ""
+
+#: dllwrap.c:528
+msgid " --driver-flags <flags> Override default ld flags\n"
+msgstr ""
+
+#: dllwrap.c:529
+msgid " --dlltool-name <dlltool> Defaults to \"dlltool\"\n"
+msgstr ""
+
+#: dllwrap.c:530
+msgid " --entry <entry> Specify alternate DLL entry point\n"
+msgstr ""
+
+#: dllwrap.c:531
+msgid " --image-base <base> Specify image base address\n"
+msgstr ""
+
+#: dllwrap.c:532
+msgid " --target <machine> i386-cygwin32 or i386-mingw32\n"
+msgstr ""
+
+#: dllwrap.c:533
+msgid " --dry-run Show what needs to be run\n"
+msgstr ""
+
+#: dllwrap.c:534
+msgid " --mno-cygwin Create Mingw DLL\n"
+msgstr ""
+
+#: dllwrap.c:535
+msgid " Options passed to DLLTOOL:\n"
+msgstr ""
+
+#: dllwrap.c:536
+msgid " --machine <machine>\n"
+msgstr ""
+
+#: dllwrap.c:537
+msgid " --output-exp <outname> Generate export file.\n"
+msgstr ""
+
+#: dllwrap.c:538
+msgid " --output-lib <outname> Generate input library.\n"
+msgstr ""
+
+#: dllwrap.c:539
+msgid " --add-indirect Add dll indirects to export file.\n"
+msgstr ""
+
+#: dllwrap.c:540
+msgid " --dllname <name> Name of input dll to put into output lib.\n"
+msgstr ""
+
+#: dllwrap.c:541
+msgid " --def <deffile> Name input .def file\n"
+msgstr ""
+
+#: dllwrap.c:542
+msgid " --output-def <deffile> Name output .def file\n"
+msgstr ""
+
+#: dllwrap.c:543
+msgid " --export-all-symbols Export all symbols to .def\n"
+msgstr ""
+
+#: dllwrap.c:544
+msgid " --no-export-all-symbols Only export .drectve symbols\n"
+msgstr ""
+
+#: dllwrap.c:545
+msgid " --exclude-symbols <list> Exclude <list> from .def\n"
+msgstr ""
+
+#: dllwrap.c:546
+msgid " --no-default-excludes Zap default exclude symbols\n"
+msgstr ""
+
+#: dllwrap.c:547
+msgid " --base-file <basefile> Read linker generated base file\n"
+msgstr ""
+
+#: dllwrap.c:548
+msgid " --no-idata4 Don't generate idata$4 section\n"
+msgstr ""
+
+#: dllwrap.c:549
+msgid " --no-idata5 Don't generate idata$5 section\n"
+msgstr ""
+
+#: dllwrap.c:550
+msgid " -U Add underscores to .lib\n"
+msgstr ""
+
+#: dllwrap.c:551
+msgid " -k Kill @<n> from exported names\n"
+msgstr ""
+
+#: dllwrap.c:552
+msgid " --add-stdcall-alias Add aliases without @<n>\n"
+msgstr ""
+
+#: dllwrap.c:553
+msgid " --as <name> Use <name> for assembler\n"
+msgstr ""
+
+#: dllwrap.c:554
+msgid " --nodelete Keep temp files.\n"
+msgstr ""
+
+#: dllwrap.c:555
+msgid " Rest are passed unmodified to the language driver\n"
+msgstr ""
+
+#: dllwrap.c:816
+msgid "Must provide at least one of -o or --dllname options"
+msgstr ""
+
+#: dllwrap.c:844
+msgid "no export definition file provided"
+msgstr ""
+
+#: dllwrap.c:845
+msgid "creating one, but that may not be what you want"
+msgstr ""
+
+#: dllwrap.c:1006
+#, c-format
+msgid "DLLTOOL name : %s\n"
+msgstr ""
+
+#: dllwrap.c:1007
+#, c-format
+msgid "DLLTOOL options : %s\n"
+msgstr ""
+
+#: dllwrap.c:1008
+#, c-format
+msgid "DRIVER name : %s\n"
+msgstr ""
+
+#: dllwrap.c:1009
+#, c-format
+msgid "DRIVER options : %s\n"
+msgstr ""
+
+#: ieee.c:317
msgid "unexpected end of debugging information"
msgstr ""
-#: ieee.c:411
+#: ieee.c:412
msgid "invalid number"
msgstr ""
-#: ieee.c:470
+#: ieee.c:471
msgid "invalid string length"
msgstr ""
-#: ieee.c:527 ieee.c:568
+#: ieee.c:528 ieee.c:569
msgid "expression stack overflow"
msgstr ""
-#: ieee.c:547
+#: ieee.c:548
msgid "unsupported IEEE expression operator"
msgstr ""
-#: ieee.c:562
+#: ieee.c:563
msgid "unknown section"
msgstr ""
-#: ieee.c:583
+#: ieee.c:584
msgid "expression stack underflow"
msgstr ""
-#: ieee.c:597
+#: ieee.c:598
msgid "expression stack mismatch"
msgstr ""
-#: ieee.c:636
+#: ieee.c:637
msgid "unknown builtin type"
msgstr ""
-#: ieee.c:781
+#: ieee.c:782
msgid "BCD float type not supported"
msgstr ""
-#: ieee.c:927
+#: ieee.c:928
msgid "unexpected number"
msgstr ""
-#: ieee.c:934
+#: ieee.c:935
msgid "unexpected record type"
msgstr ""
-#: ieee.c:967
+#: ieee.c:968
msgid "blocks left on stack at end"
msgstr ""
-#: ieee.c:1232
+#: ieee.c:1233
msgid "unknown BB type"
msgstr ""
-#: ieee.c:1241
+#: ieee.c:1242
msgid "stack overflow"
msgstr ""
-#: ieee.c:1266
+#: ieee.c:1267
msgid "stack underflow"
msgstr ""
-#: ieee.c:1380 ieee.c:1452 ieee.c:2151
+#: ieee.c:1381 ieee.c:1453 ieee.c:2152
msgid "illegal variable index"
msgstr ""
-#: ieee.c:1430
+#: ieee.c:1431
msgid "illegal type index"
msgstr ""
-#: ieee.c:1440 ieee.c:1477
+#: ieee.c:1441 ieee.c:1478
msgid "unknown TY code"
msgstr ""
-#: ieee.c:1459
+#: ieee.c:1460
msgid "undefined variable in TY"
msgstr ""
#. Pascal file name. FIXME.
-#: ieee.c:1870
+#: ieee.c:1871
msgid "Pascal file name not supported"
msgstr ""
-#: ieee.c:1918
+#: ieee.c:1919
msgid "unsupported qualifer"
msgstr ""
-#: ieee.c:2189
+#: ieee.c:2190
msgid "undefined variable in ATN"
msgstr ""
-#: ieee.c:2232
+#: ieee.c:2233
msgid "unknown ATN type"
msgstr ""
#. Reserved for FORTRAN common.
-#: ieee.c:2354
+#: ieee.c:2355
msgid "unsupported ATN11"
msgstr ""
#. We have no way to record this information. FIXME.
-#: ieee.c:2381
+#: ieee.c:2382
msgid "unsupported ATN12"
msgstr ""
-#: ieee.c:2441
+#: ieee.c:2442
msgid "unexpected string in C++ misc"
msgstr ""
-#: ieee.c:2454
+#: ieee.c:2455
msgid "bad misc record"
msgstr ""
-#: ieee.c:2497
+#: ieee.c:2498
msgid "unrecognized C++ misc record"
msgstr ""
-#: ieee.c:2614
+#: ieee.c:2615
msgid "undefined C++ object"
msgstr ""
-#: ieee.c:2648
+#: ieee.c:2649
msgid "unrecognized C++ object spec"
msgstr ""
-#: ieee.c:2684
+#: ieee.c:2685
msgid "unsupported C++ object type"
msgstr ""
-#: ieee.c:2694
+#: ieee.c:2695
msgid "C++ base class not defined"
msgstr ""
-#: ieee.c:2706 ieee.c:2811
+#: ieee.c:2707 ieee.c:2812
msgid "C++ object has no fields"
msgstr ""
-#: ieee.c:2725
+#: ieee.c:2726
msgid "C++ base class not found in container"
msgstr ""
-#: ieee.c:2832
+#: ieee.c:2833
msgid "C++ data member not found in container"
msgstr ""
-#: ieee.c:2873 ieee.c:3023
+#: ieee.c:2874 ieee.c:3024
msgid "unknown C++ visibility"
msgstr ""
-#: ieee.c:2907
+#: ieee.c:2908
msgid "bad C++ field bit pos or size"
msgstr ""
-#: ieee.c:2999
+#: ieee.c:3000
msgid "bad type for C++ method function"
msgstr ""
-#: ieee.c:3009
+#: ieee.c:3010
msgid "no type information for C++ method function"
msgstr ""
-#: ieee.c:3048
+#: ieee.c:3049
msgid "C++ static virtual method"
msgstr ""
-#: ieee.c:3143
+#: ieee.c:3144
msgid "unrecognized C++ object overhead spec"
msgstr ""
-#: ieee.c:3182
+#: ieee.c:3183
msgid "undefined C++ vtable"
msgstr ""
-#: ieee.c:3253
+#: ieee.c:3254
msgid "C++ default values not in a function"
msgstr ""
-#: ieee.c:3293
+#: ieee.c:3294
msgid "unrecognized C++ default type"
msgstr ""
-#: ieee.c:3324
+#: ieee.c:3325
msgid "reference parameter is not a pointer"
msgstr ""
-#: ieee.c:3409
+#: ieee.c:3410
msgid "unrecognized C++ reference type"
msgstr ""
-#: ieee.c:3491
+#: ieee.c:3492
msgid "C++ reference not found"
msgstr ""
-#: ieee.c:3499
+#: ieee.c:3500
msgid "C++ reference is not pointer"
msgstr ""
-#: ieee.c:3528 ieee.c:3536
+#: ieee.c:3529 ieee.c:3537
msgid "missing required ASN"
msgstr ""
-#: ieee.c:3566 ieee.c:3574
+#: ieee.c:3567 ieee.c:3575
msgid "missing required ATN65"
msgstr ""
-#: ieee.c:3588
+#: ieee.c:3589
msgid "bad ATN65 record"
msgstr ""
-#: ieee.c:4235
+#: ieee.c:4236
msgid "IEEE numeric overflow: 0x"
msgstr ""
-#: ieee.c:4281
+#: ieee.c:4282
#, c-format
msgid "IEEE string length overflow: %u\n"
msgstr ""
-#: ieee.c:5315
+#: ieee.c:5324
#, c-format
msgid "IEEE unsupported integer type size %u\n"
msgstr ""
-#: ieee.c:5351
+#: ieee.c:5360
#, c-format
msgid "IEEE unsupported float type size %u\n"
msgstr ""
-#: ieee.c:5387
+#: ieee.c:5396
#, c-format
msgid "IEEE unsupported complex type size %u\n"
msgstr ""
#: nlmconv.c:275 srconv.c:1966
-#, c-format
-msgid "%s: input and output files must be different\n"
+msgid "input and output files must be different"
msgstr ""
-#: nlmconv.c:325
-#, c-format
-msgid "%s: input file named both on command line and with INPUT\n"
+#: nlmconv.c:322
+msgid "input file named both on command line and with INPUT"
msgstr ""
-#: nlmconv.c:336
-#, c-format
-msgid "%s: no input file\n"
+#: nlmconv.c:331
+msgid "no input file"
msgstr ""
-#: nlmconv.c:366
-#, c-format
-msgid "%s: no name for output file\n"
+#: nlmconv.c:361
+msgid "no name for output file"
msgstr ""
-#: nlmconv.c:381
-#, c-format
-msgid "%s: warning:input and output formats are not compatible\n"
+#: nlmconv.c:374
+msgid "warning: input and output formats are not compatible"
msgstr ""
-#: nlmconv.c:411
+#: nlmconv.c:403
msgid "make .bss section"
msgstr ""
-#: nlmconv.c:420
+#: nlmconv.c:412
msgid "make .nlmsections section"
msgstr ""
-#: nlmconv.c:422
+#: nlmconv.c:414
msgid "set .nlmsections flags"
msgstr ""
-#: nlmconv.c:450
+#: nlmconv.c:442
msgid "set .bss vma"
msgstr ""
-#: nlmconv.c:457
+#: nlmconv.c:449
msgid "set .data size"
msgstr ""
-#: nlmconv.c:638
+#: nlmconv.c:629
#, c-format
-msgid "%s: warning: symbol %s imported but not in import list\n"
+msgid "warning: symbol %s imported but not in import list"
msgstr ""
-#: nlmconv.c:658
+#: nlmconv.c:649
msgid "set start address"
msgstr ""
-#: nlmconv.c:707
+#: nlmconv.c:698
#, c-format
-msgid "%s: warning: START procedure %s not defined\n"
+msgid "warning: START procedure %s not defined"
msgstr ""
-#: nlmconv.c:710
+#: nlmconv.c:700
#, c-format
-msgid "%s: warning: EXIT procedure %s not defined\n"
+msgid "warning: EXIT procedure %s not defined"
msgstr ""
-#: nlmconv.c:714
+#: nlmconv.c:702
#, c-format
-msgid "%s: warning: CHECK procedure %s not defined\n"
+msgid "warning: CHECK procedure %s not defined"
msgstr ""
-#: nlmconv.c:736 nlmconv.c:928
+#: nlmconv.c:723 nlmconv.c:912
msgid "custom section"
msgstr ""
-#: nlmconv.c:757 nlmconv.c:960
+#: nlmconv.c:744 nlmconv.c:941
msgid "help section"
msgstr ""
-#: nlmconv.c:779 nlmconv.c:979
+#: nlmconv.c:766 nlmconv.c:959
msgid "message section"
msgstr ""
-#: nlmconv.c:795 nlmconv.c:1012
+#: nlmconv.c:782 nlmconv.c:992
msgid "module section"
msgstr ""
-#: nlmconv.c:815 nlmconv.c:1029
+#: nlmconv.c:802 nlmconv.c:1008
msgid "rpc section"
msgstr ""
-#: nlmconv.c:852
+#. There is no place to record this information.
+#: nlmconv.c:838
#, c-format
-msgid "%s:%s: warning: shared libraries can not have uninitialized data\n"
+msgid "%s: warning: shared libraries can not have uninitialized data"
msgstr ""
-#: nlmconv.c:873 nlmconv.c:1049
+#: nlmconv.c:859 nlmconv.c:1027
msgid "shared section"
msgstr ""
-#: nlmconv.c:881
-#, c-format
-msgid "%s: warning: No version number given\n"
+#: nlmconv.c:867
+msgid "warning: No version number given"
msgstr ""
-#: nlmconv.c:922 nlmconv.c:954 nlmconv.c:973 nlmconv.c:1023 nlmconv.c:1043
+#: nlmconv.c:907 nlmconv.c:936 nlmconv.c:954 nlmconv.c:1003 nlmconv.c:1022
#, c-format
-msgid "%s:%s: read: %s\n"
+msgid "%s: read: %s"
msgstr ""
-#: nlmconv.c:946
-#, c-format
-msgid "%s: warning: MAP and FULLMAP are not supported; try ld -M\n"
+#: nlmconv.c:929
+msgid "warning: MAP and FULLMAP are not supported; try ld -M"
msgstr ""
-#: nlmconv.c:1121
+#: nlmconv.c:1099
#, c-format
msgid "%s: Convert an object file into a NetWare Loadable Module\n"
msgstr ""
-#: nlmconv.c:1133
+#: nlmconv.c:1111
#, c-format
msgid ""
"Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n"
@@ -1103,61 +1302,61 @@ msgid ""
" [in-file [out-file]]\n"
msgstr ""
-#: nlmconv.c:1173
+#: nlmconv.c:1151
#, c-format
-msgid "%s: support not compiled in for %s\n"
+msgid "support not compiled in for %s"
msgstr ""
-#: nlmconv.c:1216
+#: nlmconv.c:1191
msgid "make section"
msgstr ""
-#: nlmconv.c:1230
+#: nlmconv.c:1205
msgid "set section size"
msgstr ""
-#: nlmconv.c:1236
+#: nlmconv.c:1211
msgid "set section alignment"
msgstr ""
-#: nlmconv.c:1240
+#: nlmconv.c:1215
msgid "set section flags"
msgstr ""
-#: nlmconv.c:1251
+#: nlmconv.c:1226
msgid "set .nlmsections size"
msgstr ""
-#: nlmconv.c:1339 nlmconv.c:1347 nlmconv.c:1356 nlmconv.c:1361
+#: nlmconv.c:1314 nlmconv.c:1322 nlmconv.c:1331 nlmconv.c:1336
msgid "set .nlmsection contents"
msgstr ""
-#: nlmconv.c:1864
+#: nlmconv.c:1839
msgid "stub section sizes"
msgstr ""
-#: nlmconv.c:1913
+#: nlmconv.c:1888
msgid "writing stub"
msgstr ""
-#: nlmconv.c:2003
+#: nlmconv.c:1978
#, c-format
-msgid "%s: unresolved PC relative reloc against %s\n"
+msgid "unresolved PC relative reloc against %s"
msgstr ""
-#: nlmconv.c:2068
+#: nlmconv.c:2042
#, c-format
-msgid "%s: overflow when adjusting relocation against %s\n"
+msgid "overflow when adjusting relocation against %s"
msgstr ""
-#: nlmconv.c:2191
+#: nlmconv.c:2159
#, c-format
msgid "%s: execution of %s failed: "
msgstr ""
-#: nlmconv.c:2206
+#: nlmconv.c:2174
#, c-format
-msgid "%s: Execution of %s failed\n"
+msgid "Execution of %s failed"
msgstr ""
#: nm.c:294
@@ -1175,20 +1374,20 @@ msgstr ""
#: nm.c:339
#, c-format
-msgid "%s: %s: invalid radix\n"
+msgid "%s: invalid radix"
msgstr ""
-#: nm.c:365
+#: nm.c:364
#, c-format
-msgid "%s: %s: invalid output format\n"
+msgid "%s: invalid output format"
msgstr ""
-#: nm.c:492
+#: nm.c:490
#, c-format
-msgid "%s: data size %ld\n"
+msgid "data size %ld"
msgstr ""
-#: nm.c:1283
+#: nm.c:1280
#, c-format
msgid ""
"\n"
@@ -1197,7 +1396,7 @@ msgid ""
"\n"
msgstr ""
-#: nm.c:1285
+#: nm.c:1282
#, c-format
msgid ""
"\n"
@@ -1206,14 +1405,14 @@ msgid ""
"\n"
msgstr ""
-#: nm.c:1286 nm.c:1340
+#: nm.c:1283 nm.c:1337
msgid ""
"Name Value Class Type Size Line "
"Section\n"
"\n"
msgstr ""
-#: nm.c:1337
+#: nm.c:1334
#, c-format
msgid ""
"\n"
@@ -1222,7 +1421,7 @@ msgid ""
"\n"
msgstr ""
-#: nm.c:1339
+#: nm.c:1336
#, c-format
msgid ""
"\n"
@@ -1231,22 +1430,22 @@ msgid ""
"\n"
msgstr ""
-#: nm.c:1510
+#: nm.c:1507
msgid ""
"\n"
"Archive index:\n"
msgstr ""
-#: objcopy.c:296
+#: objcopy.c:310
#, c-format
msgid "Usage: %s <switches> in-file [out-file]\n"
msgstr ""
-#: objcopy.c:297 objcopy.c:354
+#: objcopy.c:311 objcopy.c:369
msgid " The switches are:\n"
msgstr ""
-#: objcopy.c:298
+#: objcopy.c:312
msgid ""
" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
" -O --output-target <bfdname> Create an output file in format "
@@ -1307,17 +1506,18 @@ msgid ""
"style\n"
" --remove-leading-char Remove leading character from global "
"symbols\n"
+" --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
" -v --verbose List all object files modified\n"
" -V --version Display this program's version number\n"
" -h --help Display this output\n"
msgstr ""
-#: objcopy.c:353
+#: objcopy.c:368
#, c-format
msgid "Usage: %s <switches> in-file(s)\n"
msgstr ""
-#: objcopy.c:355
+#: objcopy.c:370
msgid ""
" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
" -O --output-target <bfdname> Create an output file in format "
@@ -1342,152 +1542,172 @@ msgid ""
" -o <file> Place stripped output into <file>\n"
msgstr ""
-#: objcopy.c:425
+#: objcopy.c:440
#, c-format
msgid "unrecognized section flag `%s'"
msgstr ""
-#: objcopy.c:426
-msgid ""
-"supported flags: alloc, load, noload, readonly, debug, code, data, rom, "
-"share, contents"
+#: objcopy.c:441
+#, c-format
+msgid "supported flags: %s"
msgstr ""
-#: objcopy.c:671
+#: objcopy.c:698
+#, c-format
+msgid "%s: Multiple redefinition of symbol \"%s\""
+msgstr ""
+
+#: objcopy.c:705
+#, c-format
+msgid "%s: Symbol \"%s\" is target of more than one redefinition"
+msgstr ""
+
+#: objcopy.c:759
#, c-format
msgid "copy from %s(%s) to %s(%s)\n"
msgstr ""
-#: objcopy.c:690
+#: objcopy.c:778
#, c-format
msgid "Warning: Output file cannot represent architecture %s"
msgstr ""
-#: objcopy.c:717
+#: objcopy.c:805
#, c-format
msgid "can't create section `%s': %s"
msgstr ""
-#: objcopy.c:803
+#: objcopy.c:891
#, c-format
msgid "Can't fill gap after %s: %s"
msgstr ""
-#: objcopy.c:828
+#: objcopy.c:916
#, c-format
msgid "Can't add padding to %s: %s"
msgstr ""
-#: objcopy.c:965
+#: objcopy.c:1054
#, c-format
msgid "%s: error copying private BFD data: %s"
msgstr ""
-#: objcopy.c:999
+#: objcopy.c:1088
#, c-format
msgid "cannot mkdir %s for archive copying (error: %s)"
msgstr ""
-#: objcopy.c:1268
+#: objcopy.c:1277
+msgid "making"
+msgstr ""
+
+#: objcopy.c:1286
+msgid "size"
+msgstr ""
+
+#: objcopy.c:1300
+msgid "vma"
+msgstr ""
+
+#: objcopy.c:1326
+msgid "alignment"
+msgstr ""
+
+#: objcopy.c:1335
+msgid "flags"
+msgstr ""
+
+#: objcopy.c:1349
+msgid "private data"
+msgstr ""
+
+#: objcopy.c:1357
#, c-format
msgid "%s: section `%s': error in %s: %s"
msgstr ""
-#: objcopy.c:1542
+#: objcopy.c:1631
#, c-format
msgid "%s: can't create debugging section: %s"
msgstr ""
-#: objcopy.c:1557
+#: objcopy.c:1646
#, c-format
msgid "%s: can't set debugging section contents: %s"
msgstr ""
-#: objcopy.c:1566
+#: objcopy.c:1655
#, c-format
msgid "%s: don't know how to write debugging information for %s"
msgstr ""
-#: objcopy.c:1671
+#: objcopy.c:1760
#, c-format
msgid "%s: cannot stat: %s"
msgstr ""
-#: objcopy.c:1721
+#: objcopy.c:1810
msgid "byte number must be non-negative"
msgstr ""
-#: objcopy.c:1726
+#: objcopy.c:1816
msgid "interleave must be positive"
msgstr ""
-#: objcopy.c:1742 objcopy.c:1749
+#: objcopy.c:1836 objcopy.c:1844
#, c-format
msgid "%s both copied and removed"
msgstr ""
-#: objcopy.c:1804
-msgid "bad format for --add-section NAME=FILENAME"
+#: objcopy.c:1913 objcopy.c:1983 objcopy.c:2084 objcopy.c:2112
+#, c-format
+msgid "bad format for %s"
msgstr ""
-#: objcopy.c:1807
+#: objcopy.c:1916
#, c-format
msgid "cannot stat: %s: %s"
msgstr ""
-#: objcopy.c:1825
+#: objcopy.c:1934
#, c-format
msgid "cannot open: %s: %s"
msgstr ""
-#: objcopy.c:1829
+#: objcopy.c:1938
#, c-format
msgid "%s: fread failed"
msgstr ""
-#: objcopy.c:1872
-#, c-format
-msgid "bad format for %s"
-msgstr ""
-
-#: objcopy.c:1936
+#: objcopy.c:2052
#, c-format
msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
msgstr ""
-#: objcopy.c:1960
-msgid "bad format for --set-section-flags"
-msgstr ""
-
-#: objcopy.c:1990
+#: objcopy.c:2146
msgid "byte number must be less than interleave"
msgstr ""
-#: objcopy.c:2009
+#: objcopy.c:2165
#, c-format
msgid "Cannot stat: %s: %s"
msgstr ""
-#: objcopy.c:2049
-#, c-format
-msgid "Warning: --change-section-vma %s%c0x%s never used"
-msgstr ""
-
-#: objcopy.c:2062
+#: objcopy.c:2205 objcopy.c:2219
#, c-format
-msgid "Warning: --change-section-lma %s%c0x%s never used"
+msgid "%s %s%c0x%s never used"
msgstr ""
-#: objdump.c:229
+#: objdump.c:223
#, c-format
msgid "Usage: %s <switches> file(s)\n"
msgstr ""
-#: objdump.c:230
+#: objdump.c:224
msgid " At least one of the following switches must be given:\n"
msgstr ""
-#: objdump.c:231
+#: objdump.c:225
msgid ""
" -a --archive-headers Display archive header information\n"
" -f --file-headers Display the contents of the overall file header\n"
@@ -1513,13 +1733,13 @@ msgid ""
" -H --help Display this information\n"
msgstr ""
-#: objdump.c:253
+#: objdump.c:247
msgid ""
"\n"
" The following switches are optional:\n"
msgstr ""
-#: objdump.c:254
+#: objdump.c:248
msgid ""
" -b --target <bfdname> Specify the target object format as "
"<bfdname>\n"
@@ -1552,1060 +1772,1100 @@ msgid ""
"\n"
msgstr ""
-#: objdump.c:420
+#: objdump.c:416
msgid "Sections:\n"
msgstr ""
-#: objdump.c:423
+#: objdump.c:419
msgid "Idx Name Size VMA LMA File off Algn"
msgstr ""
-#: objdump.c:425
+#: objdump.c:421
msgid ""
"Idx Name Size VMA LMA File off "
"Algn"
msgstr ""
-#: objdump.c:429
+#: objdump.c:425
msgid " Flags"
msgstr ""
-#: objdump.c:479
+#: objdump.c:475
#, c-format
-msgid "%s: %s: not a dynamic object\n"
+msgid "%s: not a dynamic object"
msgstr ""
-#: objdump.c:496
+#: objdump.c:491
#, c-format
-msgid "%s: %s: No dynamic symbols\n"
+msgid "%s: No dynamic symbols"
msgstr ""
-#: objdump.c:1200
-msgid "Out of virtual memory\n"
+#: objdump.c:1194
+msgid "Out of virtual memory"
msgstr ""
-#: objdump.c:1611
+#: objdump.c:1603
#, c-format
-msgid "%s: Can't use supplied machine %s\n"
+msgid "Can't use supplied machine %s"
msgstr ""
-#: objdump.c:1632
+#: objdump.c:1621
#, c-format
-msgid "%s: Can't disassemble for architecture %s\n"
+msgid "Can't disassemble for architecture %s\n"
msgstr ""
-#: objdump.c:1709
+#: objdump.c:1700
#, c-format
msgid "Disassembly of section %s:\n"
msgstr ""
-#: objdump.c:1883
+#: objdump.c:1874
#, c-format
msgid ""
"No %s section present\n"
"\n"
msgstr ""
-#: objdump.c:1890
+#: objdump.c:1881
#, c-format
-msgid "%s: %s has no %s section\n"
+msgid "%s has no %s section"
msgstr ""
-#: objdump.c:1904 objdump.c:1916
+#: objdump.c:1895
#, c-format
-msgid "%s: Reading %s section of %s failed: %s\n"
+msgid "Reading %s section of %s failed: %s"
msgstr ""
-#: objdump.c:1959
+#: objdump.c:1907
+#, c-format
+msgid "Reading %s section of %s failed: %s\n"
+msgstr ""
+
+#: objdump.c:1950
#, c-format
msgid ""
"Contents of %s section:\n"
"\n"
msgstr ""
-#: objdump.c:2059
+#: objdump.c:2050
#, c-format
msgid "architecture: %s, "
msgstr ""
-#: objdump.c:2062
+#: objdump.c:2053
#, c-format
msgid "flags 0x%08x:\n"
msgstr ""
-#: objdump.c:2075
+#: objdump.c:2066
msgid ""
"\n"
"start address 0x"
msgstr ""
-#: objdump.c:2107
+#: objdump.c:2098
#, c-format
msgid ""
"\n"
"%s: file format %s\n"
msgstr ""
-#: objdump.c:2150
+#: objdump.c:2140
#, c-format
-msgid "%s: printing debugging information failed\n"
+msgid "%s: printing debugging information failed"
msgstr ""
-#: objdump.c:2227
+#: objdump.c:2217
#, c-format
msgid "In archive %s:\n"
msgstr ""
-#: objdump.c:2279
+#: objdump.c:2269
#, c-format
msgid "Contents of section %s:\n"
msgstr ""
-#: objdump.c:2788
+#: objdump.c:2782
#, c-format
msgid "BFD header file version %s\n"
msgstr ""
-#: objdump.c:2861
-#, c-format
-msgid "%s: unrecognized -E option\n"
+#: objdump.c:2855
+msgid "unrecognized -E option"
msgstr ""
-#: objdump.c:2873
+#: objdump.c:2866
#, c-format
-msgid "%s: unrecognized --endian type `%s'\n"
+msgid "unrecognized --endian type `%s'"
msgstr ""
#: rdcoff.c:204
#, c-format
-msgid "%s: parse_coff_type: Bad type code 0x%x\n"
+msgid "parse_coff_type: Bad type code 0x%x"
msgstr ""
-#: rdcoff.c:423 rdcoff.c:531 rdcoff.c:712
+#: rdcoff.c:422 rdcoff.c:530 rdcoff.c:711
#, c-format
-msgid "%s: bfd_coff_get_syment failed: %s\n"
+msgid "bfd_coff_get_syment failed: %s"
msgstr ""
-#: rdcoff.c:439 rdcoff.c:732
+#: rdcoff.c:438 rdcoff.c:731
#, c-format
-msgid "%s: bfd_coff_get_auxent failed: %s\n"
+msgid "bfd_coff_get_auxent failed: %s"
msgstr ""
-#: rdcoff.c:798
+#: rdcoff.c:797
#, c-format
-msgid "%s: %ld: .bf without preceding function\n"
+msgid "%ld: .bf without preceding function"
msgstr ""
-#: rdcoff.c:848
+#: rdcoff.c:847
#, c-format
-msgid "%s: %ld: unexpected .ef\n"
+msgid "%ld: unexpected .ef\n"
msgstr ""
#: rddbg.c:87
#, c-format
-msgid "%s: no recognized debugging information\n"
+msgid "%s: no recognized debugging information"
msgstr ""
#: rddbg.c:410
msgid "Last stabs entries before error:\n"
msgstr ""
-#: readelf.c:303 readelf.c:329
+#: readelf.c:299 readelf.c:325
#, c-format
msgid "%s: Error: "
msgstr ""
-#: readelf.c:315 readelf.c:344
+#: readelf.c:311 readelf.c:340
#, c-format
msgid "%s: Warning: "
msgstr ""
-#: readelf.c:394 readelf.c:532
+#: readelf.c:390 readelf.c:528
#, c-format
msgid "Unhandled data length: %d\n"
msgstr ""
-#: readelf.c:591
+#: readelf.c:589
msgid "Don't know about relocations on this machine architecture\n"
msgstr ""
-#: readelf.c:631 readelf.c:660 readelf.c:692 readelf.c:720
+#: readelf.c:629 readelf.c:658 readelf.c:690 readelf.c:718
msgid "out of memory parsing relocs"
msgstr ""
-#: readelf.c:738
+#: readelf.c:736
msgid ""
" Offset Info Type Symbol's Value Symbol's Name "
"Addend\n"
msgstr ""
-#: readelf.c:741
+#: readelf.c:739
msgid " Offset Info Type Symbol's Value Symbol's Name\n"
msgstr ""
-#: readelf.c:885 readelf.c:887
+#: readelf.c:886 readelf.c:888
#, c-format
msgid "unrecognised: %-7lx"
msgstr ""
-#: readelf.c:912
+#: readelf.c:913
#, c-format
msgid "<string table index %3ld>"
msgstr ""
-#: readelf.c:1119
+#: readelf.c:1120
#, c-format
msgid "Processor Specific: %lx"
msgstr ""
-#: readelf.c:1138
+#: readelf.c:1139
#, c-format
msgid "Operating System specific: %lx"
msgstr ""
-#: readelf.c:1141 readelf.c:1506
+#: readelf.c:1142 readelf.c:1621
#, c-format
msgid "<unknown>: %lx"
msgstr ""
-#: readelf.c:1155
+#: readelf.c:1156
msgid "NONE (None)"
msgstr ""
-#: readelf.c:1156
+#: readelf.c:1157
msgid "REL (Relocatable file)"
msgstr ""
-#: readelf.c:1157
+#: readelf.c:1158
msgid "EXEC (Executable file)"
msgstr ""
-#: readelf.c:1158
+#: readelf.c:1159
msgid "DYN (Shared object file)"
msgstr ""
-#: readelf.c:1159
+#: readelf.c:1160
msgid "CORE (Core file)"
msgstr ""
-#: readelf.c:1163
+#: readelf.c:1164
#, c-format
msgid "Processor Specific: (%x)"
msgstr ""
-#: readelf.c:1165
+#: readelf.c:1166
#, c-format
msgid "OS Specific: (%x)"
msgstr ""
-#: readelf.c:1167 readelf.c:1244 readelf.c:1638
+#: readelf.c:1168 readelf.c:1246 readelf.c:1753
#, c-format
msgid "<unknown>: %x"
msgstr ""
-#: readelf.c:1180
+#: readelf.c:1181
msgid "None"
msgstr ""
-#: readelf.c:1676
+#: readelf.c:1791
msgid "Usage: readelf {options} elf-file(s)\n"
msgstr ""
-#: readelf.c:1677
+#: readelf.c:1792
msgid " Options are:\n"
msgstr ""
-#: readelf.c:1678
+#: readelf.c:1793
msgid " -a or --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
msgstr ""
-#: readelf.c:1679
+#: readelf.c:1794
msgid " -h or --file-header Display the ELF file header\n"
msgstr ""
-#: readelf.c:1680
+#: readelf.c:1795
msgid " -l or --program-headers or --segments\n"
msgstr ""
-#: readelf.c:1681
+#: readelf.c:1796
msgid " Display the program headers\n"
msgstr ""
-#: readelf.c:1682
+#: readelf.c:1797
msgid " -S or --section-headers or --sections\n"
msgstr ""
-#: readelf.c:1683
+#: readelf.c:1798
msgid " Display the sections' header\n"
msgstr ""
-#: readelf.c:1684
+#: readelf.c:1799
msgid " -e or --headers Equivalent to: -h -l -S\n"
msgstr ""
-#: readelf.c:1685
+#: readelf.c:1800
msgid " -s or --syms or --symbols Display the symbol table\n"
msgstr ""
-#: readelf.c:1686
+#: readelf.c:1801
msgid " -n or --notes Display the core notes (if present)\n"
msgstr ""
-#: readelf.c:1687
+#: readelf.c:1802
msgid " -r or --relocs Display the relocations (if present)\n"
msgstr ""
-#: readelf.c:1688
+#: readelf.c:1803
msgid " -d or --dynamic Display the dynamic segment (if present)\n"
msgstr ""
-#: readelf.c:1689
+#: readelf.c:1804
msgid " -V or --version-info Display the version sections (if present)\n"
msgstr ""
-#: readelf.c:1690
+#: readelf.c:1805
msgid ""
" -A or --arch-specific Display architecture specific information (if "
"any).\n"
msgstr ""
-#: readelf.c:1691
+#: readelf.c:1806
msgid ""
" -D or --use-dynamic Use the dynamic section info when displaying "
"symbols\n"
msgstr ""
-#: readelf.c:1692
+#: readelf.c:1807
msgid " -x <number> or --hex-dump=<number>\n"
msgstr ""
-#: readelf.c:1693
+#: readelf.c:1808
msgid " Dump the contents of section <number>\n"
msgstr ""
-#: readelf.c:1694
+#: readelf.c:1809
msgid " -w[liapr] or --debug-dump[=line,=info,=abbrev,=pubnames,=ranges]\n"
msgstr ""
-#: readelf.c:1695
+#: readelf.c:1810
msgid ""
" Display the contents of DWARF2 debug sections\n"
msgstr ""
-#: readelf.c:1697
+#: readelf.c:1812
msgid " -i <number> or --instruction-dump=<number>\n"
msgstr ""
-#: readelf.c:1698
+#: readelf.c:1813
msgid ""
" Disassemble the contents of section <number>\n"
msgstr ""
-#: readelf.c:1700
+#: readelf.c:1815
msgid " -I or --histogram Display histogram of bucket list lengths\n"
msgstr ""
-#: readelf.c:1701
+#: readelf.c:1816
msgid " -v or --version Display the version number of readelf\n"
msgstr ""
-#: readelf.c:1702
+#: readelf.c:1817
msgid " -H or --help Display this information\n"
msgstr ""
-#: readelf.c:1720
+#: readelf.c:1835
msgid "Out of memory allocating dump request table."
msgstr ""
-#: readelf.c:1855
+#: readelf.c:1970
#, c-format
msgid "Unrecognised debug option '%s'\n"
msgstr ""
-#: readelf.c:1880
+#: readelf.c:1995
#, c-format
msgid "Invalid option '-%c'\n"
msgstr ""
-#: readelf.c:1893
+#: readelf.c:2008
msgid "Nothing to do.\n"
msgstr ""
-#: readelf.c:1906 readelf.c:1923 readelf.c:3493
+#: readelf.c:2021 readelf.c:2038 readelf.c:3622
msgid "none"
msgstr ""
-#: readelf.c:1907
+#: readelf.c:2022
msgid "ELF32"
msgstr ""
-#: readelf.c:1908
+#: readelf.c:2023
msgid "ELF64"
msgstr ""
-#: readelf.c:1910 readelf.c:1927 readelf.c:1946
+#: readelf.c:2025 readelf.c:2042 readelf.c:2070
#, c-format
msgid "<unknown: %x>"
msgstr ""
-#: readelf.c:1924
+#: readelf.c:2039
msgid "2's complement, little endian"
msgstr ""
-#: readelf.c:1925
+#: readelf.c:2040
msgid "2's complement, big endian"
msgstr ""
-#: readelf.c:1940
+#: readelf.c:2055
msgid "UNIX - System V"
msgstr ""
-#: readelf.c:1941
+#: readelf.c:2056
msgid "UNIX - HP-UX"
msgstr ""
-#: readelf.c:1942
+#: readelf.c:2057
+msgid "UNIX - NetBSD"
+msgstr ""
+
+#: readelf.c:2058
msgid "UNIX - Linux"
msgstr ""
-#: readelf.c:1943
+#: readelf.c:2059
+msgid "GNU/Hurd"
+msgstr ""
+
+#: readelf.c:2060
+msgid "UNIX - Solaris"
+msgstr ""
+
+#: readelf.c:2061
+msgid "UNIX - Monterey"
+msgstr ""
+
+#: readelf.c:2062
+msgid "UNIX - IRIX"
+msgstr ""
+
+#: readelf.c:2063
+msgid "UNIX - FreeBSD"
+msgstr ""
+
+#: readelf.c:2064
+msgid "UNIX - TRU64"
+msgstr ""
+
+#: readelf.c:2065
+msgid "Novell - Modesto"
+msgstr ""
+
+#: readelf.c:2066
+msgid "UNIX - OpenBSD"
+msgstr ""
+
+#: readelf.c:2067
msgid "Standalone App"
msgstr ""
-#: readelf.c:1944
+#: readelf.c:2068
msgid "ARM"
msgstr ""
-#: readelf.c:1961
+#: readelf.c:2085
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr ""
-#: readelf.c:1969
+#: readelf.c:2093
msgid "ELF Header:\n"
msgstr ""
-#: readelf.c:1970
+#: readelf.c:2094
msgid " Magic: "
msgstr ""
-#: readelf.c:1974
+#: readelf.c:2098
#, c-format
msgid " Class: %s\n"
msgstr ""
-#: readelf.c:1976
+#: readelf.c:2100
#, c-format
msgid " Data: %s\n"
msgstr ""
-#: readelf.c:1978
+#: readelf.c:2102
#, c-format
msgid " Version: %d %s\n"
msgstr ""
-#: readelf.c:1985
+#: readelf.c:2109
#, c-format
msgid " OS/ABI: %s\n"
msgstr ""
-#: readelf.c:1987
+#: readelf.c:2111
#, c-format
msgid " ABI Version: %d\n"
msgstr ""
-#: readelf.c:1989
+#: readelf.c:2113
#, c-format
msgid " Type: %s\n"
msgstr ""
-#: readelf.c:1991
+#: readelf.c:2115
#, c-format
msgid " Machine: %s\n"
msgstr ""
-#: readelf.c:1993
+#: readelf.c:2117
#, c-format
msgid " Version: 0x%lx\n"
msgstr ""
-#: readelf.c:1996
+#: readelf.c:2120
msgid " Entry point address: "
msgstr ""
-#: readelf.c:1998
+#: readelf.c:2122
msgid ""
"\n"
" Start of program headers: "
msgstr ""
-#: readelf.c:2000
+#: readelf.c:2124
msgid ""
" (bytes into file)\n"
" Start of section headers: "
msgstr ""
-#: readelf.c:2002
+#: readelf.c:2126
msgid " (bytes into file)\n"
msgstr ""
-#: readelf.c:2004
+#: readelf.c:2128
#, c-format
msgid " Flags: 0x%lx%s\n"
msgstr ""
-#: readelf.c:2007
+#: readelf.c:2131
#, c-format
msgid " Size of this header: %ld (bytes)\n"
msgstr ""
-#: readelf.c:2009
+#: readelf.c:2133
#, c-format
msgid " Size of program headers: %ld (bytes)\n"
msgstr ""
-#: readelf.c:2011
+#: readelf.c:2135
#, c-format
msgid " Number of program headers: %ld\n"
msgstr ""
-#: readelf.c:2013
+#: readelf.c:2137
#, c-format
msgid " Size of section headers: %ld (bytes)\n"
msgstr ""
-#: readelf.c:2015
+#: readelf.c:2139
#, c-format
msgid " Number of section headers: %ld\n"
msgstr ""
-#: readelf.c:2017
+#: readelf.c:2141
#, c-format
msgid " Section header string table index: %ld\n"
msgstr ""
-#: readelf.c:2102
+#: readelf.c:2226
msgid ""
"\n"
"There are no program headers in this file.\n"
msgstr ""
-#: readelf.c:2108
+#: readelf.c:2232
#, c-format
msgid ""
"\n"
"Elf file type is %s\n"
msgstr ""
-#: readelf.c:2109
+#: readelf.c:2233
msgid "Entry point "
msgstr ""
-#: readelf.c:2111
+#: readelf.c:2235
#, c-format
msgid ""
"\n"
"There are %d program headers, starting at offset "
msgstr ""
-#: readelf.c:2122 readelf.c:2298 readelf.c:2340 readelf.c:2383 readelf.c:2424
-#: readelf.c:2932 readelf.c:2973 readelf.c:3149 readelf.c:4111 readelf.c:4125
-#: readelf.c:7023 readelf.c:7063
+#: readelf.c:2246 readelf.c:2422 readelf.c:2464 readelf.c:2507 readelf.c:2548
+#: readelf.c:3061 readelf.c:3102 readelf.c:3278 readelf.c:4240 readelf.c:4254
+#: readelf.c:7009 readelf.c:7049
msgid "Out of memory\n"
msgstr ""
-#: readelf.c:2140
+#: readelf.c:2264
#, c-format
msgid ""
"\n"
"Program Header%s:\n"
msgstr ""
-#: readelf.c:2144
+#: readelf.c:2268
msgid ""
" Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
msgstr ""
-#: readelf.c:2148
+#: readelf.c:2272
msgid " Type Offset VirtAddr PhysAddr\n"
msgstr ""
-#: readelf.c:2150
+#: readelf.c:2274
msgid " FileSiz MemSiz Flags Align\n"
msgstr ""
-#: readelf.c:2208
+#: readelf.c:2332
msgid "more than one dynamic segment\n"
msgstr ""
-#: readelf.c:2216
+#: readelf.c:2340
msgid "Unable to find program interpreter name\n"
msgstr ""
-#: readelf.c:2223
+#: readelf.c:2347
#, c-format
msgid ""
"\n"
" [Requesting program interpreter: %s]"
msgstr ""
-#: readelf.c:2241
+#: readelf.c:2365
msgid ""
"\n"
" Section to Segment mapping:\n"
msgstr ""
-#: readelf.c:2242
+#: readelf.c:2366
msgid " Segment Sections...\n"
msgstr ""
-#: readelf.c:2505
+#: readelf.c:2629
msgid ""
"\n"
"There are no sections in this file.\n"
msgstr ""
-#: readelf.c:2511
+#: readelf.c:2635
#, c-format
msgid "There are %d section headers, starting at offset 0x%lx:\n"
msgstr ""
-#: readelf.c:2551
+#: readelf.c:2675
msgid "File contains multiple dynamic symbol tables\n"
msgstr ""
-#: readelf.c:2564
+#: readelf.c:2688
msgid "File contains multiple dynamic string tables\n"
msgstr ""
-#: readelf.c:2591
+#: readelf.c:2715
#, c-format
msgid ""
"\n"
"Section Header%s:\n"
msgstr ""
-#: readelf.c:2595
+#: readelf.c:2719
msgid ""
" [Nr] Name Type Addr Off Size ES Flg Lk "
"Inf Al\n"
msgstr ""
-#: readelf.c:2598
+#: readelf.c:2722
msgid " [Nr] Name Type Address Offset\n"
msgstr ""
-#: readelf.c:2599
+#: readelf.c:2723
msgid " Size EntSize Flags Link Info Align\n"
msgstr ""
-#: readelf.c:2646
+#: readelf.c:2770
msgid ""
"Key to Flags: W (write), A (alloc), X (execute), M (merge), S (strings)\n"
msgstr ""
-#: readelf.c:2647
+#: readelf.c:2771
msgid ""
" I (info), L (link order), O (extra OS processing required)\n"
msgstr ""
-#: readelf.c:2648
+#: readelf.c:2772
msgid " o (os specific), p (processor specific) x (unknown)\n"
msgstr ""
-#: readelf.c:2706
+#: readelf.c:2830
#, c-format
msgid ""
"\n"
"Relocation section at offset 0x%lx contains %ld bytes:\n"
msgstr ""
-#: readelf.c:2713
+#: readelf.c:2837
msgid ""
"\n"
"There are no dynamic relocations in this file.\n"
msgstr ""
-#: readelf.c:2741
+#: readelf.c:2865
msgid ""
"\n"
"Relocation section "
msgstr ""
-#: readelf.c:2748
+#: readelf.c:2872
#, c-format
msgid " at offset 0x%lx contains %lu entries:\n"
msgstr ""
-#: readelf.c:2776
+#: readelf.c:2900
msgid ""
"\n"
"There are no relocations in this file.\n"
msgstr ""
-#: readelf.c:3026
+#: readelf.c:3155
msgid ""
"\n"
"There is no dynamic segment in this file.\n"
msgstr ""
-#: readelf.c:3060
+#: readelf.c:3189
msgid "Unable to seek to end of file!"
msgstr ""
-#: readelf.c:3069
+#: readelf.c:3198
msgid "Unable to determine the number of symbols to load\n"
msgstr ""
-#: readelf.c:3099
+#: readelf.c:3228
msgid "Unable to seek to end of file\n"
msgstr ""
-#: readelf.c:3105
+#: readelf.c:3234
msgid "Unable to determine the length of the dynamic string table\n"
msgstr ""
-#: readelf.c:3166
+#: readelf.c:3295
#, c-format
msgid ""
"\n"
"Dynamic segment at offset 0x%x contains %ld entries:\n"
msgstr ""
-#: readelf.c:3169
+#: readelf.c:3298
msgid " Tag Type Name/Value\n"
msgstr ""
-#: readelf.c:3200
+#: readelf.c:3329
msgid "Auxiliary library"
msgstr ""
-#: readelf.c:3202
+#: readelf.c:3331
msgid "Filter library"
msgstr ""
-#: readelf.c:3218 readelf.c:3239 readelf.c:3265
+#: readelf.c:3347 readelf.c:3368 readelf.c:3394
msgid "Flags:"
msgstr ""
-#: readelf.c:3220 readelf.c:3241 readelf.c:3267
+#: readelf.c:3349 readelf.c:3370 readelf.c:3396
msgid " None\n"
msgstr ""
-#: readelf.c:3370
+#: readelf.c:3499
#, c-format
msgid "Shared library: [%s]"
msgstr ""
-#: readelf.c:3373
+#: readelf.c:3502
msgid " program interpreter"
msgstr ""
-#: readelf.c:3377
+#: readelf.c:3506
#, c-format
msgid "Library soname: [%s]"
msgstr ""
-#: readelf.c:3381
+#: readelf.c:3510
#, c-format
msgid "Library rpath: [%s]"
msgstr ""
-#: readelf.c:3442
+#: readelf.c:3571
#, c-format
msgid "Not needed object: [%s]\n"
msgstr ""
-#: readelf.c:3539
+#: readelf.c:3668
#, c-format
msgid ""
"\n"
"Version definition section '%s' contains %ld entries:\n"
msgstr ""
-#: readelf.c:3542
+#: readelf.c:3671
msgid " Addr: 0x"
msgstr ""
-#: readelf.c:3544 readelf.c:3732
+#: readelf.c:3673 readelf.c:3861
#, c-format
msgid " Offset: %#08lx Link: %lx (%s)\n"
msgstr ""
-#: readelf.c:3574
+#: readelf.c:3703
#, c-format
msgid " %#06x: Rev: %d Flags: %s"
msgstr ""
-#: readelf.c:3577
+#: readelf.c:3706
#, c-format
msgid " Index: %d Cnt: %d "
msgstr ""
-#: readelf.c:3588
+#: readelf.c:3717
#, c-format
msgid "Name: %s\n"
msgstr ""
-#: readelf.c:3590
+#: readelf.c:3719
#, c-format
msgid "Name index: %ld\n"
msgstr ""
-#: readelf.c:3605
+#: readelf.c:3734
#, c-format
msgid " %#06x: Parent %d: %s\n"
msgstr ""
-#: readelf.c:3608
+#: readelf.c:3737
#, c-format
msgid " %#06x: Parent %d, name index: %ld\n"
msgstr ""
-#: readelf.c:3627
+#: readelf.c:3756
#, c-format
msgid ""
"\n"
"Version needs section '%s' contains %ld entries:\n"
msgstr ""
-#: readelf.c:3630
+#: readelf.c:3759
msgid " Addr: 0x"
msgstr ""
-#: readelf.c:3632
+#: readelf.c:3761
#, c-format
msgid " Offset: %#08lx Link to section: %ld (%s)\n"
msgstr ""
-#: readelf.c:3658
+#: readelf.c:3787
#, c-format
msgid " %#06x: Version: %d"
msgstr ""
-#: readelf.c:3661
+#: readelf.c:3790
#, c-format
msgid " File: %s"
msgstr ""
-#: readelf.c:3663
+#: readelf.c:3792
#, c-format
msgid " File: %lx"
msgstr ""
-#: readelf.c:3665
+#: readelf.c:3794
#, c-format
msgid " Cnt: %d\n"
msgstr ""
-#: readelf.c:3683
+#: readelf.c:3812
#, c-format
msgid " %#06x: Name: %s"
msgstr ""
-#: readelf.c:3686
+#: readelf.c:3815
#, c-format
msgid " %#06x: Name index: %lx"
msgstr ""
-#: readelf.c:3689
+#: readelf.c:3818
#, c-format
msgid " Flags: %s Version: %d\n"
msgstr ""
-#: readelf.c:3727
+#: readelf.c:3856
#, c-format
msgid ""
"\n"
"Version symbols section '%s' contains %d entries:\n"
msgstr ""
-#: readelf.c:3730
+#: readelf.c:3859
msgid " Addr: "
msgstr ""
-#: readelf.c:3760
+#: readelf.c:3889
msgid " 0 (*local*) "
msgstr ""
-#: readelf.c:3764
+#: readelf.c:3893
msgid " 1 (*global*) "
msgstr ""
-#: readelf.c:3986
+#: readelf.c:4115
msgid ""
"\n"
"No version information found in this file.\n"
msgstr ""
-#: readelf.c:4004 readelf.c:4039
+#: readelf.c:4133 readelf.c:4168
#, c-format
msgid "<processor specific>: %d"
msgstr ""
-#: readelf.c:4006 readelf.c:4051
+#: readelf.c:4135 readelf.c:4180
#, c-format
msgid "<OS specific>: %d"
msgstr ""
-#: readelf.c:4008 readelf.c:4054
+#: readelf.c:4137 readelf.c:4183
#, c-format
msgid "<unknown>: %d"
msgstr ""
-#: readelf.c:4117
+#: readelf.c:4246
msgid "Unable to read in dynamic data\n"
msgstr ""
-#: readelf.c:4159
+#: readelf.c:4288
msgid "Unable to seek to start of dynamic information"
msgstr ""
-#: readelf.c:4165
+#: readelf.c:4294
msgid "Failed to read in number of buckets\n"
msgstr ""
-#: readelf.c:4171
+#: readelf.c:4300
msgid "Failed to read in number of chains\n"
msgstr ""
-#: readelf.c:4191
+#: readelf.c:4320
msgid ""
"\n"
"Symbol table for image:\n"
msgstr ""
-#: readelf.c:4193
+#: readelf.c:4322
msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: readelf.c:4195
+#: readelf.c:4324
msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: readelf.c:4239
+#: readelf.c:4368
#, c-format
msgid ""
"\n"
"Symbol table '%s' contains %lu entries:\n"
msgstr ""
-#: readelf.c:4243
+#: readelf.c:4372
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: readelf.c:4245
+#: readelf.c:4374
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr ""
-#: readelf.c:4354
+#: readelf.c:4483
msgid "bad dynamic symbol"
msgstr ""
-#: readelf.c:4413
+#: readelf.c:4542
msgid ""
"\n"
"Dynamic symbol information is not available for displaying symbols.\n"
msgstr ""
-#: readelf.c:4425
+#: readelf.c:4554
#, c-format
msgid ""
"\n"
"Histogram for bucket list length (total of %d buckets):\n"
msgstr ""
-#: readelf.c:4427
+#: readelf.c:4556
msgid " Length Number %% of total Coverage\n"
msgstr ""
-#: readelf.c:4432 readelf.c:4451 readelf.c:6704 readelf.c:6897
+#: readelf.c:4561 readelf.c:4580 readelf.c:6691 readelf.c:6884
msgid "Out of memory"
msgstr ""
-#: readelf.c:4500
+#: readelf.c:4629
#, c-format
msgid ""
"\n"
"Dynamic info segment at offset 0x%lx contains %d entries:\n"
msgstr ""
-#: readelf.c:4503
+#: readelf.c:4632
msgid " Num: Name BoundTo Flags\n"
msgstr ""
-#: readelf.c:4551
+#: readelf.c:4680
#, c-format
msgid ""
"\n"
"Assembly dump of section %s\n"
msgstr ""
-#: readelf.c:4574
+#: readelf.c:4703
#, c-format
msgid ""
"\n"
"Section '%s' has no data to dump.\n"
msgstr ""
-#: readelf.c:4579
+#: readelf.c:4708
#, c-format
msgid ""
"\n"
"Hex dump of section '%s':\n"
msgstr ""
-#: readelf.c:4731
+#: readelf.c:4860
msgid "badly formed extended line op encountered!"
msgstr ""
-#: readelf.c:4738
+#: readelf.c:4867
#, c-format
msgid " Extended opcode %d: "
msgstr ""
-#: readelf.c:4743
+#: readelf.c:4872
msgid ""
"End of Sequence\n"
"\n"
msgstr ""
-#: readelf.c:4749
+#: readelf.c:4878
#, c-format
msgid "set Address to 0x%lx\n"
msgstr ""
-#: readelf.c:4754
+#: readelf.c:4883
msgid " define new File Table entry\n"
msgstr ""
-#: readelf.c:4755 readelf.c:4877
+#: readelf.c:4884 readelf.c:5006
msgid " Entry\tDir\tTime\tSize\tName\n"
msgstr ""
-#: readelf.c:4757
+#: readelf.c:4886
#, c-format
msgid " %d\t"
msgstr ""
-#: readelf.c:4760 readelf.c:4762 readelf.c:4764 readelf.c:4889 readelf.c:4891
-#: readelf.c:4893
+#: readelf.c:4889 readelf.c:4891 readelf.c:4893 readelf.c:5018 readelf.c:5020
+#: readelf.c:5022
#, c-format
msgid "%lu\t"
msgstr ""
-#: readelf.c:4765
+#: readelf.c:4894
#, c-format
msgid ""
"%s\n"
"\n"
msgstr ""
-#: readelf.c:4769
+#: readelf.c:4898
#, c-format
msgid "UNKNOWN: length %d\n"
msgstr ""
-#: readelf.c:4795
+#: readelf.c:4924
#, c-format
msgid ""
"\n"
@@ -2613,493 +2873,493 @@ msgid ""
"\n"
msgstr ""
-#: readelf.c:4807
+#: readelf.c:4936
msgid "The line info appears to be corrupt - the section is too small\n"
msgstr ""
-#: readelf.c:4815
+#: readelf.c:4944
msgid "Only DWARF version 2 line info is currently supported.\n"
msgstr ""
-#: readelf.c:4830
+#: readelf.c:4959
#, c-format
msgid " Length: %ld\n"
msgstr ""
-#: readelf.c:4831
+#: readelf.c:4960
#, c-format
msgid " DWARF Version: %d\n"
msgstr ""
-#: readelf.c:4832
+#: readelf.c:4961
#, c-format
msgid " Prolgue Length: %d\n"
msgstr ""
-#: readelf.c:4833
+#: readelf.c:4962
#, c-format
msgid " Minimum Instruction Length: %d\n"
msgstr ""
-#: readelf.c:4834
+#: readelf.c:4963
#, c-format
msgid " Initial value of 'is_stmt': %d\n"
msgstr ""
-#: readelf.c:4835
+#: readelf.c:4964
#, c-format
msgid " Line Base: %d\n"
msgstr ""
-#: readelf.c:4836
+#: readelf.c:4965
#, c-format
msgid " Line Range: %d\n"
msgstr ""
-#: readelf.c:4837
+#: readelf.c:4966
#, c-format
msgid " Opcode Base: %d\n"
msgstr ""
-#: readelf.c:4846
+#: readelf.c:4975
msgid ""
"\n"
" Opcodes:\n"
msgstr ""
-#: readelf.c:4849
+#: readelf.c:4978
#, c-format
msgid " Opcode %d has %d args\n"
msgstr ""
-#: readelf.c:4855
+#: readelf.c:4984
msgid ""
"\n"
" The Directory Table is empty.\n"
msgstr ""
-#: readelf.c:4858
+#: readelf.c:4987
msgid ""
"\n"
" The Directory Table:\n"
msgstr ""
-#: readelf.c:4862
+#: readelf.c:4991
#, c-format
msgid " %s\n"
msgstr ""
-#: readelf.c:4873
+#: readelf.c:5002
msgid ""
"\n"
" The File Name Table is empty.\n"
msgstr ""
-#: readelf.c:4876
+#: readelf.c:5005
msgid ""
"\n"
" The File Name Table:\n"
msgstr ""
-#: readelf.c:4884
+#: readelf.c:5013
#, c-format
msgid " %d\t"
msgstr ""
-#: readelf.c:4895
+#: readelf.c:5024
#, c-format
msgid "%s\n"
msgstr ""
#. Now display the statements.
-#: readelf.c:4903
+#: readelf.c:5032
msgid ""
"\n"
" Line Number Statements:\n"
msgstr ""
-#: readelf.c:4922
+#: readelf.c:5051
msgid " Copy\n"
msgstr ""
-#: readelf.c:4929
+#: readelf.c:5058
#, c-format
msgid " Advance PC by %d to %lx\n"
msgstr ""
-#: readelf.c:4937
+#: readelf.c:5066
#, c-format
msgid " Advance Line by %d to %d\n"
msgstr ""
-#: readelf.c:4944
+#: readelf.c:5073
#, c-format
msgid " Set File Name to entry %d in the File Name Table\n"
msgstr ""
-#: readelf.c:4952
+#: readelf.c:5081
#, c-format
msgid " Set column to %d\n"
msgstr ""
-#: readelf.c:4959
+#: readelf.c:5088
#, c-format
msgid " Set is_stmt to %d\n"
msgstr ""
-#: readelf.c:4964
+#: readelf.c:5093
msgid " Set basic block\n"
msgstr ""
-#: readelf.c:4972
+#: readelf.c:5101
#, c-format
msgid " Advance PC by constant %d to 0x%lx\n"
msgstr ""
-#: readelf.c:4980
+#: readelf.c:5109
#, c-format
msgid " Advance PC by fixed size amount %d to 0x%lx\n"
msgstr ""
-#: readelf.c:4988
+#: readelf.c:5117
#, c-format
msgid " Special opcode %d: advance Address by %d to 0x%lx"
msgstr ""
-#: readelf.c:4992
+#: readelf.c:5121
#, c-format
msgid " and Line by %d to %d\n"
msgstr ""
-#: readelf.c:5015 readelf.c:5437
+#: readelf.c:5144 readelf.c:5566
#, c-format
msgid ""
"Contents of the %s section:\n"
"\n"
msgstr ""
-#: readelf.c:5034
+#: readelf.c:5163
msgid "Only DWARF 2 pubnames are currently supported"
msgstr ""
-#: readelf.c:5038
+#: readelf.c:5167
#, c-format
msgid " Length: %ld\n"
msgstr ""
-#: readelf.c:5040
+#: readelf.c:5169
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: readelf.c:5042
+#: readelf.c:5171
#, c-format
msgid " Offset into .debug_info section: %ld\n"
msgstr ""
-#: readelf.c:5044
+#: readelf.c:5173
#, c-format
msgid " Size of area in .debug_info section: %ld\n"
msgstr ""
-#: readelf.c:5047
+#: readelf.c:5176
msgid ""
"\n"
" Offset\tName\n"
msgstr ""
-#: readelf.c:5129
+#: readelf.c:5258
#, c-format
msgid "Unknown TAG value: %lx"
msgstr ""
-#: readelf.c:5224
+#: readelf.c:5353
#, c-format
msgid "Unknown AT value: %lx"
msgstr ""
-#: readelf.c:5261
+#: readelf.c:5390
#, c-format
msgid "Unknown FORM value: %lx"
msgstr ""
-#: readelf.c:5443
+#: readelf.c:5572
msgid " Number TAG\n"
msgstr ""
-#: readelf.c:5449
+#: readelf.c:5578
#, c-format
msgid " %ld %s [%s]\n"
msgstr ""
-#: readelf.c:5452
+#: readelf.c:5581
msgid "has children"
msgstr ""
-#: readelf.c:5452
+#: readelf.c:5581
msgid "no children"
msgstr ""
-#: readelf.c:5456
+#: readelf.c:5585
#, c-format
msgid " %-18s %s\n"
msgstr ""
-#: readelf.c:5475
+#: readelf.c:5604
#, c-format
msgid " %lu byte block: "
msgstr ""
-#: readelf.c:5939
+#: readelf.c:5911
msgid "(User defined location op)"
msgstr ""
-#: readelf.c:5941
+#: readelf.c:5913
msgid "(Unknown location op)"
msgstr ""
-#: readelf.c:6058
+#: readelf.c:6040
#, c-format
msgid "Unable to handle FORM: %d"
msgstr ""
-#: readelf.c:6062
+#: readelf.c:6044
#, c-format
msgid "Unrecognised form: %d"
msgstr ""
-#: readelf.c:6075
+#: readelf.c:6057
msgid "(not inlined)"
msgstr ""
-#: readelf.c:6076
+#: readelf.c:6058
msgid "(inlined)"
msgstr ""
-#: readelf.c:6077
+#: readelf.c:6059
msgid "(declared as inline but ignored)"
msgstr ""
-#: readelf.c:6078
+#: readelf.c:6060
msgid "(declared as inline and inlined)"
msgstr ""
-#: readelf.c:6079
+#: readelf.c:6061
#, c-format
msgid " (Unknown inline attribute value: %lx)"
msgstr ""
-#: readelf.c:6209 readelf.c:6333
+#: readelf.c:6190 readelf.c:6316
#, c-format
msgid ""
"The section %s contains:\n"
"\n"
msgstr ""
-#: readelf.c:6231
+#: readelf.c:6214
msgid "Only version 2 DWARF debug information is currently supported.\n"
msgstr ""
-#: readelf.c:6235
+#: readelf.c:6218
msgid " Compilation Unit:\n"
msgstr ""
-#: readelf.c:6236
+#: readelf.c:6219
#, c-format
msgid " Length: %ld\n"
msgstr ""
-#: readelf.c:6237
+#: readelf.c:6220
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: readelf.c:6238
+#: readelf.c:6221
#, c-format
msgid " Abbrev Offset: %ld\n"
msgstr ""
-#: readelf.c:6239
+#: readelf.c:6222
#, c-format
msgid " Pointer Size: %d\n"
msgstr ""
-#: readelf.c:6259
+#: readelf.c:6242
msgid "Unable to locate .debug_abbrev section!\n"
msgstr ""
-#: readelf.c:6299
+#: readelf.c:6282
#, c-format
msgid "Unable to locate entry %lu in the abbreviation table\n"
msgstr ""
-#: readelf.c:6304
+#: readelf.c:6287
#, c-format
msgid " <%d><%x>: Abbrev Number: %lu (%s)\n"
msgstr ""
-#: readelf.c:6352
+#: readelf.c:6335
#, c-format
msgid " Length: %ld\n"
msgstr ""
-#: readelf.c:6353
+#: readelf.c:6336
#, c-format
msgid " Version: %d\n"
msgstr ""
-#: readelf.c:6354
+#: readelf.c:6337
#, c-format
msgid " Offset into .debug_info: %lx\n"
msgstr ""
-#: readelf.c:6355
+#: readelf.c:6338
#, c-format
msgid " Pointer Size: %d\n"
msgstr ""
-#: readelf.c:6356
+#: readelf.c:6339
#, c-format
msgid " Segment Size: %d\n"
msgstr ""
-#: readelf.c:6358
+#: readelf.c:6341
msgid ""
"\n"
" Address Length\n"
msgstr ""
-#: readelf.c:6399
+#: readelf.c:6382
#, c-format
msgid "Displaying the debug contents of section %s is not yet supported.\n"
msgstr ""
-#: readelf.c:6461
+#: readelf.c:6444
#, c-format
msgid ""
"\n"
"Section '%s' has no debugging data.\n"
msgstr ""
-#: readelf.c:6477
+#: readelf.c:6460
#, c-format
msgid "Unrecognised debug section: %s\n"
msgstr ""
-#: readelf.c:6549
+#: readelf.c:6532
msgid "Some sections were not dumped because they do not exist!\n"
msgstr ""
-#: readelf.c:6728
+#: readelf.c:6715
#, c-format
msgid ""
"\n"
"Section '%s' contains %d entries:\n"
msgstr ""
-#: readelf.c:6890
+#: readelf.c:6877
msgid "conflict list with without table"
msgstr ""
-#: readelf.c:6918
+#: readelf.c:6905
#, c-format
msgid ""
"\n"
"Section '.conflict' contains %d entries:\n"
msgstr ""
-#: readelf.c:6919
+#: readelf.c:6906
msgid " Num: Index Value Name"
msgstr ""
-#: readelf.c:6944
+#: readelf.c:6931
msgid "NT_PRSTATUS (prstatus structure)"
msgstr ""
-#: readelf.c:6945
+#: readelf.c:6932
msgid "NT_FPREGSET (floating point registers)"
msgstr ""
-#: readelf.c:6946
+#: readelf.c:6933
msgid "NT_PRPSINFO (prpsinfo structure)"
msgstr ""
-#: readelf.c:6947
+#: readelf.c:6934
msgid "NT_TASKSTRUCT (task structure)"
msgstr ""
-#: readelf.c:6948
+#: readelf.c:6935
msgid "NT_PRXFPREG (user_xfpregs structure)"
msgstr ""
-#: readelf.c:6949
+#: readelf.c:6936
msgid "NT_PSTATUS (pstatus structure)"
msgstr ""
-#: readelf.c:6950
+#: readelf.c:6937
msgid "NT_FPREGS (floating point registers)"
msgstr ""
-#: readelf.c:6951
+#: readelf.c:6938
msgid "NT_PSINFO (psinfo structure)"
msgstr ""
-#: readelf.c:6952
+#: readelf.c:6939
msgid "NT_LWPSTATUS (lwpstatus_t structure)"
msgstr ""
-#: readelf.c:6953
+#: readelf.c:6940
msgid "NT_LWPSINFO (lwpsinfo_t structure)"
msgstr ""
-#: readelf.c:6954
+#: readelf.c:6941
msgid "NT_WIN32PSTATUS (win32_pstatus strcuture)"
msgstr ""
-#: readelf.c:6956
+#: readelf.c:6943
#, c-format
msgid "Unknown note type: (0x%08x)"
msgstr ""
-#: readelf.c:6994
+#: readelf.c:6981
#, c-format
msgid ""
"\n"
"Notes at offset 0x%08lx with length 0x%08lx:\n"
msgstr ""
-#: readelf.c:6997
+#: readelf.c:6983
msgid " Owner\t\tData size\tDescription\n"
msgstr ""
-#: readelf.c:7108
+#: readelf.c:7094
msgid "No note segments present in the core file.\n"
msgstr ""
-#: readelf.c:7186
+#: readelf.c:7172
msgid "This instance of readelf has been built without support for a\n"
msgstr ""
-#: readelf.c:7187
+#: readelf.c:7173
msgid "64 bit data type and so it cannot read 64 bit ELF files.\n"
msgstr ""
-#: readelf.c:7222
+#: readelf.c:7208
#, c-format
msgid "Cannot stat input file %s.\n"
msgstr ""
-#: readelf.c:7229
+#: readelf.c:7215
#, c-format
msgid "Input file %s not found.\n"
msgstr ""
-#: readelf.c:7235
+#: readelf.c:7221
#, c-format
msgid "%s: Failed to read file header\n"
msgstr ""
-#: readelf.c:7249
+#: readelf.c:7235
#, c-format
msgid ""
"\n"
@@ -3328,71 +3588,71 @@ msgstr ""
#: rescoff.c:145
#, c-format
-msgid "%s: %s: no resource section\n"
+msgid "%s: no resource section"
msgstr ""
-#: rescoff.c:154
+#: rescoff.c:152
msgid "can't read resource section"
msgstr ""
-#: rescoff.c:180
+#: rescoff.c:178
#, c-format
msgid "%s: %s: address out of bounds"
msgstr ""
-#: rescoff.c:199
+#: rescoff.c:197
msgid "directory"
msgstr ""
-#: rescoff.c:227
+#: rescoff.c:225
msgid "named directory entry"
msgstr ""
-#: rescoff.c:236
+#: rescoff.c:234
msgid "directory entry name"
msgstr ""
-#: rescoff.c:256
+#: rescoff.c:254
msgid "named subdirectory"
msgstr ""
-#: rescoff.c:264
+#: rescoff.c:262
msgid "named resource"
msgstr ""
-#: rescoff.c:279
+#: rescoff.c:277
msgid "ID directory entry"
msgstr ""
-#: rescoff.c:296
+#: rescoff.c:294
msgid "ID subdirectory"
msgstr ""
-#: rescoff.c:304
+#: rescoff.c:302
msgid "ID resource"
msgstr ""
-#: rescoff.c:330
+#: rescoff.c:328
msgid "resource type unknown"
msgstr ""
-#: rescoff.c:333
+#: rescoff.c:331
msgid "data entry"
msgstr ""
-#: rescoff.c:341
+#: rescoff.c:339
msgid "resource data"
msgstr ""
-#: rescoff.c:346
+#: rescoff.c:344
msgid "resource data size"
msgstr ""
-#: rescoff.c:441
+#: rescoff.c:439
msgid "filename required for COFF output"
msgstr ""
-#: rescoff.c:740
+#: rescoff.c:738
msgid "can't get BFD_RELOC_RVA relocation type"
msgstr ""
@@ -3411,11 +3671,6 @@ msgstr ""
msgid "%s %s: %s"
msgstr ""
-#: resrc.c:283
-#, c-format
-msgid "%s exited with status %d"
-msgstr ""
-
#: resrc.c:308
#, c-format
msgid "can't execute `%s': %s"
@@ -3445,42 +3700,50 @@ msgstr ""
msgid "Using `%s'\n"
msgstr ""
-#: resrc.c:544
+#: resrc.c:547
#, c-format
msgid "%s:%d: %s\n"
msgstr ""
-#: resrc.c:553
+#: resrc.c:556
#, c-format
msgid "%s: unexpected EOF"
msgstr ""
-#: resrc.c:610
+#: resrc.c:613
#, c-format
msgid "%s: read of %lu returned %lu"
msgstr ""
-#: resrc.c:652 resrc.c:883 resrc.c:1156 resrc.c:1310
+#: resrc.c:655 resrc.c:909 resrc.c:1182 resrc.c:1336
#, c-format
msgid "stat failed on bitmap file `%s': %s"
msgstr ""
-#: resrc.c:705
+#: resrc.c:708
#, c-format
msgid "cursor file `%s' does not contain cursor data"
msgstr ""
-#: resrc.c:737 resrc.c:1027
+#: resrc.c:740 resrc.c:1053
#, c-format
msgid "%s: fseek to %lu failed: %s"
msgstr ""
-#: resrc.c:996
+#: resrc.c:877
+msgid "help ID requires DIALOGEX"
+msgstr ""
+
+#: resrc.c:879
+msgid "control data requires DIALOGEX"
+msgstr ""
+
+#: resrc.c:1022
#, c-format
msgid "icon file `%s' does not contain icon data"
msgstr ""
-#: resrc.c:1515
+#: resrc.c:1541
#, c-format
msgid "can't open `%s' for output: %s"
msgstr ""
@@ -3488,41 +3751,42 @@ msgstr ""
#: size.c:79
#, c-format
msgid ""
-"Usage: %s [-ABdoxV] [--format=berkeley|sysv] [--radix=8|10|16]\n"
-" [--target=bfdname] [--version] [--help] [file...]\n"
+"Usage: %s [-A | --format=sysv | -B | --format=berkeley]\n"
+" [-o | --radix=8 | -d | --radix=10 | -h | --radix=16]\n"
+" [-V | --version] [--target=bfdname] [--help] [file...]\n"
msgstr ""
-#: size.c:83
+#: size.c:85
msgid "default is --format=berkeley\n"
msgstr ""
-#: size.c:85
+#: size.c:87
msgid "default is --format=sysv\n"
msgstr ""
-#: size.c:139
+#: size.c:141
#, c-format
-msgid "invalid argument to --format: %s\n"
+msgid "invalid argument to --format: %s"
msgstr ""
-#: size.c:166
+#: size.c:168
#, c-format
msgid "Invalid radix: %s\n"
msgstr ""
-#: srconv.c:1879
+#: srconv.c:1880
#, c-format
msgid "Usage: %s [-dhVq] in-file [out-file]\n"
msgstr ""
-#: srconv.c:1886
+#: srconv.c:1887
#, c-format
msgid "%s: Convert a COFF object file into a SYSROFF object file\n"
msgstr ""
-#: srconv.c:2024
+#: srconv.c:2020
#, c-format
-msgid "%s: unable to open output file %s\n"
+msgid "unable to open output file %s"
msgstr ""
#: stabs.c:349 stabs.c:1769
@@ -3620,17 +3884,17 @@ msgstr ""
msgid "no argument types in mangled string\n"
msgstr ""
-#: strings.c:159
+#: strings.c:177
#, c-format
-msgid "%s: invalid number %s\n"
+msgid "invalid number %s"
msgstr ""
-#: strings.c:494
+#: strings.c:513
#, c-format
-msgid "%s: invalid integer argument %s\n"
+msgid "invalid integer argument %s"
msgstr ""
-#: strings.c:505
+#: strings.c:523
#, c-format
msgid ""
"Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-]\n"
@@ -3643,13 +3907,13 @@ msgstr ""
msgid "Usage: %s [-hV] in-file\n"
msgstr ""
-#: sysdump.c:783
+#: sysdump.c:781
#, c-format
-msgid "%s: cannot open input file %s\n"
+msgid "cannot open input file %s"
msgstr ""
#: version.c:39
-msgid "Copyright 1997, 1998, 1999 Free Software Foundation, Inc.\n"
+msgid "Copyright 1997, 98, 99, 2000 Free Software Foundation, Inc.\n"
msgstr ""
#: version.c:40
@@ -3682,7 +3946,7 @@ msgstr ""
#: windres.c:602
#, c-format
-msgid "%s: unknown format type `%s'\n"
+msgid "unknown format type `%s'"
msgstr ""
#: windres.c:603
@@ -3743,17 +4007,17 @@ msgstr ""
msgid "no resources"
msgstr ""
-#: wrstabs.c:366 wrstabs.c:2028
+#: wrstabs.c:366 wrstabs.c:2027
#, c-format
-msgid "string_hash_lookup failed: %s\n"
+msgid "string_hash_lookup failed: %s"
msgstr ""
#: wrstabs.c:666
#, c-format
-msgid "stab_int_type: bad size %u\n"
+msgid "stab_int_type: bad size %u"
msgstr ""
-#: wrstabs.c:1468
+#: wrstabs.c:1467
#, c-format
-msgid "%s: warning: unknown size for field `%s' in struct\n"
+msgid "%s: warning: unknown size for field `%s' in struct"
msgstr ""
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 5856723..64207d9 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -5934,6 +5934,9 @@ read_and_display_attr (attribute, form, data, cu_offset, pointer_size)
switch (form)
{
+ default:
+ break;
+
case DW_FORM_ref_addr:
case DW_FORM_addr:
uvalue = byte_get (data, pointer_size);
diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog
index 81fd565..aec6262 100644
--- a/binutils/testsuite/ChangeLog
+++ b/binutils/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
+
+ * binutils-all/objdump.exp (cpus_expected): Recognize m68hc11 and
+ m68hc12.
+
2000-06-18 Nick Clifton <nickc@redhat.com>
* binutils-all/readelf.wi: Do not assume the compilation tag to be
diff --git a/binutils/testsuite/binutils-all/objdump.exp b/binutils/testsuite/binutils-all/objdump.exp
index 89040fc..e9e5f0d 100644
--- a/binutils/testsuite/binutils-all/objdump.exp
+++ b/binutils/testsuite/binutils-all/objdump.exp
@@ -33,7 +33,7 @@ send_user "Version [binutil_version $OBJDUMP]"
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -i"]
-set cpus_expected "(a29k|alliant|alpha|arc|arm|convex|d10v|d30v|fr30|h8|hppa|i386|i860|i960|m32r|m68k|m88k|MCore|mips|mn10200|mn10300|ns32k|pj|powerpc|pyramid|romp|rs6000|sh|sparc|tahoe|v850|vax|we32k|z8k|z8001|z8002)"
+set cpus_expected "(a29k|alliant|alpha|arc|arm|convex|d10v|d30v|fr30|h8|hppa|i386|i860|i960|m32r|m68hc11|m68hc12|m68k|m88k|MCore|mips|mn10200|mn10300|ns32k|pj|powerpc|pyramid|romp|rs6000|sh|sparc|tahoe|v850|vax|we32k|z8k|z8001|z8002)"
# Make sure the target CPU shows up in the list.
if ![regexp $cpus_expected $target_cpu] {
@@ -83,7 +83,14 @@ if ![regexp $want $got all text_name text_size data_name data_size] then {
} else {
verbose "text name is $text_name size is $text_size"
verbose "data name is $data_name size is $data_size"
- if {[expr "0x$text_size"] < 8 || [expr "0x$data_size"] < 4} then {
+ set ets 8
+ set eds 4
+ # c54x section sizes are in bytes, not octets; adjust accordingly
+ if [istarget *c54x*-*-*] then {
+ set ets 4
+ set eds 2
+ }
+ if {[expr "0x$text_size"] < $ets || [expr "0x$data_size"] < $eds} then {
send_log "sizes too small\n"
fail "objdump -h"
} else {
@@ -126,7 +133,7 @@ if [regexp $want $got] then {
set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -s $testfile"]
-set want "$testfile:\[ \]*file format.*Contents.*(text|TEXT|\\\$CODE\\\$)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000001|01000000).*Contents.*(data|DATA)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000002|02000000)"
+set want "$testfile:\[ \]*file format.*Contents.*(text|TEXT|\\\$CODE\\\$)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000001|01000000|00000100).*Contents.*(data|DATA)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000002|02000000|00000200)"
if [regexp $want $got] then {
pass "objdump -s"
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 092f385..7f7da64 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,16 @@
+2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
+
+ * doc/Makefile.am (CPU_DOCS): Added 68hc11 file.
+ * doc/c-m68hc11.texi: Document 68HC11 and 68HC12 port.
+ * doc/as.texinfo: Likewise.
+
+ * configure, Makefile.in: Regenerate.
+ * configure.in (emulations): Recognize m6811 and m6812.
+ * Makefile.am (CPU_TYPES, TARGET_CPU_CFILES, TARGET_CPU_HFILES):
+ Added files for 68hc11 and 68hc12 assembler.
+ * config/tc-m68hc11.c: Assembler for 68hc11 and 68hc12.
+ * config/tc-m68hc11.h: Header definition for that assembler.
+
2000-06-18 Nick Clifton <nickc@redhat.com>
* symbols.c (resolve_symbol_value): Use bfd_octets_per_byte
diff --git a/gas/Makefile.am b/gas/Makefile.am
index 435a4da..f195102 100644
--- a/gas/Makefile.am
+++ b/gas/Makefile.am
@@ -54,6 +54,7 @@ CPU_TYPES = \
i860 \
i960 \
m32r \
+ m68hc11 \
m68k \
m88k \
mcore \
@@ -225,6 +226,7 @@ TARGET_CPU_CFILES = \
config/tc-i860.c \
config/tc-i960.c \
config/tc-m32r.c \
+ config/tc-m68hc11.c \
config/tc-m68k.c \
config/tc-m88k.c \
config/tc-mcore.c \
@@ -262,6 +264,7 @@ TARGET_CPU_HFILES = \
config/tc-i860.h \
config/tc-i960.h \
config/tc-m32r.h \
+ config/tc-m68hc11.h \
config/tc-m68k.h \
config/tc-m88k.h \
config/tc-mcore.h \
@@ -1087,6 +1090,11 @@ DEPTC_m32r_elf = $(INCDIR)/bin-bugs.h $(INCDIR)/progress.h \
$(INCDIR)/symcat.h $(srcdir)/../opcodes/m32r-desc.h \
$(INCDIR)/opcode/cgen.h $(srcdir)/../opcodes/m32r-opc.h \
cgen.h
+DEPTC_m68hc11_elf = $(INCDIR)/bin-bugs.h $(INCDIR)/progress.h \
+ $(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-m68hc11.h $(INCDIR)/obstack.h \
+ subsegs.h $(INCDIR)/opcode/m68hc11.h
DEPTC_m68k_aout = $(INCDIR)/bin-bugs.h $(INCDIR)/progress.h \
$(srcdir)/config/obj-aout.h $(srcdir)/config/tc-m68k.h \
$(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h emul.h $(INCDIR)/obstack.h \
@@ -1814,6 +1822,9 @@ DEP_m32r_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-m32r.h \
DEP_m32r_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-m32r.h
+DEP_m68hc11_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-m68hc11.h
DEP_m68k_aout = $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-m68k.h \
$(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h
DEP_m68k_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-m68k.h \
diff --git a/gas/Makefile.in b/gas/Makefile.in
index ed54b62..587a390 100644
--- a/gas/Makefile.in
+++ b/gas/Makefile.in
@@ -158,6 +158,7 @@ CPU_TYPES = \
i860 \
i960 \
m32r \
+ m68hc11 \
m68k \
m88k \
mcore \
@@ -335,6 +336,7 @@ TARGET_CPU_CFILES = \
config/tc-i860.c \
config/tc-i960.c \
config/tc-m32r.c \
+ config/tc-m68hc11.c \
config/tc-m68k.c \
config/tc-m88k.c \
config/tc-mcore.c \
@@ -373,6 +375,7 @@ TARGET_CPU_HFILES = \
config/tc-i860.h \
config/tc-i960.h \
config/tc-m32r.h \
+ config/tc-m68hc11.h \
config/tc-m68k.h \
config/tc-m88k.h \
config/tc-mcore.h \
@@ -837,6 +840,12 @@ DEPTC_m32r_elf = $(INCDIR)/bin-bugs.h $(INCDIR)/progress.h \
$(INCDIR)/opcode/cgen.h $(srcdir)/../opcodes/m32r-opc.h \
cgen.h
+DEPTC_m68hc11_elf = $(INCDIR)/bin-bugs.h $(INCDIR)/progress.h \
+ $(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-m68hc11.h $(INCDIR)/obstack.h \
+ subsegs.h $(INCDIR)/opcode/m68hc11.h
+
DEPTC_m68k_aout = $(INCDIR)/bin-bugs.h $(INCDIR)/progress.h \
$(srcdir)/config/obj-aout.h $(srcdir)/config/tc-m68k.h \
$(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h emul.h $(INCDIR)/obstack.h \
@@ -1742,6 +1751,10 @@ DEP_m32r_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-m32r.h
+DEP_m68hc11_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-m68hc11.h
+
DEP_m68k_aout = $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-m68k.h \
$(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h
@@ -1958,7 +1971,7 @@ configure configure.in gdbinit.in itbl-lex.c itbl-parse.c
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
SOURCES = $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) $(gasp_new_SOURCES)
OBJECTS = $(itbl_test_OBJECTS) $(as_new_OBJECTS) $(gasp_new_OBJECTS)
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 3af8c9a..1c481a6 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -833,7 +833,7 @@ obj_elf_section (push)
char mri_type;
#ifdef md_flush_pending_output
- md_flush_pending_output ();
+ md_flush_pending_output ();
#endif
previous_section = now_seg;
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 395b50f..37fe3d8 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -145,7 +145,7 @@ const char extra_symbol_chars[] = "*%-(";
/* This array holds the chars that always start a comment. If the
pre-processor is disabled, these aren't very useful */
-#if defined (TE_I386AIX) || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) && !defined (TE_LINUX) && !defined(TE_FreeBSD))
+#if defined (TE_I386AIX) || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) && ! defined (TE_LINUX) && !defined(TE_FreeBSD))
/* Putting '/' here makes it impossible to use the divide operator.
However, we need it for compatibility with SVR4 systems. */
const char comment_chars[] = "#/";
@@ -163,7 +163,7 @@ const char comment_chars[] = "#";
#NO_APP at the beginning of its output. */
/* Also note that comments started like this one will always work if
'/' isn't otherwise defined. */
-#if defined (TE_I386AIX) || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) && !defined (TE_LINUX) && !defined(TE_FreeBSD))
+#if defined (TE_I386AIX) || ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) && ! defined (TE_LINUX) && !defined(TE_FreeBSD))
const char line_comment_chars[] = "";
#else
const char line_comment_chars[] = "/";
@@ -1021,7 +1021,7 @@ reloc (size, pcrel, other)
*/
int
tc_i386_fix_adjustable (fixP)
- fixS *fixP;
+ fixS * fixP;
{
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) || defined (TE_PE)
/* Prevent all adjustments to global symbols, or else dynamic
diff --git a/gas/config/tc-m32r.c b/gas/config/tc-m32r.c
index 7745338..bce1209 100644
--- a/gas/config/tc-m32r.c
+++ b/gas/config/tc-m32r.c
@@ -1882,6 +1882,9 @@ m32r_elf_section_change_hook ()
(void) m32r_fill_insn (0);
}
+/* Return true if can adjust the reloc to be relative to its section
+ (such as .data) instead of relative to some symbol. */
+
boolean
m32r_fix_adjustable (fixP)
fixS *fixP;
@@ -1901,13 +1904,13 @@ m32r_fix_adjustable (fixP)
if (fixP->fx_addsy == NULL)
return 1;
-
+
/* Prevent all adjustments to global symbols. */
if (S_IS_EXTERN (fixP->fx_addsy))
return 0;
if (S_IS_WEAK (fixP->fx_addsy))
return 0;
-
+
/* We need the symbol name for the VTABLE entries */
if (reloc_type == BFD_RELOC_VTABLE_INHERIT
|| reloc_type == BFD_RELOC_VTABLE_ENTRY)
diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c
new file mode 100644
index 0000000..e773420
--- /dev/null
+++ b/gas/config/tc-m68hc11.c
@@ -0,0 +1,2831 @@
+/* tc-m68hc11.c -- Assembler code for the Motorola 68HC11 & 68HC12.
+ Copyright (C) 1999, 2000 Free Software Foundation.
+ Written by Stephane Carrez (stcarrez@worldnet.fr)
+
+ 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 "opcode/m68hc11.h"
+#include "dwarf2dbg.h"
+
+struct dwarf2_line_info debug_line;
+
+const char comment_chars[] = ";!";
+const char line_comment_chars[] = "#*";
+const char line_separator_chars[] = "";
+
+const char EXP_CHARS[] = "eE";
+const char FLT_CHARS[] = "dD";
+
+#define STATE_CONDITIONAL_BRANCH (1)
+#define STATE_PC_RELATIVE (2)
+#define STATE_INDEXED_OFFSET (3)
+#define STATE_XBCC_BRANCH (4)
+#define STATE_CONDITIONAL_BRANCH_6812 (5)
+
+#define STATE_BYTE (0)
+#define STATE_BITS5 (0)
+#define STATE_WORD (1)
+#define STATE_BITS9 (1)
+#define STATE_LONG (2)
+#define STATE_BITS16 (2)
+#define STATE_UNDF (3) /* Symbol undefined in pass1 */
+
+/* This macro has no side-effects. */
+#define ENCODE_RELAX(what,length) (((what) << 2) + (length))
+
+#define IS_OPCODE(C1,C2) (((C1) & 0x0FF) == ((C2) & 0x0FF))
+
+/* This table describes how you change sizes for the various types of variable
+ size expressions. This version only supports two kinds. */
+
+/* The fields are:
+ How far Forward this mode will reach:
+ How far Backward this mode will reach:
+ How many bytes this mode will add to the size of the frag
+ Which mode to go to if the offset won't fit in this one */
+
+relax_typeS md_relax_table[] = {
+ {1, 1, 0, 0}, /* First entries aren't used */
+ {1, 1, 0, 0}, /* For no good reason except */
+ {1, 1, 0, 0}, /* that the VAX doesn't either */
+ {1, 1, 0, 0},
+
+ /* Relax for bcc <L>.
+ These insns are translated into b!cc +3 jmp L. */
+ {(127), (-128), 0, ENCODE_RELAX (STATE_CONDITIONAL_BRANCH, STATE_WORD)},
+ {0, 0, 3, 0},
+ {1, 1, 0, 0},
+ {1, 1, 0, 0},
+
+ /* Relax for bsr <L> and bra <L>.
+ These insns are translated into jsr and jmp. */
+ {(127), (-128), 0, ENCODE_RELAX (STATE_PC_RELATIVE, STATE_WORD)},
+ {0, 0, 1, 0},
+ {1, 1, 0, 0},
+ {1, 1, 0, 0},
+
+ /* Relax for indexed offset: 5-bits, 9-bits, 16-bits. */
+ {(15), (-16), 0, ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS9)},
+ {(255), (-256), 1, ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS16)},
+ {0, 0, 1, 0},
+ {1, 1, 0, 0},
+
+ /* Relax for dbeq/ibeq/tbeq r,<L>:
+ These insns are translated into db!cc +3 jmp L. */
+ {(255), (-256), 0, ENCODE_RELAX (STATE_XBCC_BRANCH, STATE_WORD)},
+ {0, 0, 3, 0},
+ {1, 1, 0, 0},
+ {1, 1, 0, 0},
+
+ /* Relax for bcc <L> on 68HC12.
+ These insns are translated into lbcc <L>. */
+ {(127), (-128), 0, ENCODE_RELAX (STATE_CONDITIONAL_BRANCH_6812, STATE_WORD)},
+ {0, 0, 2, 0},
+ {1, 1, 0, 0},
+ {1, 1, 0, 0},
+
+};
+
+/* 68HC11 and 68HC12 registers. They are numbered according to the 68HC12. */
+typedef enum register_id
+{
+ REG_NONE = -1,
+ REG_A = 0,
+ REG_B = 1,
+ REG_CCR = 2,
+ REG_D = 4,
+ REG_X = 5,
+ REG_Y = 6,
+ REG_SP = 7,
+ REG_PC = 8
+} register_id;
+
+typedef struct operand
+{
+ expressionS exp;
+ register_id reg1;
+ register_id reg2;
+ int mode;
+} operand;
+
+struct m68hc11_opcode_def
+{
+ long format;
+ int min_operands;
+ int max_operands;
+ int nb_modes;
+ int used;
+ struct m68hc11_opcode *opcode;
+};
+
+static struct m68hc11_opcode_def *m68hc11_opcode_defs = 0;
+static int m68hc11_nb_opcode_defs = 0;
+
+typedef struct alias
+{
+ const char *name;
+ const char *alias;
+}
+alias;
+
+static alias alias_opcodes[] = {
+ {"cpd", "cmpd"},
+ {"cpx", "cmpx"},
+ {"cpy", "cmpy"},
+ {0, 0}
+};
+
+/* local functions */
+static register_id reg_name_search PARAMS ((char *name));
+static register_id register_name PARAMS (());
+static int check_range PARAMS ((long num, int mode));
+
+static void print_opcode_list PARAMS ((void));
+
+static void get_default_target PARAMS ((void));
+static void print_insn_format PARAMS ((char *name));
+static int get_operand PARAMS ((operand * op, int first, long opmode));
+static void fixup8 PARAMS ((expressionS * oper, int mode, int opmode));
+static void fixup16 PARAMS ((expressionS * oper, int mode, int opmode));
+static struct m68hc11_opcode *find_opcode
+PARAMS (
+ (struct m68hc11_opcode_def * opc, operand operands[],
+ int *nb_operands));
+static void build_jump_insn
+PARAMS (
+ (struct m68hc11_opcode * opcode, operand operands[], int nb_operands,
+ int optimize));
+
+static void build_insn PARAMS ((struct m68hc11_opcode * opcode,
+ operand operands[], int nb_operands));
+
+/* Controls whether relative branches can be turned into long branches.
+ When the relative offset is too large, the insn are changed:
+ bra -> jmp
+ bsr -> jsr
+ bcc -> b!cc +3
+ jmp L
+ dbcc -> db!cc +3
+ jmp L
+
+ Setting the flag forbidds this. */
+static short flag_fixed_branchs = 0;
+
+/* Force to use long jumps (absolute) instead of relative branches. */
+static short flag_force_long_jumps = 0;
+
+/* Change the direct addressing mode into an absolute addressing mode
+ when the insn does not support direct addressing.
+ For example, "clr *ZD0" is normally not possible and is changed
+ into "clr ZDO". */
+static short flag_strict_direct_addressing = 1;
+
+/* When an opcode has invalid operand, print out the syntax of the opcode
+ to stderr. */
+static short flag_print_insn_syntax = 0;
+
+/* Dumps the list of instructions with syntax and then exit:
+ 1 -> Only dumps the list (sorted by name)
+ 2 -> Generate an example (or test) that can be compiled. */
+static short flag_print_opcodes = 0;
+
+/* Opcode hash table. */
+static struct hash_control *m68hc11_hash;
+
+/* Current cpu (either cpu6811 or cpu6812). This is determined automagically
+ by 'get_default_target' by looking at default BFD vector. This is overriden
+ with the -m<cpu> option. */
+static int current_architecture = 0;
+
+/* Default cpu determined by 'get_default_target'. */
+static const char *default_cpu;
+
+/* Number of opcodes in the sorted table (filtered by current cpu). */
+static int num_opcodes;
+
+/* The opcodes sorted by name and filtered by current cpu. */
+static struct m68hc11_opcode *m68hc11_sorted_opcodes;
+
+/* These are the machine dependent pseudo-ops. These are included so
+ the assembler can work on the output from the SUN C compiler, which
+ generates these. */
+
+/* This table describes all the machine specific pseudo-ops the assembler
+ has to support. The fields are:
+ pseudo-op name without dot
+ function to call to execute this pseudo-op
+ Integer arg to pass to the function. */
+const pseudo_typeS md_pseudo_table[] = {
+ /* The following pseudo-ops are supported for MRI compatibility. */
+ {"fcb", cons, 1},
+ {"fdb", cons, 2},
+ {"fcc", stringer, 1},
+ {"rmb", s_space, 0},
+ {"file", dwarf2_directive_file, 0},
+ {"loc", dwarf2_directive_loc, 0},
+
+ {0, 0, 0}
+};
+
+
+/* Options and initialization. */
+
+CONST char *md_shortopts = "Sm:";
+
+struct option md_longopts[] = {
+#define OPTION_FORCE_LONG_BRANCH (OPTION_MD_BASE)
+ {"force-long-branchs", no_argument, NULL, OPTION_FORCE_LONG_BRANCH},
+
+#define OPTION_SHORT_BRANCHS (OPTION_MD_BASE + 1)
+ {"short-branchs", no_argument, NULL, OPTION_SHORT_BRANCHS},
+
+#define OPTION_STRICT_DIRECT_MODE (OPTION_MD_BASE + 2)
+ {"strict-direct-mode", no_argument, NULL, OPTION_STRICT_DIRECT_MODE},
+
+#define OPTION_PRINT_INSN_SYNTAX (OPTION_MD_BASE + 3)
+ {"print-insn-syntax", no_argument, NULL, OPTION_PRINT_INSN_SYNTAX},
+
+#define OPTION_PRINT_OPCODES (OPTION_MD_BASE + 4)
+ {"print-opcodes", no_argument, NULL, OPTION_PRINT_OPCODES},
+
+#define OPTION_GENERATE_EXAMPLE (OPTION_MD_BASE + 5)
+ {"generate-example", no_argument, NULL, OPTION_GENERATE_EXAMPLE},
+
+ {NULL, no_argument, NULL, 0}
+};
+size_t md_longopts_size = sizeof (md_longopts);
+
+/* Get the target cpu for the assembler. This is based on the configure
+ options and on the -m68hc11/-m68hc12 option. If no option is specified,
+ we must get the default. */
+const char *
+m68hc11_arch_format ()
+{
+ get_default_target ();
+ if (current_architecture & cpu6811)
+ return "elf32-m68hc11";
+ else
+ return "elf32-m68hc12";
+}
+
+enum bfd_architecture
+m68hc11_arch ()
+{
+ get_default_target ();
+ if (current_architecture & cpu6811)
+ return bfd_arch_m68hc11;
+ else
+ return bfd_arch_m68hc12;
+}
+
+int
+m68hc11_mach ()
+{
+ return 0;
+}
+
+
+void
+md_show_usage (stream)
+ FILE *stream;
+{
+ get_default_target ();
+ fprintf (stream, _("\
+Motorola 68HC11/68HC12 options:\n\
+ -m68hc11 | -m68hc12 specify the processor [default %s]\n\
+ --force-long-branchs always turn relative branchs into absolute ones\n\
+ -S,--short-branchs do not turn relative branchs into absolute ones\n\
+ when the offset is out of range\n\
+ --strict-direct-mode do not turn the direct mode into extended mode\n\
+ when the instruction does not support direct mode\n\
+ --print-insn-syntax print the syntax of instruction in case of error\n\
+ --print-opcodes print the list of instructions with syntax\n\
+ --generate-example generate an example of each instruction\n\
+ (used for testing)\n"), default_cpu);
+
+}
+
+/* Try to identify the default target based on the BFD library. */
+static void
+get_default_target ()
+{
+ const bfd_target *target;
+ bfd abfd;
+
+ if (current_architecture != 0)
+ return;
+
+ default_cpu = "unknown";
+ target = bfd_find_target (0, &abfd);
+ if (target && target->name)
+ {
+ if (strcmp (target->name, "elf32-m68hc12") == 0)
+ {
+ current_architecture = cpu6812;
+ default_cpu = "m68hc12";
+ }
+ else if (strcmp (target->name, "elf32-m68hc11") == 0)
+ {
+ current_architecture = cpu6811;
+ default_cpu = "m68hc11";
+ }
+ else
+ {
+ as_bad (_("Default target `%s' is not supported."), target->name);
+ }
+ }
+}
+
+void
+m68hc11_print_statistics (file)
+ FILE *file;
+{
+ int i;
+ struct m68hc11_opcode_def *opc;
+
+ hash_print_statistics (file, "opcode table", m68hc11_hash);
+
+ opc = m68hc11_opcode_defs;
+ if (opc == 0 || m68hc11_nb_opcode_defs == 0)
+ return;
+
+ /* Dump the opcode statistics table. */
+ fprintf (file, _("Name # Modes Min ops Max ops Modes mask # Used\n"));
+ for (i = 0; i < m68hc11_nb_opcode_defs; i++, opc++)
+ {
+ fprintf (file, "%-7.7s %5d %7d %7d 0x%08lx %7d\n",
+ opc->opcode->name,
+ opc->nb_modes,
+ opc->min_operands, opc->max_operands, opc->format, opc->used);
+ }
+}
+
+int
+md_parse_option (c, arg)
+ int c;
+ char *arg;
+{
+ get_default_target ();
+ switch (c)
+ {
+ /* -S means keep external to 2 bits offset rather than 16 bits one. */
+ case OPTION_SHORT_BRANCHS:
+ case 'S':
+ flag_fixed_branchs = 1;
+ break;
+
+ case OPTION_FORCE_LONG_BRANCH:
+ flag_force_long_jumps = 1;
+ break;
+
+ case OPTION_PRINT_INSN_SYNTAX:
+ flag_print_insn_syntax = 1;
+ break;
+
+ case OPTION_PRINT_OPCODES:
+ flag_print_opcodes = 1;
+ break;
+
+ case OPTION_STRICT_DIRECT_MODE:
+ flag_strict_direct_addressing = 0;
+ break;
+
+ case OPTION_GENERATE_EXAMPLE:
+ flag_print_opcodes = 2;
+ break;
+
+ case 'm':
+ if (strcasecmp (arg, "68hc11") == 0)
+ current_architecture = cpu6811;
+ else if (strcasecmp (arg, "68hc12") == 0)
+ current_architecture = cpu6812;
+ else
+ as_bad (_("Option `%s' is not recognized."), arg);
+ break;
+
+ default:
+ return 0;
+ }
+
+ return 1;
+}
+
+symbolS *
+md_undefined_symbol (name)
+ char *name ATTRIBUTE_UNUSED;
+{
+ return 0;
+}
+
+/* Equal to MAX_PRECISION in atof-ieee.c */
+#define MAX_LITTLENUMS 6
+
+/* 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)
+ char type;
+ char *litP;
+ int *sizeP;
+{
+ int prec;
+ LITTLENUM_TYPE words[MAX_LITTLENUMS];
+ LITTLENUM_TYPE *wordP;
+ char *t;
+
+ switch (type)
+ {
+ case 'f':
+ case 'F':
+ case 's':
+ case 'S':
+ prec = 2;
+ break;
+
+ case 'd':
+ case 'D':
+ case 'r':
+ case 'R':
+ prec = 4;
+ break;
+
+ case 'x':
+ case 'X':
+ prec = 6;
+ break;
+
+ case 'p':
+ case 'P':
+ prec = 6;
+ 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 * sizeof (LITTLENUM_TYPE);
+ for (wordP = words; prec--;)
+ {
+ md_number_to_chars (litP, (long) (*wordP++), sizeof (LITTLENUM_TYPE));
+ litP += sizeof (LITTLENUM_TYPE);
+ }
+ return 0;
+}
+
+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));
+}
+
+
+static int
+cmp_opcode (op1, op2)
+ struct m68hc11_opcode *op1;
+ struct m68hc11_opcode *op2;
+{
+ return strcmp (op1->name, op2->name);
+}
+
+/* Initialize the assembler. Create the opcode hash table
+ (sorted on the names) with the M6811 opcode table
+ (from opcode library). */
+void
+md_begin ()
+{
+ char *prev_name = "";
+ struct m68hc11_opcode *opcodes;
+ struct m68hc11_opcode_def *opc = 0;
+ int i, j;
+
+ get_default_target ();
+
+ m68hc11_hash = hash_new ();
+
+ /* Get a writable copy of the opcode table and sort it on the names. */
+ opcodes = (struct m68hc11_opcode *) xmalloc (m68hc11_num_opcodes *
+ sizeof (struct
+ m68hc11_opcode));
+ m68hc11_sorted_opcodes = opcodes;
+ num_opcodes = 0;
+ for (i = 0; i < m68hc11_num_opcodes; i++)
+ {
+ if (m68hc11_opcodes[i].arch & current_architecture)
+ {
+ opcodes[num_opcodes] = m68hc11_opcodes[i];
+ if (opcodes[num_opcodes].name[0] == 'b'
+ && opcodes[num_opcodes].format & M6811_OP_JUMP_REL
+ && !(opcodes[num_opcodes].format & M6811_OP_BITMASK))
+ {
+ num_opcodes++;
+ opcodes[num_opcodes] = m68hc11_opcodes[i];
+ }
+ num_opcodes++;
+ for (j = 0; alias_opcodes[j].name != 0; j++)
+ if (strcmp (m68hc11_opcodes[i].name, alias_opcodes[j].name) == 0)
+ {
+ opcodes[num_opcodes] = m68hc11_opcodes[i];
+ opcodes[num_opcodes].name = alias_opcodes[j].alias;
+ num_opcodes++;
+ break;
+ }
+ }
+ }
+ qsort (opcodes, num_opcodes, sizeof (struct m68hc11_opcode), cmp_opcode);
+
+ opc = (struct m68hc11_opcode_def *)
+ xmalloc (num_opcodes * sizeof (struct m68hc11_opcode_def));
+ m68hc11_opcode_defs = opc--;
+
+ /* Insert unique names into hash table. The M6811 instruction set
+ has several identical opcode names that have different opcodes based
+ on the operands. This hash table then provides a quick index to
+ the first opcode with a particular name in the opcode table. */
+ for (i = 0; i < num_opcodes; i++, opcodes++)
+ {
+ int expect;
+
+ if (strcmp (prev_name, opcodes->name))
+ {
+ prev_name = (char *) opcodes->name;
+
+ opc++;
+ opc->format = 0;
+ opc->min_operands = 100;
+ opc->max_operands = 0;
+ opc->nb_modes = 0;
+ opc->opcode = opcodes;
+ opc->used = 0;
+ hash_insert (m68hc11_hash, opcodes->name, (char *) opc);
+ }
+ opc->nb_modes++;
+ opc->format |= opcodes->format;
+
+ /* See how many operands this opcode needs. */
+ expect = 0;
+ if (opcodes->format & M6811_OP_MASK)
+ expect++;
+ if (opcodes->format & M6811_OP_BITMASK)
+ expect++;
+ if (opcodes->format & (M6811_OP_JUMP_REL | M6812_OP_JUMP_REL16))
+ expect++;
+ if (opcodes->format & (M6812_OP_IND16_P2 | M6812_OP_IDX_P2))
+ expect++;
+
+ if (expect < opc->min_operands)
+ opc->min_operands = expect;
+ if (expect > opc->max_operands)
+ opc->max_operands = expect;
+ }
+ opc++;
+ m68hc11_nb_opcode_defs = opc - m68hc11_opcode_defs;
+
+ if (flag_print_opcodes)
+ {
+ print_opcode_list ();
+ exit (EXIT_SUCCESS);
+ }
+}
+
+void
+m68hc11_init_after_args ()
+{
+}
+
+
+/* Builtin help. */
+
+/* Return a string that represents the operand format for the instruction.
+ When example is true, this generates an example of operand. This is used
+ to give an example and also to generate a test. */
+static char *
+print_opcode_format (opcode, example)
+ struct m68hc11_opcode *opcode;
+ int example;
+{
+ static char buf[128];
+ int format = opcode->format;
+ char *p;
+
+ p = buf;
+ buf[0] = 0;
+ if (format & M6811_OP_IMM8)
+ {
+ if (example)
+ sprintf (p, "#%d", rand () & 0x0FF);
+ else
+ strcpy (p, _("#<imm8>"));
+ p = &p[strlen (p)];
+ }
+
+ if (format & M6811_OP_IMM16)
+ {
+ if (example)
+ sprintf (p, "#%d", rand () & 0x0FFFF);
+ else
+ strcpy (p, _("#<imm16>"));
+ p = &p[strlen (p)];
+ }
+
+ if (format & M6811_OP_IX)
+ {
+ if (example)
+ sprintf (p, "%d,X", rand () & 0x0FF);
+ else
+ strcpy (p, _("<imm8>,X"));
+ p = &p[strlen (p)];
+ }
+
+ if (format & M6811_OP_IY)
+ {
+ if (example)
+ sprintf (p, "%d,X", rand () & 0x0FF);
+ else
+ strcpy (p, _("<imm8>,X"));
+ p = &p[strlen (p)];
+ }
+
+ if (format & M6812_OP_IDX)
+ {
+ if (example)
+ sprintf (p, "%d,X", rand () & 0x0FF);
+ else
+ strcpy (p, "n,r");
+ p = &p[strlen (p)];
+ }
+
+ if (format & M6811_OP_DIRECT)
+ {
+ if (example)
+ sprintf (p, "*Z%d", rand () & 0x0FF);
+ else
+ strcpy (p, _("*<abs8>"));
+ p = &p[strlen (p)];
+ }
+
+ if (format & M6811_OP_BITMASK)
+ {
+ if (buf[0])
+ *p++ = ' ';
+
+ if (example)
+ sprintf (p, "#$%02x", rand () & 0x0FF);
+ else
+ strcpy (p, _("#<mask>"));
+
+ p = &p[strlen (p)];
+ if (format & M6811_OP_JUMP_REL)
+ *p++ = ' ';
+ }
+
+ if (format & M6811_OP_IND16)
+ {
+ if (example)
+ sprintf (p, _("symbol%d"), rand () & 0x0FF);
+ else
+ strcpy (p, _("<abs>"));
+
+ p = &p[strlen (p)];
+ }
+
+ if (format & (M6811_OP_JUMP_REL | M6812_OP_JUMP_REL16))
+ {
+ if (example)
+ {
+ if (format & M6811_OP_BITMASK)
+ {
+ sprintf (p, ".+%d", rand () & 0x7F);
+ }
+ else
+ {
+ sprintf (p, "L%d", rand () & 0x0FF);
+ }
+ }
+ else
+ strcpy (p, _("<label>"));
+ }
+
+ return buf;
+}
+
+/* Prints the list of instructions with the possible operands. */
+static void
+print_opcode_list ()
+{
+ int i;
+ char *prev_name = "";
+ struct m68hc11_opcode *opcodes;
+ int example = flag_print_opcodes == 2;
+
+ if (example)
+ {
+ printf (_("# Example of `%s' instructions\n\t.sect .text\n_start:\n"),
+ default_cpu);
+ }
+
+ opcodes = m68hc11_sorted_opcodes;
+
+ /* Walk the list sorted on names (by md_begin). We only report
+ one instruction per line, and we collect the different operand
+ formats. */
+ for (i = 0; i < num_opcodes; i++, opcodes++)
+ {
+ char *fmt = print_opcode_format (opcodes, example);
+
+ if (example)
+ {
+ printf ("L%d:\t", i);
+ printf ("%s %s\n", opcodes->name, fmt);
+ }
+ else
+ {
+ if (strcmp (prev_name, opcodes->name))
+ {
+ if (i > 0)
+ printf ("\n");
+
+ printf ("%-5.5s ", opcodes->name);
+ prev_name = (char *) opcodes->name;
+ }
+ if (fmt[0])
+ printf (" [%s]", fmt);
+ }
+ }
+ printf ("\n");
+}
+
+
+/* Print the instruction format. This operation is called when some
+ instruction is not correct. Instruction format is printed as an
+ error message. */
+static void
+print_insn_format (name)
+ char *name;
+{
+ struct m68hc11_opcode_def *opc;
+ struct m68hc11_opcode *opcode;
+ char buf[128];
+
+ opc = (struct m68hc11_opcode_def *) hash_find (m68hc11_hash, name);
+ if (opc == NULL)
+ {
+ as_bad (_("Instruction `%s' is not recognized."), name);
+ return;
+ }
+ opcode = opc->opcode;
+
+ as_bad (_("Instruction formats for `%s':"), name);
+ do
+ {
+ char *fmt;
+
+ fmt = print_opcode_format (opcode, 0, 0);
+ sprintf (buf, "\t%-5.5s %s", opcode->name, fmt);
+
+ as_bad ("%s", buf);
+ opcode++;
+ }
+ while (strcmp (opcode->name, name) == 0);
+}
+
+
+/* Analysis of 68HC11 and 68HC12 operands. */
+
+/* reg_name_search() finds the register number given its name.
+ Returns the register number or REG_NONE on failure. */
+static register_id
+reg_name_search (name)
+ char *name;
+{
+ if (strcasecmp (name, "x") == 0 || strcasecmp (name, "ix") == 0)
+ return REG_X;
+ if (strcasecmp (name, "y") == 0 || strcasecmp (name, "iy") == 0)
+ return REG_Y;
+ if (strcasecmp (name, "a") == 0)
+ return REG_A;
+ if (strcasecmp (name, "b") == 0)
+ return REG_B;
+ if (strcasecmp (name, "d") == 0)
+ return REG_D;
+ if (strcasecmp (name, "sp") == 0)
+ return REG_SP;
+ if (strcasecmp (name, "pc") == 0)
+ return REG_PC;
+ if (strcasecmp (name, "ccr") == 0)
+ return REG_CCR;
+
+ return REG_NONE;
+}
+
+static char *
+skip_whites (p)
+ char *p;
+{
+ while (*p == ' ' || *p == '\t')
+ p++;
+
+ return p;
+}
+
+/* register_name() checks the string at input_line_pointer
+ to see if it is a valid register name. */
+static register_id
+register_name ()
+{
+ register_id reg_number;
+ char c, *p = input_line_pointer;
+
+ if (!is_name_beginner (*p++))
+ return REG_NONE;
+
+ while (is_part_of_name (*p++))
+ continue;
+
+ c = *--p;
+ if (c)
+ *p++ = 0;
+
+ /* look to see if it's in the register table. */
+ reg_number = reg_name_search (input_line_pointer);
+ if (reg_number != REG_NONE)
+ {
+ if (c)
+ *--p = c;
+
+ input_line_pointer = p;
+ return reg_number;
+ }
+ if (c)
+ *--p = c;
+
+ return reg_number;
+}
+
+/* get_operands parses a string of operands and returns
+ an array of expressions.
+
+ Operand mode[0] mode[1] exp[0] exp[1]
+ #n M6811_OP_IMM16 - O_*
+ *<exp> M6811_OP_DIRECT - O_*
+ .{+-}<exp> M6811_OP_JUMP_REL - O_*
+ <exp> M6811_OP_IND16 - O_*
+ ,r N,r M6812_OP_IDX M6812_OP_REG O_constant O_register
+ n,-r M6812_PRE_DEC M6812_OP_REG O_constant O_register
+ n,+r M6812_PRE_INC " "
+ n,r- M6812_POST_DEC " "
+ n,r+ M6812_POST_INC " "
+ A,r B,r D,r M6811_OP_REG M6812_OP_REG O_register O_register
+ [D,r] M6811_OP_IDX_2 M6812_OP_REG O_register O_register
+ [n,r] M6811_OP_IDX_1 M6812_OP_REG O_constant O_register
+
+*/
+
+static int
+get_operand (oper, which, opmode)
+ operand *oper;
+ int which;
+ long opmode;
+{
+ char *p = input_line_pointer;
+ int mode;
+ register_id reg;
+
+ oper->exp.X_op = O_absent;
+ oper->reg1 = REG_NONE;
+ oper->reg2 = REG_NONE;
+ mode = M6811_OP_NONE;
+
+ p = skip_whites (p);
+
+ if (*p == 0 || *p == '\n' || *p == '\r')
+ {
+ input_line_pointer = p;
+ return 0;
+ }
+
+ if (*p == '*' && (opmode & (M6811_OP_DIRECT | M6811_OP_IND16)))
+ {
+ mode = M6811_OP_DIRECT;
+ p++;
+ }
+ else if (*p == '#')
+ {
+ if (!(opmode & (M6811_OP_IMM8 | M6811_OP_IMM16 | M6811_OP_BITMASK)))
+ {
+ as_bad (_("Immediate operand is not allowed for operand %d."),
+ which);
+ return -1;
+ }
+
+ mode = M6811_OP_IMM16;
+ p++;
+ if (strncmp (p, "%hi", 3) == 0)
+ {
+ p += 3;
+ mode |= M6811_OP_HIGH_ADDR;
+ }
+ else if (strncmp (p, "%lo", 3) == 0)
+ {
+ p += 3;
+ mode |= M6811_OP_LOW_ADDR;
+ }
+ }
+ else if (*p == '.' && (p[1] == '+' || p[1] == '-'))
+ {
+ p++;
+ mode = M6811_OP_JUMP_REL;
+ }
+ else if (*p == '[')
+ {
+ if (current_architecture & cpu6811)
+ as_bad (_("Indirect indexed addressing is not valid for 68HC11."));
+
+ p++;
+ mode = M6812_OP_IDX_2;
+ p = skip_whites (p);
+ }
+ else if (*p == ',') /* Special handling of ,x and ,y. */
+ {
+ p++;
+ input_line_pointer = p;
+
+ reg = register_name ();
+ if (reg != REG_NONE)
+ {
+ oper->reg1 = reg;
+ oper->exp.X_op = O_constant;
+ oper->exp.X_add_number = 0;
+ oper->mode = M6812_OP_IDX;
+ return 1;
+ }
+ as_bad (_("Spurious `,' or bad indirect register addressing mode."));
+ return -1;
+ }
+ input_line_pointer = p;
+
+ if (mode == M6811_OP_NONE || mode == M6812_OP_IDX_2)
+ reg = register_name ();
+ else
+ reg = REG_NONE;
+
+ if (reg != REG_NONE)
+ {
+ p = skip_whites (input_line_pointer);
+ if (*p == ']' && mode == M6812_OP_IDX_2)
+ {
+ as_bad
+ (_("Missing second register or offset for indexed-indirect mode."));
+ return -1;
+ }
+
+ oper->reg1 = reg;
+ oper->mode = mode | M6812_OP_REG;
+ if (*p != ',')
+ {
+ if (mode == M6812_OP_IDX_2)
+ {
+ as_bad (_("Missing second register for indexed-indirect mode."));
+ return -1;
+ }
+ return 1;
+ }
+
+ p++;
+ input_line_pointer = p;
+ reg = register_name ();
+ if (reg != REG_NONE)
+ {
+ p = skip_whites (input_line_pointer);
+ if (mode == M6812_OP_IDX_2)
+ {
+ if (*p != ']')
+ {
+ as_bad (_("Missing `]' to close indexed-indirect mode."));
+ return -1;
+ }
+ p++;
+ }
+ input_line_pointer = p;
+
+ oper->reg2 = reg;
+ return 1;
+ }
+ return 1;
+ }
+
+ /* In MRI mode, isolate the operand because we can't distinguish
+ operands from comments. */
+ if (flag_mri)
+ {
+ char c = 0;
+
+ p = skip_whites (p);
+ while (*p && *p != ' ' && *p != '\t')
+ p++;
+
+ if (*p)
+ {
+ c = *p;
+ *p = 0;
+ }
+
+ /* Parse as an expression. */
+ expression (&oper->exp);
+
+ if (c)
+ {
+ *p = c;
+ }
+ }
+ else
+ {
+ expression (&oper->exp);
+ }
+
+ if (oper->exp.X_op == O_illegal)
+ {
+ as_bad (_("Illegal operand."));
+ return -1;
+ }
+ else if (oper->exp.X_op == O_absent)
+ {
+ as_bad (_("Missing operand."));
+ return -1;
+ }
+
+ p = input_line_pointer;
+
+ if (mode == M6811_OP_NONE || mode == M6811_OP_DIRECT
+ || mode == M6812_OP_IDX_2)
+ {
+ p = skip_whites (input_line_pointer);
+
+ if (*p == ',')
+ {
+ p++;
+
+ /* 68HC12 pre increment or decrement. */
+ if (mode == M6811_OP_NONE)
+ {
+ if (*p == '-')
+ {
+ mode = M6812_PRE_DEC;
+ p++;
+ if (current_architecture & cpu6811)
+ as_bad (_("Pre-decrement mode is not valid for 68HC11"));
+ }
+ else if (*p == '+')
+ {
+ mode = M6812_PRE_INC;
+ p++;
+ if (current_architecture & cpu6811)
+ as_bad (_("Pre-increment mode is not valid for 68HC11"));
+ }
+ p = skip_whites (p);
+ }
+ input_line_pointer = p;
+ reg = register_name ();
+
+ /* Backtrack... */
+ if (which == 0 && opmode & M6812_OP_IDX_P2
+ && reg != REG_X && reg != REG_Y
+ && reg != REG_PC && reg != REG_SP)
+ {
+ reg = REG_NONE;
+ input_line_pointer = p;
+ }
+
+ if (reg == REG_NONE && mode != M6811_OP_DIRECT
+ && !(mode == M6811_OP_NONE && opmode & M6811_OP_IND16))
+ {
+ as_bad (_("Wrong register in register indirect mode."));
+ return -1;
+ }
+ if (mode == M6812_OP_IDX_2)
+ {
+ p = skip_whites (input_line_pointer);
+ if (*p++ != ']')
+ {
+ as_bad (_("Missing `]' to close register indirect operand."));
+ return -1;
+ }
+ input_line_pointer = p;
+ }
+ if (reg != REG_NONE)
+ {
+ oper->reg1 = reg;
+ if (mode == M6811_OP_NONE)
+ {
+ p = input_line_pointer;
+ if (*p == '-')
+ {
+ mode = M6812_POST_DEC;
+ p++;
+ if (current_architecture & cpu6811)
+ as_bad
+ (_("Post-decrement mode is not valid for 68HC11."));
+ }
+ else if (*p == '+')
+ {
+ mode = M6812_POST_INC;
+ p++;
+ if (current_architecture & cpu6811)
+ as_bad
+ (_("Post-increment mode is not valid for 68HC11."));
+ }
+ else
+ mode = M6812_OP_IDX;
+
+ input_line_pointer = p;
+ }
+ else
+ mode |= M6812_OP_IDX;
+
+ oper->mode = mode;
+ return 1;
+ }
+ }
+
+ if (mode == M6812_OP_D_IDX_2)
+ {
+ as_bad (_("Invalid indexed indirect mode."));
+ return -1;
+ }
+ }
+
+ /* If the mode is not known until now, this is either a label
+ or an indirect address. */
+ if (mode == M6811_OP_NONE)
+ {
+ mode = M6811_OP_IND16 | M6811_OP_JUMP_REL;
+ }
+
+ p = input_line_pointer;
+ while (*p == ' ' || *p == '\t')
+ p++;
+ input_line_pointer = p;
+ oper->mode = mode;
+
+ return 1;
+}
+
+#define M6812_AUTO_INC_DEC (M6812_PRE_INC | M6812_PRE_DEC \
+ | M6812_POST_INC | M6812_POST_DEC)
+
+/* Checks that the number 'num' fits for a given mode. */
+static int
+check_range (num, mode)
+ long num;
+ int mode;
+{
+ /* Auto increment and decrement are ok for [-8..8] without 0. */
+ if (mode & M6812_AUTO_INC_DEC)
+ {
+ return (num != 0 && num <= 8 && num >= -8);
+ }
+
+ /* The 68HC12 supports 5, 9 and 16-bits offsets. */
+ if (mode & (M6812_INDEXED_IND | M6812_INDEXED | M6812_OP_IDX))
+ {
+ mode = M6811_OP_IND16;
+ }
+
+ if (mode & M6812_OP_JUMP_REL16)
+ mode = M6811_OP_IND16;
+
+ switch (mode)
+ {
+ case M6811_OP_IX:
+ case M6811_OP_IY:
+ case M6811_OP_DIRECT:
+ return (num >= 0 && num <= 255) ? 1 : 0;
+
+ case M6811_OP_BITMASK:
+ case M6811_OP_IMM8:
+ return (((num & 0xFFFFFF00) == 0) || ((num & 0xFFFFFF00) == 0xFFFFFF00))
+ ? 1 : 0;
+
+ case M6811_OP_JUMP_REL:
+ return (num >= -128 && num <= 127) ? 1 : 0;
+
+ case M6811_OP_IND16:
+ case M6811_OP_IMM16:
+ return (((num & 0xFFFF0000) == 0) || ((num & 0xFFFF0000) == 0xFFFF0000))
+ ? 1 : 0;
+
+ case M6812_OP_IBCC_MARKER:
+ case M6812_OP_TBCC_MARKER:
+ case M6812_OP_DBCC_MARKER:
+ return (num >= -256 && num <= 255) ? 1 : 0;
+
+ case M6812_OP_TRAP_ID:
+ return ((num >= 0x30 && num <= 0x39)
+ || (num >= 0x40 && num <= 0x0ff)) ? 1 : 0;
+
+ default:
+ return 0;
+ }
+}
+
+
+/* Gas fixup generation. */
+
+/* Put a 1 byte expression described by 'oper'. If this expression contains
+ unresolved symbols, generate an 8-bit fixup. */
+static void
+fixup8 (oper, mode, opmode)
+ expressionS *oper;
+ int mode;
+ int opmode;
+{
+ char *f;
+
+ f = frag_more (1);
+
+ if (oper->X_op == O_constant)
+ {
+ if (mode & M6812_OP_TRAP_ID
+ && !check_range (oper->X_add_number, M6812_OP_TRAP_ID))
+ {
+ static char trap_id_warn_once = 0;
+
+ as_bad (_("Trap id `%ld' is out of range."), oper->X_add_number);
+ if (trap_id_warn_once == 0)
+ {
+ trap_id_warn_once = 1;
+ as_bad (_("Trap id must be within [0x30..0x39] or [0x40..0xff]."));
+ }
+ }
+
+ if (!(mode & M6812_OP_TRAP_ID)
+ && !check_range (oper->X_add_number, mode))
+ {
+ as_bad (_("Operand out of 8-bit range: `%ld'."), oper->X_add_number);
+ }
+ number_to_chars_bigendian (f, oper->X_add_number & 0x0FF, 1);
+ }
+ else if (oper->X_op != O_register)
+ {
+ if (mode & M6812_OP_TRAP_ID)
+ as_bad (_("The trap id must be a constant."));
+
+ if (mode == M6811_OP_JUMP_REL)
+ {
+ fixS *fixp;
+
+ fixp = fix_new_exp (frag_now, f - frag_now->fr_literal, 1,
+ oper, true, BFD_RELOC_8_PCREL);
+ fixp->fx_pcrel_adjust = 1;
+ }
+ else
+ {
+ /* Now create an 8-bit fixup. If there was some %hi or %lo
+ modifier, generate the reloc accordingly. */
+ fix_new_exp (frag_now, f - frag_now->fr_literal, 1,
+ oper, false,
+ ((opmode & M6811_OP_HIGH_ADDR)
+ ? BFD_RELOC_M68HC11_HI8
+ : ((opmode & M6811_OP_LOW_ADDR)
+ ? BFD_RELOC_M68HC11_LO8 : BFD_RELOC_8)));
+ }
+ number_to_chars_bigendian (f, 0, 1);
+ }
+ else
+ {
+ as_fatal (_("Operand `%x' not recognized in fixup8."), oper->X_op);
+ }
+}
+
+/* Put a 2 bytes expression described by 'oper'. If this expression contains
+ unresolved symbols, generate a 16-bit fixup. */
+static void
+fixup16 (oper, mode, opmode)
+ expressionS *oper;
+ int mode;
+ int opmode ATTRIBUTE_UNUSED;
+{
+ char *f;
+
+ f = frag_more (2);
+
+ if (oper->X_op == O_constant)
+ {
+ if (!check_range (oper->X_add_number, mode))
+ {
+ as_bad (_("Operand out of 16-bit range: `%ld'."),
+ oper->X_add_number);
+ }
+ number_to_chars_bigendian (f, oper->X_add_number & 0x0FFFF, 2);
+ }
+ else if (oper->X_op != O_register)
+ {
+ fixS *fixp;
+
+ /* Now create a 16-bit fixup. */
+ fixp = fix_new_exp (frag_now, f - frag_now->fr_literal, 2,
+ oper,
+ (mode & M6812_OP_JUMP_REL16 ? true : false),
+ (mode & M6812_OP_JUMP_REL16
+ ? BFD_RELOC_16_PCREL : BFD_RELOC_16));
+ number_to_chars_bigendian (f, 0, 2);
+ if (mode & M6812_OP_JUMP_REL16)
+ fixp->fx_pcrel_adjust = 2;
+ }
+ else
+ {
+ as_fatal (_("Operand `%x' not recognized in fixup16."), oper->X_op);
+ }
+}
+
+
+/* 68HC11 and 68HC12 code generation. */
+
+/* Translate the short branch/bsr instruction into a long branch. */
+static unsigned char
+convert_branch (code)
+ unsigned char code;
+{
+ if (IS_OPCODE (code, M6812_BSR))
+ return M6812_JSR;
+ else if (IS_OPCODE (code, M6811_BSR))
+ return M6811_JSR;
+ else if (IS_OPCODE (code, M6811_BRA))
+ return (current_architecture & cpu6812) ? M6812_JMP : M6811_JMP;
+ else
+ as_fatal (_("Unexpected branch conversion with `%x'"), code);
+
+ /* Keep gcc happy. */
+ return M6811_JSR;
+}
+
+/* Start a new insn that contains at least 'size' bytes. Record the
+ line information of that insn in the dwarf2 debug sections. */
+static char*
+m68hc11_new_insn (size)
+ int size;
+{
+ char* f;
+
+ f = frag_more (size);
+
+ /* Emit line number information in dwarf2 debug sections. */
+ if (debug_type == DEBUG_DWARF2)
+ {
+ bfd_vma addr;
+
+ dwarf2_where (&debug_line);
+ addr = frag_now->fr_address + frag_now_fix () - size;
+ dwarf2_gen_line_info (addr, &debug_line);
+ }
+ return f;
+}
+
+/* Builds a jump instruction (bra, bcc, bsr). */
+static void
+build_jump_insn (opcode, operands, nb_operands, jmp_mode)
+ struct m68hc11_opcode *opcode;
+ operand operands[];
+ int nb_operands;
+ int jmp_mode;
+{
+ unsigned char code;
+ int insn_size;
+ char *f;
+ unsigned long n;
+
+ /* The relative branch convertion is not supported for
+ brclr and brset. */
+ assert ((opcode->format & M6811_OP_BITMASK) == 0);
+ assert (nb_operands == 1);
+ assert (operands[0].reg1 == REG_NONE && operands[0].reg2 == REG_NONE);
+
+ code = opcode->opcode;
+ insn_size = 1;
+
+ n = operands[0].exp.X_add_number;
+
+ /* Turn into a long branch:
+ - when force long branch option (and not for jbcc pseudos),
+ - when jbcc and the constant is out of -128..127 range,
+ - when branch optimization is allowed and branch out of range. */
+ if ((jmp_mode == 0 && flag_force_long_jumps)
+ || (operands[0].exp.X_op == O_constant
+ && (!check_range (n, opcode->format) &&
+ (jmp_mode == 1 || flag_fixed_branchs == 0))))
+ {
+ if (code == M6811_BSR || code == M6811_BRA || code == M6812_BSR)
+ {
+ code = convert_branch (code);
+
+ f = m68hc11_new_insn (1);
+ number_to_chars_bigendian (f, code, 1);
+ }
+ else if (current_architecture & cpu6812)
+ {
+ /* 68HC12: translate the bcc into a lbcc. */
+ f = m68hc11_new_insn (2);
+ number_to_chars_bigendian (f, M6811_OPCODE_PAGE2, 1);
+ number_to_chars_bigendian (f + 1, code, 1);
+ fixup16 (&operands[0].exp, M6812_OP_JUMP_REL16,
+ M6812_OP_JUMP_REL16);
+ return;
+ }
+ else
+ {
+ /* 68HC11: translate the bcc into b!cc +3; jmp <L>. */
+ f = m68hc11_new_insn (3);
+ code ^= 1;
+ number_to_chars_bigendian (f, code, 1);
+ number_to_chars_bigendian (f + 1, 3, 1);
+ number_to_chars_bigendian (f + 2, M6811_JMP, 1);
+ }
+ fixup16 (&operands[0].exp, M6811_OP_IND16, M6811_OP_IND16);
+ return;
+ }
+
+ /* Branch with a constant that must fit in 8-bits. */
+ if (operands[0].exp.X_op == O_constant)
+ {
+ if (!check_range (n, opcode->format))
+ {
+ as_bad (_("Operand out of range for a relative branch: `%ld'"),
+ n);
+ }
+ else if (opcode->format & M6812_OP_JUMP_REL16)
+ {
+ f = m68hc11_new_insn (4);
+ number_to_chars_bigendian (f, M6811_OPCODE_PAGE2, 1);
+ number_to_chars_bigendian (f + 1, code, 1);
+ number_to_chars_bigendian (f + 2, n & 0x0ffff, 2);
+ }
+ else
+ {
+ f = m68hc11_new_insn (2);
+ number_to_chars_bigendian (f, code, 1);
+ number_to_chars_bigendian (f + 1, n & 0x0FF, 1);
+ }
+ }
+ else if (opcode->format & M6812_OP_JUMP_REL16)
+ {
+ f = m68hc11_new_insn (2);
+ number_to_chars_bigendian (f, M6811_OPCODE_PAGE2, 1);
+ number_to_chars_bigendian (f + 1, code, 1);
+ fixup16 (&operands[0].exp, M6812_OP_JUMP_REL16, M6812_OP_JUMP_REL16);
+ }
+ else
+ {
+ char *opcode;
+
+ /* Branch offset must fit in 8-bits, don't do some relax. */
+ if (jmp_mode == 0 && flag_fixed_branchs)
+ {
+ opcode = m68hc11_new_insn (1);
+ number_to_chars_bigendian (opcode, code, 1);
+ fixup8 (&operands[0].exp, M6811_OP_JUMP_REL, M6811_OP_JUMP_REL);
+ }
+
+ /* bra/bsr made be changed into jmp/jsr. */
+ else if (code == M6811_BSR || code == M6811_BRA || code == M6812_BSR)
+ {
+ opcode = m68hc11_new_insn (2);
+ number_to_chars_bigendian (opcode, code, 1);
+ number_to_chars_bigendian (opcode + 1, 0, 1);
+ frag_var (rs_machine_dependent, 1, 1,
+ ENCODE_RELAX (STATE_PC_RELATIVE, STATE_UNDF),
+ operands[0].exp.X_add_symbol, (offsetT) n, opcode);
+ }
+ else if (current_architecture & cpu6812)
+ {
+ opcode = m68hc11_new_insn (2);
+ number_to_chars_bigendian (opcode, code, 1);
+ number_to_chars_bigendian (opcode + 1, 0, 1);
+ frag_var (rs_machine_dependent, 2, 2,
+ ENCODE_RELAX (STATE_CONDITIONAL_BRANCH_6812, STATE_UNDF),
+ operands[0].exp.X_add_symbol, (offsetT) n, opcode);
+ }
+ else
+ {
+ opcode = m68hc11_new_insn (2);
+ number_to_chars_bigendian (opcode, code, 1);
+ number_to_chars_bigendian (opcode + 1, 0, 1);
+ frag_var (rs_machine_dependent, 3, 3,
+ ENCODE_RELAX (STATE_CONDITIONAL_BRANCH, STATE_UNDF),
+ operands[0].exp.X_add_symbol, (offsetT) n, opcode);
+ }
+ }
+}
+
+/* Builds a dbne/dbeq/tbne/tbeq instruction. */
+static void
+build_dbranch_insn (opcode, operands, nb_operands, jmp_mode)
+ struct m68hc11_opcode *opcode;
+ operand operands[];
+ int nb_operands;
+ int jmp_mode;
+{
+ unsigned char code;
+ int insn_size;
+ char *f;
+ unsigned long n;
+
+ /* The relative branch convertion is not supported for
+ brclr and brset. */
+ assert ((opcode->format & M6811_OP_BITMASK) == 0);
+ assert (nb_operands == 2);
+ assert (operands[0].reg1 != REG_NONE);
+
+ code = opcode->opcode & 0x0FF;
+ insn_size = 1;
+
+ f = m68hc11_new_insn (1);
+ number_to_chars_bigendian (f, code, 1);
+
+ n = operands[1].exp.X_add_number;
+ code = operands[0].reg1;
+
+ if (operands[0].reg1 == REG_NONE || operands[0].reg1 == REG_CCR
+ || operands[0].reg1 == REG_PC)
+ as_bad (_("Invalid register for dbcc/tbcc instruction."));
+
+ if (opcode->format & M6812_OP_IBCC_MARKER)
+ code |= 0x80;
+ else if (opcode->format & M6812_OP_TBCC_MARKER)
+ code |= 0x40;
+
+ if (!(opcode->format & M6812_OP_EQ_MARKER))
+ code |= 0x20;
+
+ /* Turn into a long branch:
+ - when force long branch option (and not for jbcc pseudos),
+ - when jdbcc and the constant is out of -256..255 range,
+ - when branch optimization is allowed and branch out of range. */
+ if ((jmp_mode == 0 && flag_force_long_jumps)
+ || (operands[1].exp.X_op == O_constant
+ && (!check_range (n, M6812_OP_IBCC_MARKER) &&
+ (jmp_mode == 1 || flag_fixed_branchs == 0))))
+ {
+ f = frag_more (2);
+ code ^= 0x20;
+ number_to_chars_bigendian (f, code, 1);
+ number_to_chars_bigendian (f + 1, M6812_JMP, 1);
+ fixup16 (&operands[0].exp, M6811_OP_IND16, M6811_OP_IND16);
+ return;
+ }
+
+ /* Branch with a constant that must fit in 9-bits. */
+ if (operands[1].exp.X_op == O_constant)
+ {
+ if (!check_range (n, M6812_OP_IBCC_MARKER))
+ {
+ as_bad (_("Operand out of range for a relative branch: `%ld'"),
+ n);
+ }
+ else
+ {
+ if ((long) n < 0)
+ code |= 0x10;
+
+ f = frag_more (2);
+ number_to_chars_bigendian (f, code, 1);
+ number_to_chars_bigendian (f + 1, n & 0x0FF, 1);
+ }
+ }
+ else
+ {
+ /* Branch offset must fit in 8-bits, don't do some relax. */
+ if (jmp_mode == 0 && flag_fixed_branchs)
+ {
+ fixup8 (&operands[0].exp, M6811_OP_JUMP_REL, M6811_OP_JUMP_REL);
+ }
+
+ else
+ {
+ f = frag_more (2);
+ number_to_chars_bigendian (f, code, 1);
+ number_to_chars_bigendian (f + 1, 0, 1);
+ frag_var (rs_machine_dependent, 3, 3,
+ ENCODE_RELAX (STATE_XBCC_BRANCH, STATE_UNDF),
+ operands[1].exp.X_add_symbol, (offsetT) n, f);
+ }
+ }
+}
+
+#define OP_EXTENDED (M6811_OP_PAGE2 | M6811_OP_PAGE3 | M6811_OP_PAGE4)
+
+/* Assemble the post index byte for 68HC12 extended addressing modes. */
+static int
+build_indexed_byte (op, format, move_insn)
+ operand *op;
+ int format ATTRIBUTE_UNUSED;
+ int move_insn;
+{
+ unsigned char byte = 0;
+ char *f;
+ int mode;
+ long val;
+
+ val = op->exp.X_add_number;
+ mode = op->mode;
+ if (mode & M6812_AUTO_INC_DEC)
+ {
+ byte = 0x20;
+ if (mode & (M6812_POST_INC | M6812_POST_DEC))
+ byte |= 0x10;
+
+ if (op->exp.X_op == O_constant)
+ {
+ if (!check_range (val, mode))
+ {
+ as_bad (_("Increment/decrement value is out of range: `%ld'."),
+ val);
+ }
+ if (mode & (M6812_POST_INC | M6812_PRE_INC))
+ byte |= (val - 1) & 0x07;
+ else
+ byte |= (8 - ((val) & 7)) | 0x8;
+ }
+ switch (op->reg1)
+ {
+ case REG_NONE:
+ as_fatal (_("Expecting a register."));
+
+ case REG_X:
+ byte |= 0;
+ break;
+
+ case REG_Y:
+ byte |= 0x40;
+ break;
+
+ case REG_SP:
+ byte |= 0x80;
+ break;
+
+ default:
+ as_bad (_("Invalid register for post/pre increment."));
+ break;
+ }
+
+ f = frag_more (1);
+ number_to_chars_bigendian (f, byte, 1);
+ return 1;
+ }
+
+ if (mode & M6812_OP_IDX)
+ {
+ switch (op->reg1)
+ {
+ case REG_X:
+ byte = 0;
+ break;
+
+ case REG_Y:
+ byte = 1;
+ break;
+
+ case REG_SP:
+ byte = 2;
+ break;
+
+ case REG_PC:
+ byte = 3;
+ break;
+
+ default:
+ as_bad (_("Invalid register."));
+ break;
+ }
+ if (op->exp.X_op == O_constant)
+ {
+ if (!check_range (val, M6812_OP_IDX))
+ {
+ as_bad (_("Offset out of 16-bit range: %ld."), val);
+ }
+
+ if (move_insn && !(val >= -16 && val <= 15))
+ {
+ as_bad (_("Offset out of 5-bit range for movw/movb insn."));
+ return -1;
+ }
+
+ if (val >= -16 && val <= 15 && !(mode & M6812_OP_IDX_2))
+ {
+ byte = byte << 6;
+ byte |= val & 0x1f;
+ f = frag_more (1);
+ number_to_chars_bigendian (f, byte, 1);
+ return 1;
+ }
+ else if (val >= -256 && val <= 255 && !(mode & M6812_OP_IDX_2))
+ {
+ byte = byte << 3;
+ byte |= 0xe0;
+ if (val < 0)
+ byte |= 0x1;
+ f = frag_more (2);
+ number_to_chars_bigendian (f, byte, 1);
+ number_to_chars_bigendian (f + 1, val & 0x0FF, 1);
+ return 2;
+ }
+ else
+ {
+ byte = byte << 3;
+ if (mode & M6812_OP_IDX_2)
+ byte |= 0xe3;
+ else
+ byte |= 0xe2;
+
+ f = frag_more (3);
+ number_to_chars_bigendian (f, byte, 1);
+ number_to_chars_bigendian (f + 1, val & 0x0FFFF, 2);
+ return 3;
+ }
+ }
+ f = frag_more (1);
+ number_to_chars_bigendian (f, byte, 1);
+ /*
+ fix_new_exp (frag_now, f - frag_now->fr_literal, 2,
+ &op->exp, false, BFD_RELOC_16); */
+ frag_var (rs_machine_dependent, 2, 2,
+ ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_UNDF),
+ op->exp.X_add_symbol, val, f);
+ return 3;
+ }
+
+ if (mode & M6812_OP_REG)
+ {
+ if (mode & M6812_OP_IDX_2)
+ {
+ if (op->reg1 != REG_D)
+ as_bad (_("Expecting register D for indexed indirect mode."));
+ if (move_insn)
+ as_bad (_("Indexed indirect mode is not allowed for movb/movw."));
+
+ byte = 0xE7;
+ }
+ else
+ {
+ switch (op->reg1)
+ {
+ case REG_A:
+ byte = 0xE4;
+ break;
+
+ case REG_B:
+ byte = 0xE5;
+ break;
+
+ default:
+ as_bad (_("Invalid accumulator register."));
+
+ case REG_D:
+ byte = 0xE6;
+ break;
+ }
+ }
+ switch (op->reg2)
+ {
+ case REG_X:
+ break;
+
+ case REG_Y:
+ byte |= (1 << 3);
+ break;
+
+ case REG_SP:
+ byte |= (2 << 3);
+ break;
+
+ case REG_PC:
+ byte |= (3 << 3);
+ break;
+
+ default:
+ as_bad (_("Invalid indexed register."));
+ break;
+ }
+ f = frag_more (1);
+ number_to_chars_bigendian (f, byte, 1);
+ return 1;
+ }
+
+ as_fatal (_("Addressing mode not implemented yet."));
+ return 0;
+}
+
+/* Assemble the 68HC12 register mode byte. */
+static int
+build_reg_mode (op, format)
+ operand *op;
+ int format;
+{
+ unsigned char byte;
+ char *f;
+
+ if (format & M6812_OP_SEX_MARKER
+ && op->reg1 != REG_A && op->reg1 != REG_B && op->reg1 != REG_CCR)
+ as_bad (_("Invalid source register for this instruction, use 'tfr'."));
+ else if (op->reg1 == REG_NONE || op->reg1 == REG_PC)
+ as_bad (_("Invalid source register."));
+
+ if (format & M6812_OP_SEX_MARKER
+ && op->reg2 != REG_D
+ && op->reg2 != REG_X && op->reg2 != REG_Y && op->reg2 != REG_SP)
+ as_bad (_("Invalid destination register for this instruction, use 'tfr'."));
+ else if (op->reg2 == REG_NONE || op->reg2 == REG_PC)
+ as_bad (_("Invalid destination register."));
+
+ byte = (op->reg1 << 4) | (op->reg2);
+ if (format & M6812_OP_EXG_MARKER)
+ byte |= 0x80;
+
+ f = frag_more (1);
+ number_to_chars_bigendian (f, byte, 1);
+ return 1;
+}
+
+/* build_insn takes a pointer to the opcode entry in the opcode table,
+ the array of operand expressions and builds the correspding instruction.
+ This operation only deals with non relative jumps insn (need special
+ handling). */
+static void
+build_insn (opcode, operands, nb_operands)
+ struct m68hc11_opcode *opcode;
+ operand operands[];
+ int nb_operands ATTRIBUTE_UNUSED;
+{
+ int i;
+ char *f;
+ int insn_size = 1;
+ long format;
+ int move_insn = 0;
+
+ /* Put the page code instruction if there is one. */
+ format = opcode->format;
+ if (format & OP_EXTENDED)
+ {
+ int page_code;
+
+ f = m68hc11_new_insn (2);
+ if (format & M6811_OP_PAGE2)
+ page_code = M6811_OPCODE_PAGE2;
+ else if (format & M6811_OP_PAGE3)
+ page_code = M6811_OPCODE_PAGE3;
+ else
+ page_code = M6811_OPCODE_PAGE4;
+
+ number_to_chars_bigendian (f, page_code, 1);
+ f++;
+ insn_size = 2;
+ }
+ else
+ f = m68hc11_new_insn (1);
+
+ number_to_chars_bigendian (f, opcode->opcode, 1);
+
+ i = 0;
+
+ /* The 68HC12 movb and movw instructions are special. We have to handle
+ them in a special way. */
+ if (format & (M6812_OP_IND16_P2 | M6812_OP_IDX_P2))
+ {
+ move_insn = 1;
+ if (format & M6812_OP_IDX)
+ {
+ insn_size += build_indexed_byte (&operands[0], format, 1);
+ i = 1;
+ format &= ~M6812_OP_IDX;
+ }
+ if (format & M6812_OP_IDX_P2)
+ {
+ insn_size += build_indexed_byte (&operands[1], format, 1);
+ i = 0;
+ format &= ~M6812_OP_IDX_P2;
+ }
+ }
+
+ if (format & (M6811_OP_DIRECT | M6811_OP_IMM8))
+ {
+ insn_size++;
+ fixup8 (&operands[i].exp,
+ format & (M6811_OP_DIRECT | M6811_OP_IMM8 | M6812_OP_TRAP_ID),
+ operands[i].mode);
+ i++;
+ }
+ else if (format & (M6811_OP_IMM16 | M6811_OP_IND16))
+ {
+ insn_size += 2;
+ fixup16 (&operands[i].exp, format & (M6811_OP_IMM16 | M6811_OP_IND16),
+ operands[i].mode);
+ i++;
+ }
+ else if (format & (M6811_OP_IX | M6811_OP_IY))
+ {
+ if ((format & M6811_OP_IX) && (operands[0].reg1 != REG_X))
+ as_bad (_("Invalid indexed register, expecting register X."));
+ if ((format & M6811_OP_IY) && (operands[0].reg1 != REG_Y))
+ as_bad (_("Invalid indexed register, expecting register Y."));
+
+ insn_size++;
+ fixup8 (&operands[0].exp, M6811_OP_IX, operands[0].mode);
+ i = 1;
+ }
+ else if (format &
+ (M6812_OP_IDX | M6812_OP_IDX_2 | M6812_OP_IDX_1 | M6812_OP_D_IDX))
+ {
+ insn_size += build_indexed_byte (&operands[i], format, move_insn);
+ i++;
+ }
+ else if (format & M6812_OP_REG && current_architecture & cpu6812)
+ {
+ insn_size += build_reg_mode (&operands[i], format);
+ i++;
+ }
+ if (format & M6811_OP_BITMASK)
+ {
+ insn_size++;
+ fixup8 (&operands[i].exp, M6811_OP_BITMASK, operands[i].mode);
+ i++;
+ }
+ if (format & M6811_OP_JUMP_REL)
+ {
+ insn_size++;
+ fixup8 (&operands[i].exp, M6811_OP_JUMP_REL, operands[i].mode);
+ i++;
+ }
+ else if (format & M6812_OP_IND16_P2)
+ {
+ insn_size += 2;
+ fixup16 (&operands[1].exp, M6811_OP_IND16, operands[1].mode);
+ }
+}
+
+
+/* Opcode identification and operand analysis. */
+
+/* find() gets a pointer to an entry in the opcode table. It must look at all
+ opcodes with the same name and use the operands to choose the correct
+ opcode. Returns the opcode pointer if there was a match and 0 if none. */
+static struct m68hc11_opcode *
+find (opc, operands, nb_operands)
+ struct m68hc11_opcode_def *opc;
+ operand operands[];
+ int nb_operands;
+{
+ int i, match, pos;
+ struct m68hc11_opcode *opcode;
+ struct m68hc11_opcode *op_indirect;
+
+ op_indirect = 0;
+ opcode = opc->opcode;
+
+ /* Now search the opcode table table for one with operands
+ that matches what we've got. We're only done if the operands matched so
+ far AND there are no more to check. */
+ for (pos = match = 0; match == 0 && pos < opc->nb_modes; pos++, opcode++)
+ {
+ int poss_indirect = 0;
+ long format = opcode->format;
+ int expect;
+
+ expect = 0;
+ if (opcode->format & M6811_OP_MASK)
+ expect++;
+ if (opcode->format & M6811_OP_BITMASK)
+ expect++;
+ if (opcode->format & (M6811_OP_JUMP_REL | M6812_OP_JUMP_REL16))
+ expect++;
+ if (opcode->format & (M6812_OP_IND16_P2 | M6812_OP_IDX_P2))
+ expect++;
+
+ for (i = 0; expect == nb_operands && i < nb_operands; i++)
+ {
+ int mode = operands[i].mode;
+
+ if (mode & M6811_OP_IMM16)
+ {
+ if (format &
+ (M6811_OP_IMM8 | M6811_OP_IMM16 | M6811_OP_BITMASK))
+ continue;
+ break;
+ }
+ if (mode == M6811_OP_DIRECT)
+ {
+ if (format & M6811_OP_DIRECT)
+ continue;
+
+ /* If the operand is a page 0 operand, remember a
+ possible <abs-16> addressing mode. We mark
+ this and continue to check other operands. */
+ if (format & M6811_OP_IND16
+ && flag_strict_direct_addressing && op_indirect == 0)
+ {
+ poss_indirect = 1;
+ continue;
+ }
+ break;
+ }
+ if (mode & M6811_OP_IND16)
+ {
+ if (i == 0 && (format & M6811_OP_IND16) != 0)
+ continue;
+ if (i != 0 && (format & M6812_OP_IND16_P2) != 0)
+ continue;
+ if (i == 0 && (format & M6811_OP_BITMASK))
+ break;
+ }
+ if (mode & (M6811_OP_JUMP_REL | M6812_OP_JUMP_REL16))
+ {
+ if (format & (M6811_OP_JUMP_REL | M6812_OP_JUMP_REL16))
+ continue;
+ }
+ if (mode & M6812_OP_REG)
+ {
+ if (i == 0 && format & M6812_OP_REG
+ && operands[i].reg2 == REG_NONE)
+ continue;
+ if (i == 0 && format & M6812_OP_REG
+ && format & M6812_OP_REG_2 && operands[i].reg2 != REG_NONE)
+ {
+ continue;
+ }
+ if (i == 0 && format & M6812_OP_D_IDX)
+ continue;
+ if (i == 0 && (format & M6812_OP_IDX)
+ && (format & (M6812_OP_IND16_P2 | M6812_OP_IDX_P2)))
+ continue;
+ if (i == 1 && format & M6812_OP_IDX_P2)
+ continue;
+ break;
+ }
+ if (mode & M6812_OP_IDX)
+ {
+ if (format & M6811_OP_IX && operands[i].reg1 == REG_X)
+ continue;
+ if (format & M6811_OP_IY && operands[i].reg1 == REG_Y)
+ continue;
+ if (i == 0
+ && format & (M6812_OP_IDX | M6812_OP_IDX_1 | M6812_OP_IDX_2)
+ && (operands[i].reg1 == REG_X
+ || operands[i].reg1 == REG_Y
+ || operands[i].reg1 == REG_SP
+ || operands[i].reg1 == REG_PC))
+ continue;
+ if (i == 1 && format & M6812_OP_IDX_P2)
+ continue;
+ }
+ if (mode & M6812_AUTO_INC_DEC)
+ {
+ if (i == 0
+ && format & (M6812_OP_IDX | M6812_OP_IDX_1 |
+ M6812_OP_IDX_2))
+ continue;
+ if (i == 1 && format & M6812_OP_IDX_P2)
+ continue;
+ }
+ break;
+ }
+ match = i == nb_operands;
+
+ /* Operands are ok but an operand uses page 0 addressing mode
+ while the insn supports abs-16 mode. Keep a reference to this
+ insns in case there is no insn supporting page 0 addressing. */
+ if (match && poss_indirect)
+ {
+ op_indirect = opcode;
+ match = 0;
+ }
+ if (match)
+ break;
+ }
+
+ /* Page 0 addressing is used but not supported by any insn.
+ If absolute addresses are supported, we use that insn. */
+ if (match == 0 && op_indirect)
+ {
+ opcode = op_indirect;
+ match = 1;
+ }
+
+ if (!match)
+ {
+ return (0);
+ }
+
+ return opcode;
+}
+
+
+/* Find the real opcode and its associated operands. We use a progressive
+ approach here. On entry, 'opc' points to the first opcode in the
+ table that matches the opcode name in the source line. We try to
+ isolate an operand, find a possible match in the opcode table.
+ We isolate another operand if no match were found. The table 'operands'
+ is filled while operands are recognized.
+
+ Returns the opcode pointer that matches the opcode name in the
+ source line and the associated operands. */
+static struct m68hc11_opcode *
+find_opcode (opc, operands, nb_operands)
+ struct m68hc11_opcode_def *opc;
+ operand operands[];
+ int *nb_operands;
+{
+ struct m68hc11_opcode *opcode;
+ int i;
+
+ if (opc->max_operands == 0)
+ {
+ *nb_operands = 0;
+ return opc->opcode;
+ }
+
+ for (i = 0; i < opc->max_operands;)
+ {
+ int result;
+
+ result = get_operand (&operands[i], i, opc->format);
+ if (result <= 0)
+ {
+ return 0;
+ }
+
+ /* Special case where the bitmask of the bclr/brclr
+ instructions is not introduced by #.
+ Example: bclr 3,x $80. */
+ if (i == 1 && (opc->format & M6811_OP_BITMASK)
+ && (operands[i].mode & M6811_OP_IND16))
+ {
+ operands[i].mode = M6811_OP_IMM16;
+ }
+
+ i += result;
+ *nb_operands = i;
+ if (i >= opc->min_operands)
+ {
+ opcode = find (opc, operands, i);
+ if (opcode)
+ {
+ return opcode;
+ }
+ }
+
+ if (*input_line_pointer == ',')
+ input_line_pointer++;
+ }
+ return 0;
+}
+
+#define M6812_XBCC_MARKER (M6812_OP_TBCC_MARKER \
+ | M6812_OP_DBCC_MARKER \
+ | M6812_OP_IBCC_MARKER)
+
+
+/* Gas line assembler entry point. */
+
+/* This is the main entry point for the machine-dependent assembler. str
+ points to a machine-dependent instruction. This function is supposed to
+ emit the frags/bytes it assembles to. */
+void
+md_assemble (str)
+ char *str;
+{
+ struct m68hc11_opcode_def *opc;
+ struct m68hc11_opcode *opcode;
+
+ unsigned char *op_start, *save;
+ unsigned char *op_end;
+ char name[20];
+ int nlen = 0;
+ operand operands[M6811_MAX_OPERANDS];
+ int nb_operands;
+ int branch_optimize = 0;
+ int alias_id = -1;
+
+ /* Drop leading whitespace */
+ while (*str == ' ')
+ str++;
+
+ /* Find the opcode end and get the opcode in 'name'. The opcode is forced
+ lower case (the opcode table only has lower case op-codes). */
+ for (op_start = op_end = (unsigned char *) (str);
+ *op_end && nlen < 20 && !is_end_of_line[*op_end] && *op_end != ' ';
+ op_end++)
+ {
+ name[nlen] = tolower (op_start[nlen]);
+ nlen++;
+ }
+ name[nlen] = 0;
+
+ if (nlen == 0)
+ {
+ as_bad (_("No instruction or missing opcode."));
+ return;
+ }
+
+ /* Find the opcode definition given its name. */
+ opc = (struct m68hc11_opcode_def *) hash_find (m68hc11_hash, name);
+
+ /* If it's not recognized, look for 'jbsr' and 'jbxx'. These are
+ pseudo insns for relative branch. For these branchs, we always
+ optimize them (turned into absolute branchs) even if --short-branchs
+ is given. */
+ if (opc == NULL && name[0] == 'j' && name[1] == 'b')
+ {
+ opc = (struct m68hc11_opcode_def *) hash_find (m68hc11_hash, &name[1]);
+ if (opc
+ && (!(opc->format & M6811_OP_JUMP_REL)
+ || (opc->format & M6811_OP_BITMASK)))
+ opc = 0;
+ if (opc)
+ branch_optimize = 1;
+ }
+
+ /* The following test should probably be removed. This is not conform
+ to Motorola assembler specs. */
+ if (opc == NULL && flag_mri)
+ {
+ if (*op_end == ' ' || *op_end == '\t')
+ {
+ while (*op_end == ' ' || *op_end == '\t')
+ op_end++;
+
+ if (nlen < 19
+ && (*op_end &&
+ (is_end_of_line[op_end[1]]
+ || op_end[1] == ' ' || op_end[1] == '\t'
+ || !isalnum (op_end[1])))
+ && (*op_end == 'a' || *op_end == 'b'
+ || *op_end == 'A' || *op_end == 'B'
+ || *op_end == 'd' || *op_end == 'D'
+ || *op_end == 'x' || *op_end == 'X'
+ || *op_end == 'y' || *op_end == 'Y'))
+ {
+ name[nlen++] = tolower (*op_end++);
+ name[nlen] = 0;
+ opc = (struct m68hc11_opcode_def *) hash_find (m68hc11_hash,
+ name);
+ }
+ }
+ }
+
+ /* Identify a possible instruction alias. There are some on the
+ 68HC12 to emulate a fiew 68HC11 instructions. */
+ if (opc == NULL && (current_architecture & cpu6812))
+ {
+ int i;
+
+ for (i = 0; i < m68hc12_num_alias; i++)
+ if (strcmp (m68hc12_alias[i].name, name) == 0)
+ {
+ alias_id = i;
+ break;
+ }
+ }
+ if (opc == NULL && alias_id < 0)
+ {
+ as_bad (_("Opcode `%s' is not recognized."), name);
+ return;
+ }
+ save = input_line_pointer;
+ input_line_pointer = op_end;
+
+ if (opc)
+ {
+ opc->used++;
+ opcode = find_opcode (opc, operands, &nb_operands);
+ }
+ else
+ opcode = 0;
+
+ if ((opcode || alias_id >= 0) && !flag_mri)
+ {
+ char *p = input_line_pointer;
+
+ while (*p == ' ' || *p == '\t' || *p == '\n' || *p == '\r')
+ p++;
+
+ if (*p != '\n' && *p)
+ as_bad (_("Garbage at end of instruction: `%s'."), p);
+ }
+
+ input_line_pointer = save;
+
+ if (alias_id >= 0)
+ {
+ char *f = m68hc11_new_insn (m68hc12_alias[alias_id].size);
+
+ number_to_chars_bigendian (f, m68hc12_alias[alias_id].code1, 1);
+ if (m68hc12_alias[alias_id].size > 1)
+ number_to_chars_bigendian (f + 1, m68hc12_alias[alias_id].code2, 1);
+
+ return;
+ }
+
+ /* Opcode is known but does not have valid operands. Print out the
+ syntax for this opcode. */
+ if (opcode == 0)
+ {
+ if (flag_print_insn_syntax)
+ print_insn_format (name);
+
+ as_bad (_("Invalid operand for `%s'"), name);
+ return;
+ }
+
+ /* Treat dbeq/ibeq/tbeq instructions in a special way. The branch is
+ relative and must be in the range -256..255 (9-bits). */
+ if ((opcode->format & M6812_XBCC_MARKER)
+ && (opcode->format & M6811_OP_JUMP_REL))
+ build_dbranch_insn (opcode, operands, nb_operands);
+
+ /* Relative jumps instructions are taken care of separately. We have to make
+ sure that the relative branch is within the range -128..127. If it's out
+ of range, the instructions are changed into absolute instructions.
+ This is not supported for the brset and brclr instructions. */
+ else if ((opcode->format & (M6811_OP_JUMP_REL | M6812_OP_JUMP_REL16))
+ && !(opcode->format & M6811_OP_BITMASK))
+ build_jump_insn (opcode, operands, nb_operands, branch_optimize);
+ else
+ build_insn (opcode, operands, nb_operands);
+}
+
+
+/* Relocation, relaxation and frag conversions. */
+
+long
+md_pcrel_from_section (fixp, sec)
+ fixS *fixp;
+ segT sec;
+{
+ int adjust;
+ if (fixp->fx_addsy != (symbolS *) NULL
+ && (!S_IS_DEFINED (fixp->fx_addsy)
+ || (S_GET_SEGMENT (fixp->fx_addsy) != sec)))
+ return 0;
+
+ adjust = fixp->fx_pcrel_adjust;
+ return fixp->fx_frag->fr_address + fixp->fx_where + adjust;
+}
+
+/* If while processing a fixup, a reloc really needs to be created
+ then it is done here. */
+arelent *
+tc_gen_reloc (section, fixp)
+ asection *section;
+ fixS *fixp;
+{
+ arelent *reloc;
+
+ 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;
+ if (fixp->fx_r_type == 0)
+ reloc->howto = bfd_reloc_type_lookup (stdoutput, BFD_RELOC_16);
+ else
+ reloc->howto = bfd_reloc_type_lookup (stdoutput, fixp->fx_r_type);
+ if (reloc->howto == (reloc_howto_type *) NULL)
+ {
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ _("Relocation %d is not supported by object file format."),
+ (int) fixp->fx_r_type);
+ return NULL;
+ }
+
+ if (!fixp->fx_pcrel)
+ reloc->addend = fixp->fx_addnumber;
+ else
+ reloc->addend = (section->vma
+ + (fixp->fx_pcrel_adjust == 64
+ ? -1 : fixp->fx_pcrel_adjust)
+ + fixp->fx_addnumber
+ + md_pcrel_from_section (fixp, section));
+ return reloc;
+}
+
+void
+md_convert_frag (abfd, sec, fragP)
+ bfd *abfd ATTRIBUTE_UNUSED;
+ asection *sec ATTRIBUTE_UNUSED;
+ fragS *fragP;
+{
+ fixS *fixp;
+ long disp;
+ char *buffer_address = fragP->fr_literal;
+
+ /* Address in object code of the displacement. */
+ register int object_address = fragP->fr_fix + fragP->fr_address;
+
+ buffer_address += fragP->fr_fix;
+
+ /* The displacement of the address, from current location. */
+ disp = fragP->fr_symbol ? S_GET_VALUE (fragP->fr_symbol) : 0;
+ disp = (disp + fragP->fr_offset) - object_address;
+ disp += symbol_get_frag (fragP->fr_symbol)->fr_address;
+
+ switch (fragP->fr_subtype)
+ {
+ case ENCODE_RELAX (STATE_PC_RELATIVE, STATE_BYTE):
+ fragP->fr_opcode[1] = disp;
+ break;
+
+ case ENCODE_RELAX (STATE_PC_RELATIVE, STATE_WORD):
+ /* This relax is only for bsr and bra. */
+ assert (IS_OPCODE (fragP->fr_opcode[0], M6811_BSR)
+ || IS_OPCODE (fragP->fr_opcode[0], M6811_BRA)
+ || IS_OPCODE (fragP->fr_opcode[0], M6812_BSR));
+
+ fragP->fr_opcode[0] = convert_branch (fragP->fr_opcode[0]);
+
+ fix_new (fragP, fragP->fr_fix - 1, 2,
+ fragP->fr_symbol, fragP->fr_offset, 0, BFD_RELOC_16);
+ fragP->fr_fix += 1;
+ break;
+
+ case ENCODE_RELAX (STATE_CONDITIONAL_BRANCH, STATE_BYTE):
+ case ENCODE_RELAX (STATE_CONDITIONAL_BRANCH_6812, STATE_BYTE):
+ fragP->fr_opcode[1] = disp;
+ break;
+
+ case ENCODE_RELAX (STATE_CONDITIONAL_BRANCH, STATE_WORD):
+ /* Invert branch. */
+ fragP->fr_opcode[0] ^= 1;
+ fragP->fr_opcode[1] = 3; /* Branch offset */
+ buffer_address[0] = M6811_JMP;
+ fix_new (fragP, fragP->fr_fix + 1, 2,
+ fragP->fr_symbol, fragP->fr_offset, 0, BFD_RELOC_16);
+ fragP->fr_fix += 3;
+ break;
+
+ case ENCODE_RELAX (STATE_CONDITIONAL_BRANCH_6812, STATE_WORD):
+ /* Translate branch into a long branch. */
+ fragP->fr_opcode[1] = fragP->fr_opcode[0];
+ fragP->fr_opcode[0] = M6811_OPCODE_PAGE2;
+
+ fixp = fix_new (fragP, fragP->fr_fix, 2,
+ fragP->fr_symbol, fragP->fr_offset, 1,
+ BFD_RELOC_16_PCREL);
+ fixp->fx_pcrel_adjust = 2;
+ fragP->fr_fix += 2;
+ break;
+
+ case ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS5):
+ fragP->fr_opcode[0] = fragP->fr_opcode[0] << 5;
+ fragP->fr_opcode[0] |= disp & 0x1f;
+ break;
+
+ case ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS9):
+ fragP->fr_opcode[0] = (fragP->fr_opcode[0] << 3);
+ fragP->fr_opcode[0] |= 0xE0;
+ fix_new (fragP, fragP->fr_fix + 1, 1,
+ fragP->fr_symbol, fragP->fr_offset, 0, BFD_RELOC_8);
+ fragP->fr_fix += 1;
+ break;
+
+ case ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_BITS16):
+ fragP->fr_opcode[0] = (fragP->fr_opcode[0] << 3);
+ fragP->fr_opcode[0] |= 0xE2;
+ fix_new (fragP, fragP->fr_fix, 2,
+ fragP->fr_symbol, fragP->fr_offset, 0, BFD_RELOC_16);
+ fragP->fr_fix += 1;
+ break;
+
+ case ENCODE_RELAX (STATE_XBCC_BRANCH, STATE_BYTE):
+ if (disp < 0)
+ fragP->fr_opcode[0] |= 0x10;
+
+ fragP->fr_opcode[1] = disp & 0x0FF;
+ break;
+
+ case ENCODE_RELAX (STATE_XBCC_BRANCH, STATE_WORD):
+ /* Invert branch. */
+ fragP->fr_opcode[0] ^= 0x20;
+ fragP->fr_opcode[1] = 3; /* Branch offset. */
+ buffer_address[0] = M6812_JMP;
+ fix_new (fragP, fragP->fr_fix + 1, 2,
+ fragP->fr_symbol, fragP->fr_offset, 0, BFD_RELOC_16);
+ fragP->fr_fix += 3;
+ break;
+
+ default:
+ break;
+ }
+}
+
+/* Force truly undefined symbols to their maximum size, and generally set up
+ the frag list to be relaxed. */
+int
+md_estimate_size_before_relax (fragP, segment)
+ fragS *fragP;
+ asection *segment;
+{
+ int old_fr_fix;
+ char *buffer_address = fragP->fr_fix + fragP->fr_literal;
+
+ old_fr_fix = fragP->fr_fix;
+
+ switch (fragP->fr_subtype)
+ {
+ case ENCODE_RELAX (STATE_PC_RELATIVE, STATE_UNDF):
+
+ /* This relax is only for bsr and bra. */
+ assert (IS_OPCODE (fragP->fr_opcode[0], M6811_BSR)
+ || IS_OPCODE (fragP->fr_opcode[0], M6811_BRA)
+ || IS_OPCODE (fragP->fr_opcode[0], M6812_BSR));
+
+ /* A relaxable case. */
+ if (S_GET_SEGMENT (fragP->fr_symbol) == segment)
+ {
+ fragP->fr_subtype = ENCODE_RELAX (STATE_PC_RELATIVE, STATE_BYTE);
+ }
+ else
+ {
+ if (flag_fixed_branchs)
+ as_bad_where (fragP->fr_file, fragP->fr_line,
+ _("bra or bsr with undefined symbol."));
+
+ /* The symbol is undefined or in a separate section. Turn bra into a
+ jmp and bsr into a jsr. The insn becomes 3 bytes long (instead of
+ 2). A fixup is necessary for the unresolved symbol address. */
+
+ fragP->fr_opcode[0] = convert_branch (fragP->fr_opcode[0]);
+
+ fragP->fr_fix++;
+ fix_new (fragP, old_fr_fix - 1, 2, fragP->fr_symbol,
+ fragP->fr_offset, 0, BFD_RELOC_16);
+ frag_wane (fragP);
+ }
+ break;
+
+ case ENCODE_RELAX (STATE_CONDITIONAL_BRANCH, STATE_UNDF):
+ assert (current_architecture & cpu6811);
+
+ if (S_GET_SEGMENT (fragP->fr_symbol) == segment)
+ {
+ fragP->fr_subtype = ENCODE_RELAX (STATE_CONDITIONAL_BRANCH,
+ STATE_BYTE);
+ }
+ else
+ {
+ fragP->fr_opcode[0] ^= 1; /* Reverse sense of branch. */
+ fragP->fr_opcode[1] = 3; /* Skip next jmp insn (3 bytes) */
+
+ /* Don't use fr_opcode[2] because this may be
+ in a different frag. */
+ buffer_address[0] = M6811_JMP;
+
+ fragP->fr_fix++;
+ fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol,
+ fragP->fr_offset, 0, BFD_RELOC_16);
+ fragP->fr_fix += 2;
+ frag_wane (fragP);
+ }
+ break;
+
+ case ENCODE_RELAX (STATE_INDEXED_OFFSET, STATE_UNDF):
+ assert (current_architecture & cpu6812);
+
+ if (S_GET_SEGMENT (fragP->fr_symbol) == segment)
+ {
+ fragP->fr_subtype = ENCODE_RELAX (STATE_INDEXED_OFFSET,
+ STATE_BITS5);
+ }
+ else
+ {
+ /* Switch the indexed operation to 16-bit mode. */
+ if ((fragP->fr_opcode[1] & 0x21) == 0x20)
+ fragP->fr_opcode[1] = (fragP->fr_opcode[1] >> 3) | 0xc0 | 0x02;
+
+ fragP->fr_fix++;
+ fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol,
+ fragP->fr_offset, 0, BFD_RELOC_16);
+ fragP->fr_fix += 2;
+ frag_wane (fragP);
+ }
+ break;
+
+ case ENCODE_RELAX (STATE_XBCC_BRANCH, STATE_UNDF):
+ assert (current_architecture & cpu6812);
+
+ if (S_GET_SEGMENT (fragP->fr_symbol) == segment)
+ {
+ fragP->fr_subtype = ENCODE_RELAX (STATE_XBCC_BRANCH, STATE_BYTE);
+ }
+ else
+ {
+ fragP->fr_opcode[0] ^= 0x20; /* Reverse sense of branch. */
+ fragP->fr_opcode[1] = 3; /* Skip next jmp insn (3 bytes). */
+
+ /* Don't use fr_opcode[2] because this may be
+ in a different frag. */
+ buffer_address[0] = M6812_JMP;
+
+ fragP->fr_fix++;
+ fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol,
+ fragP->fr_offset, 0, BFD_RELOC_16);
+ fragP->fr_fix += 2;
+ frag_wane (fragP);
+ }
+ break;
+
+ case ENCODE_RELAX (STATE_CONDITIONAL_BRANCH_6812, STATE_UNDF):
+ assert (current_architecture & cpu6812);
+
+ if (S_GET_SEGMENT (fragP->fr_symbol) == segment)
+ {
+ fragP->fr_subtype = ENCODE_RELAX (STATE_CONDITIONAL_BRANCH_6812,
+ STATE_BYTE);
+ }
+ else
+ {
+ /* Translate into a lbcc branch. */
+ fragP->fr_opcode[1] = fragP->fr_opcode[0];
+ fragP->fr_opcode[0] = M6811_OPCODE_PAGE2;
+
+ fix_new (fragP, fragP->fr_fix, 2, fragP->fr_symbol,
+ fragP->fr_offset, 0, BFD_RELOC_16_PCREL);
+ fragP->fr_fix += 2;
+ frag_wane (fragP);
+ }
+ break;
+
+ default:
+ as_fatal (_("Subtype %d is not recognized."), fragP->fr_subtype);
+ }
+
+ return (fragP->fr_fix - old_fr_fix);
+}
+
+int
+md_apply_fix (fixp, valuep)
+ fixS *fixp;
+ valueT *valuep;
+{
+ char *where;
+ long value;
+ int op_type;
+
+ if (fixp->fx_addsy == (symbolS *) NULL)
+ {
+ value = *valuep;
+ fixp->fx_done = 1;
+ }
+ else if (fixp->fx_pcrel)
+ {
+ value = *valuep;
+ }
+ else
+ {
+ value = fixp->fx_offset;
+ if (fixp->fx_subsy != (symbolS *) NULL)
+ {
+ if (S_GET_SEGMENT (fixp->fx_subsy) == absolute_section)
+ {
+ value -= S_GET_VALUE (fixp->fx_subsy);
+ }
+ else
+ {
+ /* We don't actually support subtracting a symbol. */
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ _("Expression too complex."));
+ }
+ }
+ }
+
+ op_type = fixp->fx_r_type;
+
+ /* Patch the instruction with the resolved operand. Elf relocation
+ info will also be generated to take care of linker/loader fixups.
+ The 68HC11 addresses only 64Kb, we are only concerned by 8 and 16-bit
+ relocs. BFD_RELOC_8 is basically used for .page0 access (the linker
+ will warn for overflows). BFD_RELOC_8_PCREL should not be generated
+ because it's either resolved or turned out into non-relative insns (see
+ relax table, bcc, bra, bsr transformations)
+
+ The BFD_RELOC_32 is necessary for the support of --gstabs. */
+ where = fixp->fx_frag->fr_literal + fixp->fx_where;
+
+ switch (fixp->fx_r_type)
+ {
+ case BFD_RELOC_32:
+ bfd_putb32 ((bfd_vma) value, (unsigned char *) where);
+ break;
+
+ case BFD_RELOC_16:
+ case BFD_RELOC_16_PCREL:
+ bfd_putb16 ((bfd_vma) value, (unsigned char *) where);
+ if (value < -65537 || value > 65535)
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ _("Value out of 16-bit range."));
+ break;
+
+ case BFD_RELOC_M68HC11_HI8:
+ value = value >> 8;
+ /* Fall through */
+
+ case BFD_RELOC_M68HC11_LO8:
+ case BFD_RELOC_8:
+ /*bfd_putb8 ((bfd_vma) value, (unsigned char *) where); */
+ ((bfd_byte *) where)[0] = (bfd_byte) value;
+ break;
+
+ case BFD_RELOC_8_PCREL:
+ /*bfd_putb8 ((bfd_vma) value, (unsigned char *) where); */
+ ((bfd_byte *) where)[0] = (bfd_byte) value;
+
+ if (value < -128 || value > 127)
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ _("Value %ld too large for 8-bit PC-relative branch."),
+ value);
+ break;
+
+ case BFD_RELOC_M68HC11_3B:
+ if (value <= 0 || value > 8)
+ as_bad_where (fixp->fx_file, fixp->fx_line,
+ _("Auto increment/decrement offset '%ld' is out of range."),
+ value);
+ if (where[0] & 0x8)
+ value = 8 - value;
+ else
+ value--;
+
+ where[0] = where[0] | (value & 0x07);
+ break;
+
+ default:
+ as_fatal (_("Line %d: unknown relocation type: 0x%x."),
+ fixp->fx_line, fixp->fx_r_type);
+ }
+ return 0;
+}
+
+int
+m68hc11_cleanup ()
+{
+ return 1;
+}
+
+void
+m68hc11_end_of_source ()
+{
+ segT saved_seg;
+ subsegT saved_subseg;
+ segT debug_info;
+ char* p;
+ long total_size = 0;
+
+ if (debug_type != DEBUG_DWARF2)
+ return;
+
+ dwarf2_finish ();
+
+ saved_seg = now_seg;
+ saved_subseg = now_subseg;
+
+ debug_info = subseg_new (".debug_info", 0);
+ bfd_set_section_flags (stdoutput, debug_info, SEC_READONLY);
+ subseg_set (debug_info, 0);
+ p = frag_more (10);
+ total_size = 12;
+
+# define STUFF(val,size) md_number_to_chars (p, val, size); p += size;
+ STUFF (total_size, 4); /* Length of compilation unit. */
+ STUFF (2, 2); /* Dwarf version */
+ STUFF (0, 4);
+ STUFF (2, 1); /* Pointer size */
+ STUFF (1, 1); /* Compile unit */
+ STUFF (0, 4);
+
+ now_subseg = saved_subseg;
+ now_seg = saved_seg;
+}
diff --git a/gas/config/tc-m68hc11.h b/gas/config/tc-m68hc11.h
new file mode 100644
index 0000000..2d4466a
--- /dev/null
+++ b/gas/config/tc-m68hc11.h
@@ -0,0 +1,109 @@
+/* tc-m68hc11.h -- Header file for tc-m68hc11.c.
+ Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+
+ This file is part of GAS, the GNU Assembler.
+
+ GAS is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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_M68HC11
+#define TC_M68HC12
+
+/* Define TC_M68K so that we can use the MRI mode. */
+#define TC_M68K
+
+#define TARGET_BYTES_BIG_ENDIAN 1
+
+/* Motorola assembler specs does not require '.' before pseudo-ops. */
+#define NO_PSEUDO_DOT 1
+
+#if 0
+/* Treat the single quote as a string delimiter.
+ ??? This does not work at all. */
+#define SINGLE_QUOTE_STRINGS 1
+#endif
+
+#ifndef BFD_ASSEMBLER
+#error M68HC11 support requires BFD_ASSEMBLER
+#endif
+
+/* The target BFD architecture. */
+#define TARGET_ARCH (m68hc11_arch ())
+extern enum bfd_architecture m68hc11_arch PARAMS ((void));
+
+#define TARGET_MACH (m68hc11_mach ())
+extern int m68hc11_mach PARAMS ((void));
+
+#define TARGET_FORMAT (m68hc11_arch_format ())
+extern const char *m68hc11_arch_format PARAMS ((void));
+
+/* Specific sections:
+ - The .page0 is a data section that is mapped in [0x0000..0x00FF].
+ Page0 accesses are faster on the M68HC11. Soft registers used by GCC-m6811
+ are located in .page0.
+ - The .vectors is the data section that represents the interrupt
+ vectors. */
+#define ELF_TC_SPECIAL_SECTIONS \
+ { ".page0", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE }, \
+ { ".vectors", SHT_PROGBITS, SHF_ALLOC + SHF_WRITE },
+
+#define LISTING_WORD_SIZE 1 /* A word is 1 bytes */
+#define LISTING_LHS_WIDTH 4 /* One word on the first line */
+#define LISTING_LHS_WIDTH_SECOND 4 /* One word on the second line */
+#define LISTING_LHS_CONT_LINES 4 /* And 4 lines max */
+#define LISTING_HEADER "M68HC11 GAS "
+
+/* call md_pcrel_from_section, not md_pcrel_from */
+#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section(FIXP, SEC)
+
+/* Permit temporary numeric labels. */
+#define LOCAL_LABELS_FB 1
+
+#define DIFF_EXPR_OK /* .-foo gets turned into PC relative relocs */
+
+extern void m68hc11_init_after_args PARAMS ((void));
+#define tc_init_after_args m68hc11_init_after_args
+
+extern int m68hc11_parse_long_option PARAMS ((char *));
+#define md_parse_long_option m68hc11_parse_long_option
+
+extern void m68hc11_end_of_source PARAMS ((void));
+#define md_end() m68hc11_end_of_source ()
+
+#define DWARF2_LINE_MIN_INSN_LENGTH 1
+
+/* We don't need to handle .word strangely. */
+#define WORKING_DOT_WORD
+
+#define md_number_to_chars number_to_chars_bigendian
+
+/* Relax table to translate short relative branches (-128..127) into
+ absolute branches. */
+extern struct relax_type md_relax_table[];
+#define TC_GENERIC_RELAX_TABLE md_relax_table
+
+extern int m68hc11_cleanup PARAMS ((void));
+
+#define md_operand(x)
+#define md_after_pass_hook() m68hc11_cleanup()
+#define md_cleanup() m68hc11_cleanup()
+#define md_do_align(a,b,c,d,e) m68hc11_cleanup()
+#define tc_frob_label(sym) do {\
+ m68hc11_cleanup(); \
+ S_SET_VALUE (sym, (valueT) frag_now_fix ()); \
+} while (0)
+
+#define tc_print_statistics m68hc11_print_statistics
+extern void m68hc11_print_statistics PARAMS ((FILE *));
diff --git a/gas/configure b/gas/configure
index 3e1cead..f6c7971 100755
--- a/gas/configure
+++ b/gas/configure
@@ -1660,6 +1660,7 @@ for this_target in $target $canon_targets ; do
hppa*) cpu_type=hppa ;;
i[456]86) cpu_type=i386 ;;
ia64) cpu_type=ia64 ;;
+ m6811|m6812) cpu_type=m68hc11 ;;
m680[012346]0) cpu_type=m68k ;;
m68008) cpu_type=m68k ;;
m683??) cpu_type=m68k ;;
@@ -1811,6 +1812,8 @@ EOF
m32r-*-*) fmt=elf bfd_gas=yes ;;
+ m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
+
m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
fmt=aout em=sun3 ;;
m68k-motorola-sysv*) fmt=coff em=delta ;;
@@ -2430,7 +2433,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:2434: checking for $ac_word" >&5
+echo "configure:2437: 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
@@ -2460,7 +2463,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:2464: checking for $ac_word" >&5
+echo "configure:2467: 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
@@ -2511,7 +2514,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:2515: checking for $ac_word" >&5
+echo "configure:2518: 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
@@ -2543,7 +2546,7 @@ fi
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2547: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2550: 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.
@@ -2554,12 +2557,12 @@ cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext << EOF
-#line 2558 "configure"
+#line 2561 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:2563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2566: \"$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
@@ -2585,12 +2588,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:2589: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2592: 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:2594: checking whether we are using GNU C" >&5
+echo "configure:2597: 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
@@ -2599,7 +2602,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2603: \"$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:2606: \"$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
@@ -2618,7 +2621,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:2622: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2625: 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
@@ -2655,7 +2658,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:2659: checking for $ac_word" >&5
+echo "configure:2662: 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
@@ -2686,7 +2689,7 @@ done
test -n "$YACC" || YACC="yacc"
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2690: checking how to run the C preprocessor" >&5
+echo "configure:2693: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -2701,13 +2704,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 2705 "configure"
+#line 2708 "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:2711: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2714: \"$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
:
@@ -2718,13 +2721,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
-#line 2722 "configure"
+#line 2725 "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:2728: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2731: \"$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
:
@@ -2735,13 +2738,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -nologo -E"
cat > conftest.$ac_ext <<EOF
-#line 2739 "configure"
+#line 2742 "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:2745: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2748: \"$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
:
@@ -2771,7 +2774,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:2775: checking for $ac_word" >&5
+echo "configure:2778: 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
@@ -2804,7 +2807,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:2808: checking for $ac_word" >&5
+echo "configure:2811: 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
@@ -2838,7 +2841,7 @@ then
*) ac_lib=l ;;
esac
echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
-echo "configure:2842: checking for yywrap in -l$ac_lib" >&5
+echo "configure:2845: 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
@@ -2846,7 +2849,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$ac_lib $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2850 "configure"
+#line 2853 "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
@@ -2857,7 +2860,7 @@ int main() {
yywrap()
; return 0; }
EOF
-if { (eval echo configure:2861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2864: \"$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
@@ -2880,7 +2883,7 @@ fi
fi
echo $ac_n "checking lex output file root""... $ac_c" 1>&6
-echo "configure:2884: checking lex output file root" >&5
+echo "configure:2887: 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
@@ -2901,7 +2904,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:2905: checking whether yytext is a pointer" >&5
+echo "configure:2908: 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
@@ -2913,14 +2916,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
ac_save_LIBS="$LIBS"
LIBS="$LIBS $LEXLIB"
cat > conftest.$ac_ext <<EOF
-#line 2917 "configure"
+#line 2920 "configure"
#include "confdefs.h"
`cat $LEX_OUTPUT_ROOT.c`
int main() {
; return 0; }
EOF
-if { (eval echo configure:2924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2927: \"$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
@@ -2944,7 +2947,7 @@ fi
ALL_LINGUAS=
echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:2948: checking for POSIXized ISC" >&5
+echo "configure:2951: checking for POSIXized ISC" >&5
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
@@ -2965,12 +2968,12 @@ else
fi
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:2969: checking for ANSI C header files" >&5
+echo "configure:2972: 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 2974 "configure"
+#line 2977 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -2978,7 +2981,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2982: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2985: \"$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*
@@ -2995,7 +2998,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 2999 "configure"
+#line 3002 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -3013,7 +3016,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 3017 "configure"
+#line 3020 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -3034,7 +3037,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 3038 "configure"
+#line 3041 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3045,7 +3048,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:3049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -3069,12 +3072,12 @@ EOF
fi
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:3073: checking for working const" >&5
+echo "configure:3076: 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 3078 "configure"
+#line 3081 "configure"
#include "confdefs.h"
int main() {
@@ -3123,7 +3126,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:3127: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -3144,21 +3147,21 @@ EOF
fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:3148: checking for inline" >&5
+echo "configure:3151: 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 3155 "configure"
+#line 3158 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:3162: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3165: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -3184,12 +3187,12 @@ EOF
esac
echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3188: checking for off_t" >&5
+echo "configure:3191: 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 3193 "configure"
+#line 3196 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3217,12 +3220,12 @@ EOF
fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3221: checking for size_t" >&5
+echo "configure:3224: 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 3226 "configure"
+#line 3229 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -3252,19 +3255,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:3256: checking for working alloca.h" >&5
+echo "configure:3259: 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 3261 "configure"
+#line 3264 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:3268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3271: \"$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
@@ -3285,12 +3288,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:3289: checking for alloca" >&5
+echo "configure:3292: 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 3294 "configure"
+#line 3297 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -3318,7 +3321,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:3322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3325: \"$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
@@ -3350,12 +3353,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:3354: checking whether alloca needs Cray hooks" >&5
+echo "configure:3357: 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 3359 "configure"
+#line 3362 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -3380,12 +3383,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:3384: checking for $ac_func" >&5
+echo "configure:3387: 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 3389 "configure"
+#line 3392 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3408,7 +3411,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3415: \"$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
@@ -3435,7 +3438,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:3439: checking stack direction for C alloca" >&5
+echo "configure:3442: 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
@@ -3443,7 +3446,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 3447 "configure"
+#line 3450 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -3462,7 +3465,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:3466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3469: \"$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
@@ -3487,17 +3490,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:3491: checking for $ac_hdr" >&5
+echo "configure:3494: 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 3496 "configure"
+#line 3499 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3501: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3504: \"$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*
@@ -3526,12 +3529,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3530: checking for $ac_func" >&5
+echo "configure:3533: 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 3535 "configure"
+#line 3538 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3554,7 +3557,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3561: \"$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
@@ -3579,7 +3582,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:3583: checking for working mmap" >&5
+echo "configure:3586: 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
@@ -3587,7 +3590,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 3591 "configure"
+#line 3594 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -3727,7 +3730,7 @@ main()
}
EOF
-if { (eval echo configure:3731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3734: \"$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
@@ -3755,17 +3758,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:3759: checking for $ac_hdr" >&5
+echo "configure:3762: 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 3764 "configure"
+#line 3767 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3769: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3772: \"$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*
@@ -3795,12 +3798,12 @@ done
__argz_count __argz_stringify __argz_next
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3799: checking for $ac_func" >&5
+echo "configure:3802: 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 3804 "configure"
+#line 3807 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3823,7 +3826,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3830: \"$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
@@ -3852,12 +3855,12 @@ done
for ac_func in stpcpy
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3856: checking for $ac_func" >&5
+echo "configure:3859: 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 3861 "configure"
+#line 3864 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3880,7 +3883,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:3884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3887: \"$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
@@ -3914,19 +3917,19 @@ EOF
if test $ac_cv_header_locale_h = yes; then
echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:3918: checking for LC_MESSAGES" >&5
+echo "configure:3921: 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 3923 "configure"
+#line 3926 "configure"
#include "confdefs.h"
#include <locale.h>
int main() {
return LC_MESSAGES
; return 0; }
EOF
-if { (eval echo configure:3930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3933: \"$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
@@ -3947,7 +3950,7 @@ EOF
fi
fi
echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:3951: checking whether NLS is requested" >&5
+echo "configure:3954: 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"
@@ -3967,7 +3970,7 @@ fi
EOF
echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:3971: checking whether included gettext is requested" >&5
+echo "configure:3974: 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"
@@ -3986,17 +3989,17 @@ fi
ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:3990: checking for libintl.h" >&5
+echo "configure:3993: 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 3995 "configure"
+#line 3998 "configure"
#include "confdefs.h"
#include <libintl.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4003: \"$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*
@@ -4013,19 +4016,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:4017: checking for gettext in libc" >&5
+echo "configure:4020: 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 4022 "configure"
+#line 4025 "configure"
#include "confdefs.h"
#include <libintl.h>
int main() {
return (int) gettext ("")
; return 0; }
EOF
-if { (eval echo configure:4029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4032: \"$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
@@ -4041,7 +4044,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:4045: checking for bindtextdomain in -lintl" >&5
+echo "configure:4048: 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
@@ -4049,7 +4052,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 4053 "configure"
+#line 4056 "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
@@ -4060,7 +4063,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
-if { (eval echo configure:4064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4067: \"$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
@@ -4076,19 +4079,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:4080: checking for gettext in libintl" >&5
+echo "configure:4083: 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 4085 "configure"
+#line 4088 "configure"
#include "confdefs.h"
int main() {
return (int) gettext ("")
; return 0; }
EOF
-if { (eval echo configure:4092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4095: \"$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
@@ -4116,7 +4119,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:4120: checking for $ac_word" >&5
+echo "configure:4123: 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
@@ -4150,12 +4153,12 @@ fi
for ac_func in dcgettext
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4154: checking for $ac_func" >&5
+echo "configure:4157: 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 4159 "configure"
+#line 4162 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4178,7 +4181,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4182: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4185: \"$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
@@ -4205,7 +4208,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:4209: checking for $ac_word" >&5
+echo "configure:4212: 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
@@ -4241,7 +4244,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:4245: checking for $ac_word" >&5
+echo "configure:4248: 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
@@ -4273,7 +4276,7 @@ else
fi
cat > conftest.$ac_ext <<EOF
-#line 4277 "configure"
+#line 4280 "configure"
#include "confdefs.h"
int main() {
@@ -4281,7 +4284,7 @@ extern int _nl_msg_cat_cntr;
return _nl_msg_cat_cntr
; return 0; }
EOF
-if { (eval echo configure:4285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
CATOBJEXT=.gmo
DATADIRNAME=share
@@ -4313,7 +4316,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:4317: checking for $ac_word" >&5
+echo "configure:4320: 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
@@ -4347,7 +4350,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:4351: checking for $ac_word" >&5
+echo "configure:4354: 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
@@ -4383,7 +4386,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:4387: checking for $ac_word" >&5
+echo "configure:4390: 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
@@ -4473,7 +4476,7 @@ fi
LINGUAS=
else
echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:4477: checking for catalogs to be installed" >&5
+echo "configure:4480: checking for catalogs to be installed" >&5
NEW_LINGUAS=
for lang in ${LINGUAS=$ALL_LINGUAS}; do
case "$ALL_LINGUAS" in
@@ -4501,17 +4504,17 @@ echo "configure:4477: 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:4505: checking for linux/version.h" >&5
+echo "configure:4508: 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 4510 "configure"
+#line 4513 "configure"
#include "confdefs.h"
#include <linux/version.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4515: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4518: \"$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*
@@ -4574,7 +4577,7 @@ fi
echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:4578: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:4581: 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"
@@ -4597,12 +4600,12 @@ fi
echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:4601: checking for Cygwin environment" >&5
+echo "configure:4604: checking for Cygwin environment" >&5
if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4606 "configure"
+#line 4609 "configure"
#include "confdefs.h"
int main() {
@@ -4613,7 +4616,7 @@ int main() {
return __CYGWIN__;
; return 0; }
EOF
-if { (eval echo configure:4617: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4620: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cygwin=yes
else
@@ -4630,19 +4633,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6
CYGWIN=
test "$ac_cv_cygwin" = yes && CYGWIN=yes
echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:4634: checking for mingw32 environment" >&5
+echo "configure:4637: checking for mingw32 environment" >&5
if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4639 "configure"
+#line 4642 "configure"
#include "confdefs.h"
int main() {
return __MINGW32__;
; return 0; }
EOF
-if { (eval echo configure:4646: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4649: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_mingw32=yes
else
@@ -4661,7 +4664,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:4665: checking for executable suffix" >&5
+echo "configure:4668: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -4671,7 +4674,7 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:4675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:4678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
*.c | *.o | *.obj | *.ilk | *.pdb) ;;
@@ -4696,17 +4699,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:4700: checking for $ac_hdr" >&5
+echo "configure:4703: 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 4705 "configure"
+#line 4708 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4710: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4713: \"$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*
@@ -4736,7 +4739,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:4740: checking whether compiling a cross-assembler" >&5
+echo "configure:4743: checking whether compiling a cross-assembler" >&5
if test "${host}" = "${target}"; then
cross_gas=no
else
@@ -4751,19 +4754,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:4755: checking for working alloca.h" >&5
+echo "configure:4758: 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 4760 "configure"
+#line 4763 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:4767: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4770: \"$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
@@ -4784,12 +4787,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:4788: checking for alloca" >&5
+echo "configure:4791: 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 4793 "configure"
+#line 4796 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -4817,7 +4820,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:4821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4824: \"$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
@@ -4849,12 +4852,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:4853: checking whether alloca needs Cray hooks" >&5
+echo "configure:4856: 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 4858 "configure"
+#line 4861 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -4879,12 +4882,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:4883: checking for $ac_func" >&5
+echo "configure:4886: 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 4888 "configure"
+#line 4891 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -4907,7 +4910,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:4911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4914: \"$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
@@ -4934,7 +4937,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:4938: checking stack direction for C alloca" >&5
+echo "configure:4941: 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
@@ -4942,7 +4945,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 4946 "configure"
+#line 4949 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -4961,7 +4964,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:4965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4968: \"$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
@@ -4983,21 +4986,21 @@ EOF
fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:4987: checking for inline" >&5
+echo "configure:4990: 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 4994 "configure"
+#line 4997 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:5001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5004: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -5027,12 +5030,12 @@ esac
for ac_func in unlink remove
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5031: checking for $ac_func" >&5
+echo "configure:5034: 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 5036 "configure"
+#line 5039 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5055,7 +5058,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5062: \"$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
@@ -5084,12 +5087,12 @@ done
for ac_func in sbrk
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5088: checking for $ac_func" >&5
+echo "configure:5091: 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 5093 "configure"
+#line 5096 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -5112,7 +5115,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:5116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5119: \"$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
@@ -5141,12 +5144,12 @@ done
# 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:5145: checking for working assert macro" >&5
+echo "configure:5148: 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 5150 "configure"
+#line 5153 "configure"
#include "confdefs.h"
#include <assert.h>
#include <stdio.h>
@@ -5162,7 +5165,7 @@ assert (a == b
; return 0; }
EOF
-if { (eval echo configure:5166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5169: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
gas_cv_assert_ok=yes
else
@@ -5203,12 +5206,12 @@ gas_test_headers="
"
echo $ac_n "checking whether declaration is required for strstr""... $ac_c" 1>&6
-echo "configure:5207: checking whether declaration is required for strstr" >&5
+echo "configure:5210: 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 5212 "configure"
+#line 5215 "configure"
#include "confdefs.h"
$gas_test_headers
int main() {
@@ -5219,7 +5222,7 @@ x = (f) strstr;
; return 0; }
EOF
-if { (eval echo configure:5223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5226: \"$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
@@ -5240,12 +5243,12 @@ fi
echo $ac_n "checking whether declaration is required for malloc""... $ac_c" 1>&6
-echo "configure:5244: checking whether declaration is required for malloc" >&5
+echo "configure:5247: 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 5249 "configure"
+#line 5252 "configure"
#include "confdefs.h"
$gas_test_headers
int main() {
@@ -5256,7 +5259,7 @@ x = (f) malloc;
; return 0; }
EOF
-if { (eval echo configure:5260: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5263: \"$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
@@ -5277,12 +5280,12 @@ fi
echo $ac_n "checking whether declaration is required for free""... $ac_c" 1>&6
-echo "configure:5281: checking whether declaration is required for free" >&5
+echo "configure:5284: 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 5286 "configure"
+#line 5289 "configure"
#include "confdefs.h"
$gas_test_headers
int main() {
@@ -5293,7 +5296,7 @@ x = (f) free;
; return 0; }
EOF
-if { (eval echo configure:5297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5300: \"$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
@@ -5314,12 +5317,12 @@ fi
echo $ac_n "checking whether declaration is required for sbrk""... $ac_c" 1>&6
-echo "configure:5318: checking whether declaration is required for sbrk" >&5
+echo "configure:5321: 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 5323 "configure"
+#line 5326 "configure"
#include "confdefs.h"
$gas_test_headers
int main() {
@@ -5330,7 +5333,7 @@ x = (f) sbrk;
; return 0; }
EOF
-if { (eval echo configure:5334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5337: \"$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
@@ -5351,12 +5354,12 @@ fi
echo $ac_n "checking whether declaration is required for environ""... $ac_c" 1>&6
-echo "configure:5355: checking whether declaration is required for environ" >&5
+echo "configure:5358: 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 5360 "configure"
+#line 5363 "configure"
#include "confdefs.h"
$gas_test_headers
int main() {
@@ -5367,7 +5370,7 @@ x = (f) environ;
; return 0; }
EOF
-if { (eval echo configure:5371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5374: \"$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
@@ -5391,12 +5394,12 @@ fi
# for it?
echo $ac_n "checking whether declaration is required for errno""... $ac_c" 1>&6
-echo "configure:5395: checking whether declaration is required for errno" >&5
+echo "configure:5398: 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 5400 "configure"
+#line 5403 "configure"
#include "confdefs.h"
#ifdef HAVE_ERRNO_H
@@ -5411,7 +5414,7 @@ x = (f) errno;
; return 0; }
EOF
-if { (eval echo configure:5415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5418: \"$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 f322cb0..30b7f6d 100644
--- a/gas/configure.in
+++ b/gas/configure.in
@@ -122,6 +122,7 @@ changequote([,])dnl
changequote(,)dnl
i[456]86) cpu_type=i386 ;;
ia64) cpu_type=ia64 ;;
+ m6811|m6812) cpu_type=m68hc11 ;;
m680[012346]0) cpu_type=m68k ;;
changequote([,])dnl
m68008) cpu_type=m68k ;;
@@ -274,6 +275,8 @@ changequote([,])dnl
m32r-*-*) fmt=elf bfd_gas=yes ;;
+ m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
+
m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
fmt=aout em=sun3 ;;
m68k-motorola-sysv*) fmt=coff em=delta ;;
diff --git a/gas/doc/Makefile.am b/gas/doc/Makefile.am
index c6eaf77..65d7d6e 100644
--- a/gas/doc/Makefile.am
+++ b/gas/doc/Makefile.am
@@ -26,6 +26,7 @@ CPU_DOCS = \
c-i386.texi \
c-i960.texi \
c-m32r.texi \
+ c-m68hc11.texi \
c-m68k.texi \
c-mips.texi \
c-ns32k.texi \
diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in
index 48f4e08..6336678 100644
--- a/gas/doc/Makefile.in
+++ b/gas/doc/Makefile.in
@@ -129,6 +129,7 @@ CPU_DOCS = \
c-i386.texi \
c-i960.texi \
c-m32r.texi \
+ c-m68hc11.texi \
c-m68k.texi \
c-mips.texi \
c-ns32k.texi \
@@ -164,7 +165,7 @@ DIST_COMMON = Makefile.am Makefile.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
all: all-redirect
.SUFFIXES:
diff --git a/gas/doc/all.texi b/gas/doc/all.texi
index d1058fb..14f735d 100644
--- a/gas/doc/all.texi
+++ b/gas/doc/all.texi
@@ -37,6 +37,7 @@
@set I80386
@set I960
@set M32R
+@set M68HC11
@set M680X0
@set MCORE
@set MIPS
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index 20efcd3..62f8868 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -267,6 +267,11 @@ Here is a brief summary of how to invoke @code{@value{AS}}. For details,
[ -jsri2bsr ] [ -sifilter ] [ -relax ]
[ -mcpu=[210|340] ]
@end ifset
+@ifset M68HC11
+ [ -m68hc11 | -m68hc12 ]
+ [ --force-long-branchs ] [ --short-branchs ] [ --strict-direct-mode ]
+ [ --print-insn-syntax ] [ --print-opcodes ] [ --generate-example ]
+@end ifset
@ifset MIPS
[ -nocpp ] [ -EL ] [ -EB ] [ -G @var{num} ] [ -mcpu=@var{CPU} ]
[ -mips1 ] [ -mips2 ] [ -mips3 ] [ -m4650 ] [ -no-m4650 ]
@@ -558,6 +563,42 @@ Generate ``little endian'' format output.
@end table
@end ifset
+@ifset M68HC11
+The following options are available when @value{AS} is configured for the
+Motorola 68HC11 or 68HC12 series.
+
+@table @code
+
+@item -m68hc11 | -m68hc12
+Specify what processor is the target. The default is
+defined by the configuration option when building the assembler.
+
+@item --force-long-branchs
+Relative branches are turned into absolute ones. This concerns
+conditional branches, unconditional branches and branches to a
+sub routine.
+
+@item -S | --short-branchs
+Do not turn relative branchs into absolute ones
+when the offset is out of range.
+
+@item --strict-direct-mode
+Do not turn the direct addressing mode into extended addressing mode
+when the instruction does not support direct addressing mode.
+
+@item --print-insn-syntax
+Print the syntax of instruction in case of error.
+
+@item --print-opcodes
+print the list of instructions with syntax and then exit.
+
+@item --generate-example
+print an example of instruction for each possible instruction and then exit.
+This option is only useful for testing @code{@value{AS}}.
+
+@end table
+@end ifset
+
@ifset SPARC
The following options are available when @code{@value{AS}} is configured
for the SPARC architecture:
@@ -1614,6 +1655,9 @@ is considered a comment and is ignored. The line comment character is
@ifset M680X0
@samp{|} on the 680x0;
@end ifset
+@ifset M68HC11
+@samp{#} on the 68HC11 and 68HC12;
+@end ifset
@ifset VAX
@samp{#} on the Vax;
@end ifset
@@ -4972,6 +5016,9 @@ subject, see the hardware manufacturer's manual.
@ifset M680X0
* M68K-Dependent:: M680x0 Dependent Features
@end ifset
+@ifset M68HC11
+* M68HC11-Dependent:: M68HC11 and 68HC12 Dependent Features
+@end ifset
@ifset MIPS
* MIPS-Dependent:: MIPS Dependent Features
@end ifset
@@ -5150,6 +5197,10 @@ family.
@include c-m68k.texi
@end ifset
+@ifset M68HC11
+@include c-m68hc11.texi
+@end ifset
+
@ifset MIPS
@include c-mips.texi
@end ifset
diff --git a/gas/doc/c-m68hc11.texi b/gas/doc/c-m68hc11.texi
new file mode 100644
index 0000000..df80f8d
--- /dev/null
+++ b/gas/doc/c-m68hc11.texi
@@ -0,0 +1,235 @@
+@c Copyright (C) 1991, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
+@c This is part of the GAS manual.
+@c For copying conditions, see the file as.texinfo.
+@ifset GENERIC
+@page
+@node M68HC11-Dependent
+@chapter M68HC11 and M68HC12 Dependent Features
+@end ifset
+@ifclear GENERIC
+@node Machine Dependencies
+@chapter M68HC11 and M68HC12 Dependent Features
+@end ifclear
+
+@cindex M68HC11 and M68HC12 support
+@menu
+* M68HC11-Opts:: M68HC11 and M68HC12 Options
+* M68HC11-Syntax:: Syntax
+* M68HC11-Float:: Floating Point
+* M68HC11-opcodes:: Opcodes
+@end menu
+
+@node M68HC11-Opts
+@section M68HC11 and M68HC12 Options
+
+@cindex options, M68HC11
+@cindex M68HC11 options
+The Motorola 68HC11 and 68HC12 version of @code{@value{AS}} has a few machine
+dependent options.
+
+@cindex @samp{-m68hc11}
+This option switches the assembler in the M68HC11 mode. In this mode,
+the assembler only accepts 68HC11 operands and mnemonics. It produces
+code for the 68HC11.
+
+@cindex @samp{-m68hc12}
+This option switches the assembler in the M68HC12 mode. In this mode,
+the assembler also accepts 68HC12 operands and mnemonics. It produces
+code for the 68HC12. A fiew 68HC11 instructions are replaced by
+some 68HC12 instructions as recommended by Motorola specifications.
+
+@cindex @samp{--strict-direct-mode}
+You can use the @samp{--strict-direct-mode} option to disable
+the automatic translation of direct page mode addressing into
+extended mode when the instruction does not support direct mode.
+For example, the @samp{clr} instruction does not support direct page
+mode addressing. When it is used with the direct page mode,
+@code{@value{AS}} will ignore it and generate an absolute addressing.
+This option prevents @code{@value{AS}} from doing this, and the wrong
+usage of the direct page mode will raise an error.
+
+@cindex @samp{--short-branchs}
+The @samp{--short-branchs} option turns off the translation of
+relative branches into absolute branches when the branch offset is
+out of range. By default @code{@value{AS}} transforms the relative
+branch (@samp{bsr}, @samp{bgt}, @samp{bge}, @samp{beq}, @samp{bne},
+@samp{ble}, @samp{blt}, @samp{bhi}, @samp{bcc}, @samp{bls},
+@samp{bcs}, @samp{bmi}, @samp{bvs}, @samp{bvs}, @samp{bra}) into
+an absolute branch when the offset is out of the -128 .. 127 range.
+In that case, the @samp{bsr} instruction is translated into a
+@samp{jsr}, the @samp{bra} instruction is translated into a
+@samp{jmp} and the conditional branchs instructions are inverted and
+followed by a @samp{jmp}. This option disables these translations
+and @code{@value{AS}} will generate an error if a relative branch
+is out of range. This option does not affect the optimization
+associated to the @samp{jbra}, @samp{jbsr} and @samp{jbXX} pseudo opcodes.
+
+@cindex @samp{--force-long-branchs}
+The @samp{--force-long-branchs} option forces the translation of
+relative branches into absolute branches. This option does not affect
+the optimization associated to the @samp{jbra}, @samp{jbsr} and
+@samp{jbXX} pseudo opcodes.
+
+@cindex @samp{--print-insn-syntax}
+You can use the @samp{--print-insn-syntax} option to obtain the
+syntax description of the instruction when an error is detected.
+
+@cindex @samp{--print-opcodes}
+The @samp{--print-opcodes} option prints the list of all the
+instructions with their syntax. The first item of each line
+represents the instruction name and the rest of the line indicates
+the possible operands for that instruction. The list is printed
+in alphabetical order. Once the list is printed @code{@value{AS}}
+exits.
+
+@cindex @samp{--generate-example}
+The @samp{--generate-example} option is similar to @samp{--print-opcodes}
+but it generates an example for each instruction instead.
+
+@node M68HC11-Syntax
+@section Syntax
+
+@cindex M68HC11 syntax
+@cindex syntax, M68HC11
+
+In the M68HC11 syntax, the instruction name comes first and it may
+be followed by one or several operands (up to three). Operands are
+separated by comma (@samp{,}). In the normal mode,
+@code{@value{AS}} will complain if too many operands are specified for
+a given instruction. In the MRI mode (turned on with @samp{-M} option),
+it will treat them as comments. Example:
+
+@smallexample
+inx
+lda #23
+bset 2,x #4
+brclr *bot #8 foo
+@end smallexample
+
+@cindex M68HC11 addressing modes
+@cindex addressing modes, M68HC11
+The following addressing modes are understood:
+@table @dfn
+@item Immediate
+@samp{#@var{number}}
+
+@item Address Register
+@samp{@var{number},X}, @samp{@var{number},Y}
+
+The @var{number} may be omitted in which case 0 is assumed.
+
+@item Direct Addressing mode
+@samp{*@var{symbol}}, or @samp{*@var{digits}}
+
+@item Absolute
+@samp{@var{symbol}}, or @samp{@var{digits}}
+@end table
+
+@node M68HC11-Float
+@section Floating Point
+
+@cindex floating point, M68HC11
+@cindex M68HC11 floating point
+Packed decimal (P) format floating literals are not supported.
+Feel free to add the code!
+
+The floating point formats generated by directives are these.
+
+@table @code
+@cindex @code{float} directive, M68HC11
+@item .float
+@code{Single} precision floating point constants.
+
+@cindex @code{double} directive, M68HC11
+@item .double
+@code{Double} precision floating point constants.
+
+@cindex @code{extend} directive M68HC11
+@cindex @code{ldouble} directive M68HC11
+@item .extend
+@itemx .ldouble
+@code{Extended} precision (@code{long double}) floating point constants.
+@end table
+
+@need 2000
+@node M68HC11-opcodes
+@section Opcodes
+
+@cindex M68HC11 opcodes
+@cindex opcodes, M68HC11
+@cindex instruction set, M68HC11
+
+@menu
+* M68HC11-Branch:: Branch Improvement
+@end menu
+
+@node M68HC11-Branch
+@subsection Branch Improvement
+
+@cindex pseudo-opcodes, M68HC11
+@cindex M68HC11 pseudo-opcodes
+@cindex branch improvement, M68HC11
+@cindex M68HC11 branch improvement
+
+Certain pseudo opcodes are permitted for branch instructions.
+They expand to the shortest branch instruction that reach the
+target. Generally these mnemonics are made by prepending @samp{j} to
+the start of Motorola mnemonic. These pseudo opcodes are not affected
+by the @samp{--short-branchs} or @samp{--force-long-branchs} options.
+
+The following table summarizes the pseudo-operations.
+
+@smallexample
+ Displacement Width
+ +-------------------------------------------------------------+
+ | Options |
+ | --short-branchs --force-long-branchs |
+ +--------------------------+----------------------------------+
+Pseudo-Op |BYTE WORD | BYTE WORD |
+ +--------------------------+----------------------------------+
+ bsr | bsr <pc-rel> <error> | jsr <abs> |
+ bra | bra <pc-rel> <error> | jmp <abs> |
+ jbsr | bsr <pc-rel> jsr <abs> | bsr <pc-rel> jsr <abs> |
+ jbra | bra <pc-rel> jmp <abs> | bra <pc-rel> jmp <abs> |
+ bXX | bXX <pc-rel> <error> | bNX +3; jmp <abs> |
+ jbXX | bXX <pc-rel> bNX +3; | bXX <pc-rel> bNX +3; jmp <abs> |
+ | jmp <abs> | |
+ +--------------------------+----------------------------------+
+XX: condition
+NX: negative of condition XX
+
+@end smallexample
+
+@table @code
+@item jbsr
+@itemx jbra
+These are the simplest jump pseudo-operations; they always map to one
+particular machine instruction, depending on the displacement to the
+branch target.
+
+@item jb@var{XX}
+Here, @samp{jb@var{XX}} stands for an entire family of pseudo-operations,
+where @var{XX} is a conditional branch or condition-code test. The full
+list of pseudo-ops in this family is:
+@smallexample
+ jbcc jbeq jbge jbgt jbhi jbvs jbpl jblo
+ jbcs jbne jblt jble jbls jbvc jbmi
+@end smallexample
+
+For the cases of non-PC relative displacements and long displacements,
+@code{@value{AS}} issues a longer code fragment in terms of
+@var{NX}, the opposite condition to @var{XX}. For example, for the
+non-PC relative case:
+@smallexample
+ jb@var{XX} foo
+@end smallexample
+gives
+@smallexample
+ b@var{NX}s oof
+ jmp foo
+ oof:
+@end smallexample
+
+@end table
+
+
diff --git a/gas/expr.c b/gas/expr.c
index 11a9e13..e12c4b0 100644
--- a/gas/expr.c
+++ b/gas/expr.c
@@ -541,8 +541,8 @@ integer_constant (radix, expressionP)
}
}
- if ((NUMBERS_WITH_SUFFIX || flag_m68k_mri)
- && suffix != NULL
+ if ((NUMBERS_WITH_SUFFIX || flag_m68k_mri)
+ && suffix != NULL
&& input_line_pointer - 1 == suffix)
c = *input_line_pointer++;
@@ -815,7 +815,7 @@ operand (expressionP)
case '9':
input_line_pointer--;
- integer_constant ((NUMBERS_WITH_SUFFIX || flag_m68k_mri)
+ integer_constant ((NUMBERS_WITH_SUFFIX || flag_m68k_mri)
? 0 : 10,
expressionP);
break;
diff --git a/gas/po/POTFILES.in b/gas/po/POTFILES.in
index 0e420b3..c5d9d4a 100644
--- a/gas/po/POTFILES.in
+++ b/gas/po/POTFILES.in
@@ -46,6 +46,8 @@ config/tc-arc.c
config/tc-arc.h
config/tc-arm.c
config/tc-arm.h
+config/tc-avr.c
+config/tc-avr.h
config/tc-d10v.c
config/tc-d10v.h
config/tc-d30v.c
@@ -66,8 +68,12 @@ config/tc-i860.c
config/tc-i860.h
config/tc-i960.c
config/tc-i960.h
+config/tc-ia64.c
+config/tc-ia64.h
config/tc-m32r.c
config/tc-m32r.h
+config/tc-m68hc11.c
+config/tc-m68hc11.h
config/tc-m68k.c
config/tc-m68k.h
config/tc-m88k.c
@@ -114,18 +120,18 @@ ecoff.c
ecoff.h
ehopt.c
ehopt.c
-emul-target.h
emul.h
+emul-target.h
expr.c
expr.c
expr.h
flonum-copy.c
flonum-copy.c
+flonum.h
flonum-konst.c
flonum-konst.c
flonum-mult.c
flonum-mult.c
-flonum.h
frags.c
frags.c
frags.h
diff --git a/gas/po/gas.pot b/gas/po/gas.pot
index eb90adc..7e02403 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: 2000-04-04 23:20+0930\n"
+"POT-Creation-Date: 2000-06-18 18:12-0700\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"
@@ -14,48 +14,48 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
-#: app.c:466 app.c:480
+#: app.c:465 app.c:479
msgid "end of file in comment"
msgstr ""
-#: app.c:559
+#: app.c:558
msgid "end of file in string: inserted '\"'"
msgstr ""
-#: app.c:625
+#: app.c:624
#, c-format
msgid "Unknown escape '\\%c' in string: Ignored"
msgstr ""
-#: app.c:634
+#: app.c:633
msgid "End of file in string: '\"' inserted"
msgstr ""
-#: app.c:754
+#: app.c:753
msgid "end of file not at end of a line; newline inserted"
msgstr ""
-#: app.c:911
+#: app.c:910
msgid "end of file in multiline comment"
msgstr ""
-#: app.c:960
+#: app.c:974
msgid "end of file after a one-character quote; \\0 inserted"
msgstr ""
-#: app.c:968
+#: app.c:982
msgid "end of file in escape character"
msgstr ""
-#: app.c:980
+#: app.c:994
msgid "Missing close quote: (assumed)"
msgstr ""
-#: app.c:1043 app.c:1097 app.c:1166
+#: app.c:1057 app.c:1111 app.c:1180
msgid "end of file in comment; newline inserted"
msgstr ""
-#: app.c:1107
+#: app.c:1121
msgid "EOF in Comment: Newline inserted"
msgstr ""
@@ -260,7 +260,7 @@ msgid "GNU assembler %s\n"
msgstr ""
#: as.c:517
-msgid "Copyright 1997 Free Software Foundation, Inc.\n"
+msgid "Copyright 2000 Free Software Foundation, Inc.\n"
msgstr ""
#: as.c:518 gasp.c:3648
@@ -311,31 +311,31 @@ msgstr ""
msgid "bad defsym; format is --defsym name=value"
msgstr ""
-#: as.c:575
+#: as.c:579
msgid "No file name following -t option\n"
msgstr ""
-#: as.c:591
+#: as.c:595
#, c-format
msgid "Failed to read instruction table %s\n"
msgstr ""
-#: as.c:705
+#: as.c:712
#, c-format
msgid "invalid listing option `%c'"
msgstr ""
-#: as.c:899
+#: as.c:906
#, c-format
msgid "%d warnings, treating warnings as errors"
msgstr ""
-#: as.c:930
+#: as.c:937
#, c-format
msgid "%s: total time in assembly: %ld.%06ld\n"
msgstr ""
-#: as.c:933
+#: as.c:940
#, c-format
msgid "%s: data size %ld\n"
msgstr ""
@@ -345,8 +345,8 @@ msgstr ""
#. * This should never happen.
#.
#: atof-generic.c:438 config/tc-a29k.c:544 config/tc-i860.c:335
-#: config/tc-i860.c:708 config/tc-m68k.c:3124 config/tc-m68k.c:3153
-#: config/tc-sparc.c:2462
+#: config/tc-i860.c:708 config/tc-m68k.c:3122 config/tc-m68k.c:3151
+#: config/tc-sparc.c:2478
msgid "failed sanity check."
msgstr ""
@@ -424,7 +424,7 @@ msgstr ""
msgid "Attempt to put an undefined symbol into set %s"
msgstr ""
-#: config/obj-aout.c:198 config/obj-coff.c:1204 config/obj-elf.c:1675
+#: config/obj-aout.c:198 config/obj-coff.c:1204 config/obj-elf.c:1706
#: ecoff.c:3668
#, c-format
msgid "Symbol `%s' can not be both weak and common"
@@ -552,12 +552,12 @@ msgstr ""
msgid "unsupported section attribute '%c'"
msgstr ""
-#: config/obj-coff.c:1410 config/obj-coff.c:3668 config/tc-ppc.c:3791
+#: config/obj-coff.c:1410 config/obj-coff.c:3668 config/tc-ppc.c:3917
#, c-format
msgid "unknown section attribute '%c'"
msgstr ""
-#: config/obj-coff.c:1432 config/tc-ppc.c:3809 read.c:2504
+#: config/obj-coff.c:1432 config/tc-ppc.c:3935 read.c:2502
#, c-format
msgid "error setting flags for \"%s\": %s"
msgstr ""
@@ -595,11 +595,11 @@ msgstr ""
msgid "Too many new sections; can't add \"%s\""
msgstr ""
-#: config/obj-coff.c:3986 config/tc-m88k.c:1260 config/tc-sparc.c:3354
+#: config/obj-coff.c:3986 config/tc-m88k.c:1260 config/tc-sparc.c:3454
msgid "Expected comma after name"
msgstr ""
-#: config/obj-coff.c:3992 read.c:1967
+#: config/obj-coff.c:3992 read.c:1965
msgid "Missing size expression"
msgstr ""
@@ -608,7 +608,7 @@ msgstr ""
msgid "lcomm length (%d.) <0! Ignored."
msgstr ""
-#: config/obj-coff.c:4026 read.c:2188
+#: config/obj-coff.c:4026 read.c:2186
#, c-format
msgid "Symbol %s already defined"
msgstr ""
@@ -649,140 +649,150 @@ msgstr ""
msgid "Signed .word overflow; switch may be too large; %ld at 0x%lx"
msgstr ""
-#: config/obj-ecoff.c:240
+#: config/obj-ecoff.c:241
msgid "Can't set GP value"
msgstr ""
-#: config/obj-ecoff.c:247
+#: config/obj-ecoff.c:248
msgid "Can't set register masks"
msgstr ""
-#: config/obj-elf.c:299 config/tc-sparc.c:3495 config/tc-v850.c:263
+#: config/obj-elf.c:310 config/tc-sparc.c:3595 config/tc-v850.c:263
msgid "Expected comma after symbol-name"
msgstr ""
-#: config/obj-elf.c:306 config/tc-arc.c:779 config/tc-sparc.c:3502
+#: config/obj-elf.c:317 config/tc-arc.c:779 config/tc-sparc.c:3602
#, c-format
msgid ".COMMon length (%d.) <0! Ignored."
msgstr ""
-#: config/obj-elf.c:316 config/tc-alpha.c:4320 config/tc-sparc.c:3512
+#: config/obj-elf.c:327 config/tc-alpha.c:4320 config/tc-sparc.c:3612
#: config/tc-v850.c:285
msgid "Ignoring attempt to re-define symbol"
msgstr ""
-#: config/obj-elf.c:324 config/tc-arc.c:797 config/tc-sparc.c:3520
+#: config/obj-elf.c:335 config/tc-arc.c:797 config/tc-sparc.c:3620
#: config/tc-v850.c:295
#, c-format
msgid "Length of .comm \"%s\" is already %ld. Not changed to %d."
msgstr ""
-#: config/obj-elf.c:347 config/tc-arc.c:816 config/tc-v850.c:322
+#: config/obj-elf.c:358 config/tc-arc.c:816 config/tc-v850.c:322
msgid "Common alignment negative; 0 assumed"
msgstr ""
-#: config/obj-elf.c:366 config/tc-m32r.c:1269 config/tc-ppc.c:1396
+#: config/obj-elf.c:377 config/tc-m32r.c:1269 config/tc-ppc.c:1514
#: config/tc-v850.c:385
msgid "Common alignment not a power of 2"
msgstr ""
-#: config/obj-elf.c:429 config/tc-arc.c:876 config/tc-sparc.c:3644
-#: config/tc-v850.c:563
+#: config/obj-elf.c:440 config/tc-arc.c:876 config/tc-sparc.c:3744
+#: config/tc-v850.c:566
#, c-format
msgid "bad .common segment %s"
msgstr ""
-#: config/obj-elf.c:658
+#: config/obj-elf.c:668
#, c-format
msgid "Setting incorrect section type for %s"
msgstr ""
-#: config/obj-elf.c:668
+#: config/obj-elf.c:672
+#, c-format
+msgid "Ignoring incorrect section type for %s"
+msgstr ""
+
+#: config/obj-elf.c:685
#, c-format
msgid "Setting incorrect section attributes for %s"
msgstr ""
-#: config/obj-elf.c:726
+#: config/obj-elf.c:727
+#, c-format
+msgid "Ignoring changed section attributes for %s"
+msgstr ""
+
+#: config/obj-elf.c:757
msgid "Unrecognized .section attribute: want a,w,x"
msgstr ""
-#: config/obj-elf.c:766
+#: config/obj-elf.c:797
msgid "Unrecognized section attribute"
msgstr ""
-#: config/obj-elf.c:788
+#: config/obj-elf.c:819
msgid "Unrecognized section type"
msgstr ""
-#: config/obj-elf.c:839
+#: config/obj-elf.c:870
msgid "Missing section name"
msgstr ""
-#: config/obj-elf.c:905
+#: config/obj-elf.c:936
msgid "Bad .section directive - character following name is not '#'"
msgstr ""
-#: config/obj-elf.c:1006
+#: config/obj-elf.c:1037
msgid ".previous without corresponding .section; ignored"
msgstr ""
-#: config/obj-elf.c:1033
+#: config/obj-elf.c:1064
msgid ".popsection without corresponding .pushsection; ignored"
msgstr ""
-#: config/obj-elf.c:1085
+#: config/obj-elf.c:1116
#, c-format
msgid "multiple .symver directives for symbol `%s'"
msgstr ""
-#: config/obj-elf.c:1094
+#: config/obj-elf.c:1125
msgid "expected comma after name in .symver"
msgstr ""
-#: config/obj-elf.c:1115
+#: config/obj-elf.c:1146
#, c-format
msgid "missing version name in `%s' for symbol `%s'"
msgstr ""
-#: config/obj-elf.c:1324 config/obj-som.c:148 config/obj-som.c:193
+#: config/obj-elf.c:1355 config/obj-som.c:149 config/obj-som.c:194
msgid "Expected quoted string"
msgstr ""
-#: config/obj-elf.c:1345
+#: config/obj-elf.c:1376
#, c-format
msgid "expected comma after name `%s' in .size directive"
msgstr ""
-#: config/obj-elf.c:1354
+#: config/obj-elf.c:1385
msgid "missing expression in .size directive"
msgstr ""
-#: config/obj-elf.c:1421
+#: config/obj-elf.c:1452
#, c-format
msgid "ignoring unrecognized symbol type \"%s\""
msgstr ""
-#: config/obj-elf.c:1599
+#: config/obj-elf.c:1630
msgid ".size expression too complicated to fix up"
msgstr ""
-#: config/obj-elf.c:1630
+#: config/obj-elf.c:1661
#, c-format
msgid ""
"invalid attempt to declare external version name as default in symbol `%s'"
msgstr ""
-#: config/obj-elf.c:1762
+#: config/obj-elf.c:1793
#, c-format
msgid "Failed to set up debugging information: %s"
msgstr ""
-#: config/obj-elf.c:1782
+#: config/obj-elf.c:1813
#, c-format
msgid "Can't start writing .mdebug section: %s"
msgstr ""
-#: config/obj-elf.c:1790
+#: config/obj-elf.c:1821
#, c-format
msgid "Could not write .mdebug section: %s"
msgstr ""
@@ -791,20 +801,20 @@ msgstr ""
msgid "too many sections"
msgstr ""
-#: config/obj-som.c:131
+#: config/obj-som.c:132
msgid "Only one .version pseudo-op per file!"
msgstr ""
-#: config/obj-som.c:157
+#: config/obj-som.c:158
#, c-format
msgid "FATAL: Attaching version header %s"
msgstr ""
-#: config/obj-som.c:176
+#: config/obj-som.c:177
msgid "Only one .copyright pseudo-op per file!"
msgstr ""
-#: config/obj-som.c:202
+#: config/obj-som.c:203
#, c-format
msgid "FATAL: Attaching copyright header %s"
msgstr ""
@@ -955,26 +965,27 @@ msgstr ""
msgid "unhandled stab type %d"
msgstr ""
-#: config/tc-a29k.c:160 config/tc-sparc.c:3696
+#: config/tc-a29k.c:160 config/tc-sparc.c:3796
msgid "Unknown segment type"
msgstr ""
#. Probably a memory allocation problem? Give up now.
-#: config/tc-a29k.c:330 config/tc-hppa.c:1387 config/tc-i860.c:202
-#: config/tc-mips.c:1062 config/tc-mips.c:1104 config/tc-sparc.c:789
+#: config/tc-a29k.c:330 config/tc-hppa.c:1401 config/tc-i860.c:202
+#: config/tc-mips.c:1062 config/tc-mips.c:1104 config/tc-sparc.c:806
msgid "Broken assembler. No assembly attempted."
msgstr ""
-#: config/tc-a29k.c:375 config/tc-arc.c:535 config/tc-d10v.c:507
-#: config/tc-d30v.c:553 config/tc-h8300.c:305 config/tc-h8500.c:297
-#: config/tc-mcore.c:656 config/tc-mn10200.c:935 config/tc-mn10300.c:1296
-#: config/tc-ppc.c:1852 config/tc-sh.c:632 config/tc-tic80.c:291
-#: config/tc-v850.c:2033 config/tc-w65.c:257 config/tc-z8k.c:341
+#: config/tc-a29k.c:375 config/tc-arc.c:535 config/tc-avr.c:1045
+#: config/tc-d10v.c:514 config/tc-d30v.c:553 config/tc-h8300.c:304
+#: config/tc-h8500.c:297 config/tc-mcore.c:656 config/tc-mn10200.c:935
+#: config/tc-mn10300.c:1303 config/tc-ppc.c:1970 config/tc-sh.c:638
+#: config/tc-tic80.c:291 config/tc-v850.c:2034 config/tc-w65.c:257
+#: config/tc-z8k.c:338
msgid "missing operand"
msgstr ""
-#: config/tc-a29k.c:415 config/tc-hppa.c:1533 config/tc-i860.c:407
-#: config/tc-i860.c:423 config/tc-sparc.c:1352 config/tc-sparc.c:1358
+#: config/tc-a29k.c:415 config/tc-hppa.c:1547 config/tc-i860.c:407
+#: config/tc-i860.c:423 config/tc-sparc.c:1369 config/tc-sparc.c:1375
#, c-format
msgid "Unknown opcode: `%s'"
msgstr ""
@@ -1039,10 +1050,10 @@ msgstr ""
msgid "syntax error"
msgstr ""
-#: config/tc-alpha.c:1025 config/tc-arm.c:5167 config/tc-h8300.c:1413
-#: config/tc-h8500.c:1222 config/tc-hppa.c:3904 config/tc-i860.c:813
-#: config/tc-m68k.c:4125 config/tc-m88k.c:1106 config/tc-ns32k.c:1589
-#: config/tc-sparc.c:2741 config/tc-z8k.c:1355
+#: config/tc-alpha.c:1025 config/tc-arm.c:5220 config/tc-h8300.c:1409
+#: config/tc-h8500.c:1221 config/tc-hppa.c:3989 config/tc-i860.c:813
+#: config/tc-m68hc11.c:486 config/tc-m68k.c:4125 config/tc-m88k.c:1106
+#: config/tc-ns32k.c:1589 config/tc-sparc.c:2757 config/tc-z8k.c:1352
msgid "Bad call to MD_ATOF()"
msgstr ""
@@ -1136,10 +1147,10 @@ msgstr ""
msgid "operand out of range (%s not between %d and %d)"
msgstr ""
-#: config/tc-alpha.c:2434 config/tc-arc.c:548 config/tc-d10v.c:596
-#: config/tc-d30v.c:636 config/tc-mn10200.c:990 config/tc-mn10300.c:1368
-#: config/tc-ppc.c:1818 config/tc-ppc.c:1926 config/tc-ppc.c:1938
-#: config/tc-v850.c:1819 config/tc-v850.c:1842 config/tc-v850.c:2055
+#: config/tc-alpha.c:2434 config/tc-arc.c:548 config/tc-d10v.c:603
+#: config/tc-d30v.c:636 config/tc-mn10200.c:990 config/tc-mn10300.c:1375
+#: config/tc-ppc.c:1936 config/tc-ppc.c:2044 config/tc-ppc.c:2056
+#: config/tc-v850.c:1820 config/tc-v850.c:1843 config/tc-v850.c:2056
msgid "too many fixups"
msgstr ""
@@ -1153,7 +1164,7 @@ msgstr ""
msgid "opcode `%s' not supported for target %s"
msgstr ""
-#: config/tc-alpha.c:2651 config/tc-alpha.c:2719
+#: config/tc-alpha.c:2651 config/tc-alpha.c:2719 config/tc-avr.c:1012
#, c-format
msgid "unknown opcode `%s'"
msgstr ""
@@ -1185,11 +1196,11 @@ msgstr ""
msgid "macro requires $at while $at in use"
msgstr ""
-#: config/tc-alpha.c:3075 expr.c:86 read.c:3160
+#: config/tc-alpha.c:3075 expr.c:86 read.c:3158
msgid "bignum invalid; zero assumed"
msgstr ""
-#: config/tc-alpha.c:3077 expr.c:88 read.c:3162 read.c:3498 read.c:4396
+#: config/tc-alpha.c:3077 expr.c:88 read.c:3160 read.c:3496 read.c:4394
msgid "floating point number invalid; zero assumed"
msgstr ""
@@ -1206,14 +1217,14 @@ msgstr ""
msgid "bad instruction format for lda !%s!%d"
msgstr ""
-#: config/tc-alpha.c:4291 config/tc-ppc.c:1345 config/tc-ppc.c:3555
-#: read.c:1387
+#: config/tc-alpha.c:4291 config/tc-ppc.c:1463 config/tc-ppc.c:3681
+#: read.c:1385
#, c-format
msgid ".COMMon length (%ld.) <0! Ignored."
msgstr ""
-#: config/tc-alpha.c:4329 config/tc-alpha.c:4338 config/tc-ppc.c:3592
-#: read.c:1408
+#: config/tc-alpha.c:4329 config/tc-alpha.c:4338 config/tc-ppc.c:3718
+#: read.c:1406
#, c-format
msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld."
msgstr ""
@@ -1303,8 +1314,8 @@ msgstr ""
msgid "Bad .fmask directive"
msgstr ""
-#: config/tc-alpha.c:5169 config/tc-arm.c:1325 read.c:2151 read.c:2731
-#: stabs.c:460
+#: config/tc-alpha.c:5169 config/tc-arm.c:1331 read.c:2149 read.c:2729
+#: stabs.c:459
#, c-format
msgid "Expected comma after name \"%s\""
msgstr ""
@@ -1335,7 +1346,7 @@ msgstr ""
msgid "Alignment too large: %d. assumed"
msgstr ""
-#: config/tc-alpha.c:5275 config/tc-d30v.c:2182
+#: config/tc-alpha.c:5275 config/tc-d30v.c:2181
msgid "Alignment negative: 0 assumed"
msgstr ""
@@ -1352,9 +1363,9 @@ msgid ""
msgstr ""
#: config/tc-arc.c:155 config/tc-arc.c:178 config/tc-arc.c:922
-#: config/tc-hppa.c:1347 config/tc-hppa.c:6734 config/tc-hppa.c:6740
-#: config/tc-hppa.c:6746 config/tc-hppa.c:6752 config/tc-mn10300.c:885
-#: config/tc-mn10300.c:1996
+#: config/tc-hppa.c:1361 config/tc-hppa.c:6752 config/tc-hppa.c:6758
+#: config/tc-hppa.c:6764 config/tc-hppa.c:6770 config/tc-mn10300.c:891
+#: config/tc-mn10300.c:2020
msgid "could not set architecture and machine"
msgstr ""
@@ -1362,8 +1373,8 @@ msgstr ""
msgid "virtual memory exhausted"
msgstr ""
-#: config/tc-arc.c:254 config/tc-mn10200.c:1354 config/tc-mn10300.c:1907
-#: config/tc-ppc.c:1102 config/tc-v850.c:1618
+#: config/tc-arc.c:254 config/tc-mn10200.c:1354 config/tc-mn10300.c:1931
+#: config/tc-ppc.c:1220 config/tc-v850.c:1619
#, c-format
msgid "operand out of range (%s not between %ld and %ld)"
msgstr ""
@@ -1377,14 +1388,14 @@ msgstr ""
msgid "too many suffixes"
msgstr ""
-#: config/tc-arc.c:533 config/tc-d10v.c:505 config/tc-d30v.c:551
-#: config/tc-mn10200.c:932 config/tc-mn10300.c:1293 config/tc-ppc.c:1850
-#: config/tc-tic80.c:287 config/tc-v850.c:2030
+#: config/tc-arc.c:533 config/tc-d10v.c:512 config/tc-d30v.c:551
+#: config/tc-mn10200.c:932 config/tc-mn10300.c:1300 config/tc-ppc.c:1968
+#: config/tc-tic80.c:287 config/tc-v850.c:2031
msgid "illegal operand"
msgstr ""
-#: config/tc-arc.c:620 config/tc-mn10200.c:1031 config/tc-mn10300.c:1438
-#: config/tc-ppc.c:1975 config/tc-v850.c:2108
+#: config/tc-arc.c:620 config/tc-mn10200.c:1031 config/tc-mn10300.c:1445
+#: config/tc-ppc.c:2093 config/tc-v850.c:2109
#, c-format
msgid "junk at end of line: `%s'"
msgstr ""
@@ -1401,7 +1412,7 @@ msgstr ""
msgid "conditional branch follows set of flags"
msgstr ""
-#: config/tc-arc.c:749 config/tc-arm.c:6377
+#: config/tc-arc.c:749 config/tc-arm.c:6425
#, c-format
msgid "bad instruction `%s'"
msgstr ""
@@ -1430,7 +1441,7 @@ msgstr ""
msgid "bad .cpu op"
msgstr ""
-#: config/tc-arc.c:951 config/tc-ppc.c:2623
+#: config/tc-arc.c:951 config/tc-ppc.c:2741
msgid "missing rename string"
msgstr ""
@@ -1438,9 +1449,10 @@ msgstr ""
msgid "invalid symbol to rename to"
msgstr ""
-#: config/tc-arc.c:1010 config/tc-d10v.c:284 config/tc-d30v.c:366
-#: config/tc-mips.c:8770 config/tc-mn10200.c:355 config/tc-pj.c:365
-#: config/tc-ppc.c:4384 config/tc-sh.c:1742 config/tc-v850.c:1276
+#: config/tc-arc.c:1010 config/tc-avr.c:288 config/tc-d10v.c:291
+#: config/tc-d30v.c:366 config/tc-mips.c:8770 config/tc-mn10200.c:355
+#: config/tc-pj.c:365 config/tc-ppc.c:4510 config/tc-sh.c:1824
+#: config/tc-v850.c:1278
msgid "bad call to md_atof"
msgstr ""
@@ -1453,583 +1465,595 @@ msgstr ""
msgid "expression too complex for %%st"
msgstr ""
-#: config/tc-arc.c:1326 config/tc-arm.c:3142 config/tc-d10v.c:1475
-#: config/tc-d30v.c:1828 config/tc-mips.c:3250 config/tc-mips.c:4182
-#: config/tc-mips.c:4967 config/tc-mips.c:5513 config/tc-ppc.c:4720
-#: config/tc-v850.c:2338
+#: config/tc-arc.c:1326 config/tc-arm.c:3195 config/tc-avr.c:771
+#: config/tc-d10v.c:1532 config/tc-d30v.c:1827 config/tc-mips.c:3250
+#: config/tc-mips.c:4182 config/tc-mips.c:4967 config/tc-mips.c:5513
+#: config/tc-ppc.c:4846 config/tc-v850.c:2341
msgid "expression too complex"
msgstr ""
-#: config/tc-arc.c:1392 config/tc-ppc.c:4823 config/tc-v850.c:2382
+#: config/tc-arc.c:1392 config/tc-ppc.c:4948 config/tc-v850.c:2385
msgid "unresolved expression that must be resolved"
msgstr ""
-#: config/tc-arc.c:1457 config/tc-sparc.c:3203
+#: config/tc-arc.c:1457 config/tc-sparc.c:3303
#, c-format
msgid "internal error: can't export reloc type %d (`%s')"
msgstr ""
-#: config/tc-arm.c:1023
+#: config/tc-arm.c:1029
msgid "Literal Pool Overflow"
msgstr ""
-#: config/tc-arm.c:1165
+#: config/tc-arm.c:1171
msgid "Invalid syntax for .req directive."
msgstr ""
-#: config/tc-arm.c:1237 config/tc-mips.c:9963 read.c:2040
+#: config/tc-arm.c:1243 config/tc-mips.c:9979 read.c:2038
#, c-format
msgid "Alignment too large: %d. assumed."
msgstr ""
-#: config/tc-arm.c:1240 read.c:2045
+#: config/tc-arm.c:1246 read.c:2043
msgid "Alignment negative. 0 assumed."
msgstr ""
-#: config/tc-arm.c:1374 config/tc-m32r.c:418 read.c:2790 read.c:4867
+#: config/tc-arm.c:1380 config/tc-m32r.c:418 read.c:2788 read.c:4865
#, c-format
msgid "symbol `%s' already defined"
msgstr ""
-#: config/tc-arm.c:1444
+#: config/tc-arm.c:1450
msgid "selected processor does not support THUMB opcodes"
msgstr ""
-#: config/tc-arm.c:1456
+#: config/tc-arm.c:1462
msgid "selected processor does not support ARM opcodes"
msgstr ""
-#: config/tc-arm.c:1465
+#: config/tc-arm.c:1471
#, c-format
msgid "invalid instruction size selected (%d)"
msgstr ""
-#: config/tc-arm.c:1500
+#: config/tc-arm.c:1506
#, c-format
msgid "invalid operand to .code directive (%d) (expecting 16 or 32)"
msgstr ""
-#: config/tc-arm.c:1511
+#: config/tc-arm.c:1517
msgid "Garbage following instruction"
msgstr ""
#. In the few cases where we might be able to accept something else
#. this error can be overridden.
-#: config/tc-arm.c:1560
+#: config/tc-arm.c:1566
#, c-format
msgid "Register expected, not '%.100s'"
msgstr ""
-#. In the few cases where we might be able to accept something else
-#. this error can be overridden.
-#: config/tc-arm.c:1586
-msgid "<psr(f)> expected"
+#. In the few cases where we might be able to accept
+#. something else this error can be overridden.
+#: config/tc-arm.c:1630
+msgid "flag for {c}psr instruction expected"
msgstr ""
-#: config/tc-arm.c:1616
+#: config/tc-arm.c:1660
msgid "Illegal co-processor number"
msgstr ""
-#: config/tc-arm.c:1623
+#: config/tc-arm.c:1667
msgid "Bad or missing co-processor number"
msgstr ""
-#: config/tc-arm.c:1647
+#: config/tc-arm.c:1691
msgid "bad or missing expression"
msgstr ""
-#: config/tc-arm.c:1653
+#: config/tc-arm.c:1697
msgid "immediate co-processor expression too large"
msgstr ""
#. In the few cases where we might be able to accept something else
#. this error can be overridden.
-#: config/tc-arm.c:1678
+#: config/tc-arm.c:1722
msgid "Co-processor register expected"
msgstr ""
#. In the few cases where we might be able to accept something else
#. this error can be overridden.
-#: config/tc-arm.c:1702
+#: config/tc-arm.c:1746
msgid "Floating point register expected"
msgstr ""
-#: config/tc-arm.c:1719
+#: config/tc-arm.c:1763
msgid "immediate expression expected"
msgstr ""
-#: config/tc-arm.c:1734
+#: config/tc-arm.c:1778
msgid "co-processor address must be word aligned"
msgstr ""
-#: config/tc-arm.c:1740
+#: config/tc-arm.c:1784
msgid "offset too large"
msgstr ""
-#: config/tc-arm.c:1788
+#: config/tc-arm.c:1832
msgid "pc may not be used in post-increment"
msgstr ""
-#: config/tc-arm.c:1804 config/tc-arm.c:2934
+#: config/tc-arm.c:1848 config/tc-arm.c:2987
msgid "pre-indexed expression expected"
msgstr ""
-#: config/tc-arm.c:1817 config/tc-arm.c:2946 config/tc-arm.c:3288
+#: config/tc-arm.c:1861 config/tc-arm.c:2999 config/tc-arm.c:3341
msgid "missing ]"
msgstr ""
-#: config/tc-arm.c:1827
+#: config/tc-arm.c:1871
msgid "pc may not be used with write-back"
msgstr ""
-#: config/tc-arm.c:1881
-msgid "<psr> expected"
+#: config/tc-arm.c:1926
+msgid "comma expected after register name"
msgstr ""
-#: config/tc-arm.c:1942 config/tc-arm.c:2556
-msgid "Register or shift expression expected"
+#: config/tc-arm.c:1944
+msgid "{C|S}PSR expected"
msgstr ""
-#: config/tc-arm.c:1956 config/tc-arm.c:2271 config/tc-arm.c:2523
-#: config/tc-arm.c:2543
-msgid "Invalid constant"
+#: config/tc-arm.c:1971
+msgid "comma missing after psr flags"
+msgstr ""
+
+#: config/tc-arm.c:1987 config/tc-arm.c:1996
+msgid "only a register or immediate value can follow a psr flag"
msgstr ""
-#: config/tc-arm.c:1967
-msgid "Error: unrecognised syntax for second argument to msr instruction"
+#: config/tc-arm.c:2002
+msgid "can only set flag field with immediate value"
+msgstr ""
+
+#: config/tc-arm.c:2019 config/tc-arm.c:2324 config/tc-arm.c:2576
+#: config/tc-arm.c:2596
+msgid "Invalid constant"
msgstr ""
-#: config/tc-arm.c:2016
+#: config/tc-arm.c:2069
msgid "rdhi, rdlo and rm must all be different"
msgstr ""
-#: config/tc-arm.c:2072
+#: config/tc-arm.c:2125
msgid "rd and rm should be different in mul"
msgstr ""
-#: config/tc-arm.c:2128
+#: config/tc-arm.c:2181
msgid "rd and rm should be different in mla"
msgstr ""
-#: config/tc-arm.c:2255
+#: config/tc-arm.c:2308
msgid "bad_segment"
msgstr ""
-#: config/tc-arm.c:2301 config/tc-arm.c:2378
+#: config/tc-arm.c:2354 config/tc-arm.c:2431
msgid "Shift expression expected"
msgstr ""
-#: config/tc-arm.c:2342
+#: config/tc-arm.c:2395
msgid "Invalid immediate shift"
msgstr ""
-#: config/tc-arm.c:2371
+#: config/tc-arm.c:2424
msgid "shift requires register or #expression"
msgstr ""
-#: config/tc-arm.c:2372
+#: config/tc-arm.c:2425
msgid "shift requires #expression"
msgstr ""
-#: config/tc-arm.c:2514 config/tc-arm.c:2975
+#: config/tc-arm.c:2567 config/tc-arm.c:3028
msgid "Constant expression expected"
msgstr ""
#: config/tc-arm.c:2609
+msgid "Register or shift expression expected"
+msgstr ""
+
+#: config/tc-arm.c:2662
msgid "Invalid floating point immediate expression"
msgstr ""
-#: config/tc-arm.c:2612
+#: config/tc-arm.c:2665
msgid "Floating point register or immediate expression expected"
msgstr ""
-#: config/tc-arm.c:2781
+#: config/tc-arm.c:2834
msgid "address offset too large"
msgstr ""
-#: config/tc-arm.c:2853
+#: config/tc-arm.c:2906
msgid "Processor does not support halfwords or signed bytes"
msgstr ""
-#: config/tc-arm.c:2874
+#: config/tc-arm.c:2927
msgid "Address expected"
msgstr ""
-#: config/tc-arm.c:2904 config/tc-arm.c:2918 config/tc-arm.c:2955
+#: config/tc-arm.c:2957 config/tc-arm.c:2971 config/tc-arm.c:3008
#, c-format
msgid "%s register same as write-back base"
msgstr ""
-#: config/tc-arm.c:2905 config/tc-arm.c:2919 config/tc-arm.c:2956
+#: config/tc-arm.c:2958 config/tc-arm.c:2972 config/tc-arm.c:3009
msgid "destination"
msgstr ""
-#: config/tc-arm.c:2905 config/tc-arm.c:2919 config/tc-arm.c:2956
+#: config/tc-arm.c:2958 config/tc-arm.c:2972 config/tc-arm.c:3009
msgid "source"
msgstr ""
-#: config/tc-arm.c:2995
+#: config/tc-arm.c:3048
msgid "literal pool insertion failed"
msgstr ""
-#: config/tc-arm.c:3033
+#: config/tc-arm.c:3086
msgid "Pre-increment instruction with translate"
msgstr ""
-#: config/tc-arm.c:3074
+#: config/tc-arm.c:3127
msgid "Bad range in register list"
msgstr ""
-#: config/tc-arm.c:3082 config/tc-arm.c:3091 config/tc-arm.c:3132
+#: config/tc-arm.c:3135 config/tc-arm.c:3144 config/tc-arm.c:3185
#, c-format
msgid "Warning: Duplicated register (r%d) in register list"
msgstr ""
-#: config/tc-arm.c:3094
+#: config/tc-arm.c:3147
msgid "Warning: Register range not in ascending order"
msgstr ""
-#: config/tc-arm.c:3105
+#: config/tc-arm.c:3158
msgid "Missing `}'"
msgstr ""
-#: config/tc-arm.c:3121
+#: config/tc-arm.c:3174
msgid "invalid register mask"
msgstr ""
-#: config/tc-arm.c:3180
+#: config/tc-arm.c:3233
msgid "r15 not allowed as base register"
msgstr ""
-#: config/tc-arm.c:3248 config/tc-arm.c:3262
+#: config/tc-arm.c:3301 config/tc-arm.c:3315
msgid "r15 not allowed in swap"
msgstr ""
-#: config/tc-arm.c:3615 config/tc-v850.c:1921 config/tc-v850.c:1942
+#: config/tc-arm.c:3668 config/tc-v850.c:1922 config/tc-v850.c:1943
msgid "constant expression expected"
msgstr ""
-#: config/tc-arm.c:3621
+#: config/tc-arm.c:3674
msgid "Constant value required for number of registers"
msgstr ""
-#: config/tc-arm.c:3629
+#: config/tc-arm.c:3682
msgid "number of registers must be in the range [1:4]"
msgstr ""
-#: config/tc-arm.c:3689
+#: config/tc-arm.c:3742
msgid "R15 not allowed as base register with write-back"
msgstr ""
-#: config/tc-arm.c:3936
+#: config/tc-arm.c:3989
msgid "lo register required"
msgstr ""
-#: config/tc-arm.c:3944
+#: config/tc-arm.c:3997
msgid "hi register required"
msgstr ""
-#: config/tc-arm.c:4013
+#: config/tc-arm.c:4066
msgid "dest and source1 must be the same register"
msgstr ""
-#: config/tc-arm.c:4020
+#: config/tc-arm.c:4073
msgid "subtract valid only on lo regs"
msgstr ""
-#: config/tc-arm.c:4044
+#: config/tc-arm.c:4097
msgid "invalid Hi register with immediate"
msgstr ""
-#: config/tc-arm.c:4071 config/tc-arm.c:4104 config/tc-arm.c:4114
+#: config/tc-arm.c:4124 config/tc-arm.c:4157 config/tc-arm.c:4167
msgid "immediate value out of range"
msgstr ""
-#: config/tc-arm.c:4082
+#: config/tc-arm.c:4135
msgid "invalid immediate value for stack adjust"
msgstr ""
-#: config/tc-arm.c:4093
+#: config/tc-arm.c:4146
msgid "invalid immediate for address calculation"
msgstr ""
-#: config/tc-arm.c:4180
+#: config/tc-arm.c:4233
msgid "source1 and dest must be same register"
msgstr ""
-#: config/tc-arm.c:4215
+#: config/tc-arm.c:4268
msgid "Invalid immediate for shift"
msgstr ""
-#: config/tc-arm.c:4294
+#: config/tc-arm.c:4347
msgid "only lo regs allowed with immediate"
msgstr ""
-#: config/tc-arm.c:4313
+#: config/tc-arm.c:4366
msgid "invalid immediate"
msgstr ""
-#: config/tc-arm.c:4367
+#: config/tc-arm.c:4420
msgid "expected ']'"
msgstr ""
-#: config/tc-arm.c:4433
+#: config/tc-arm.c:4486
msgid "byte or halfword not valid for base register"
msgstr ""
-#: config/tc-arm.c:4438
+#: config/tc-arm.c:4491
msgid "R15 based store not allowed"
msgstr ""
-#: config/tc-arm.c:4443
+#: config/tc-arm.c:4496
msgid "Invalid base register for register offset"
msgstr ""
-#: config/tc-arm.c:4461
+#: config/tc-arm.c:4514
msgid "invalid offset"
msgstr ""
-#: config/tc-arm.c:4472
+#: config/tc-arm.c:4525
msgid "invalid base register in load/store"
msgstr ""
-#: config/tc-arm.c:4496
+#: config/tc-arm.c:4549
msgid "Invalid offset"
msgstr ""
-#: config/tc-arm.c:4570
+#: config/tc-arm.c:4623
msgid "dest and source1 one must be the same register"
msgstr ""
-#: config/tc-arm.c:4578
+#: config/tc-arm.c:4631
msgid "Rs and Rd must be different in MUL"
msgstr ""
-#: config/tc-arm.c:4722
+#: config/tc-arm.c:4775
msgid ""
"Inserted missing '!': load/store multiple always writes back base register"
msgstr ""
-#: config/tc-arm.c:4738 config/tc-arm.c:4838
+#: config/tc-arm.c:4791 config/tc-arm.c:4891
msgid "Expression too complex"
msgstr ""
-#: config/tc-arm.c:4744
+#: config/tc-arm.c:4797
msgid "only lo-regs valid in load/store multiple"
msgstr ""
-#: config/tc-arm.c:4790
+#: config/tc-arm.c:4843
msgid "Syntax: ldrs[b] Rd, [Rb, Ro]"
msgstr ""
-#: config/tc-arm.c:4854
+#: config/tc-arm.c:4907
msgid "invalid register list to push/pop instruction"
msgstr ""
-#: config/tc-arm.c:4996
+#: config/tc-arm.c:5049
msgid "Virtual memory exhausted"
msgstr ""
-#: config/tc-arm.c:5394
+#: config/tc-arm.c:5421
#, c-format
msgid "invalid constant (%lx) after fixup"
msgstr ""
-#: config/tc-arm.c:5428
+#: config/tc-arm.c:5455
#, c-format
msgid "Unable to compute ADRL instructions for PC offset of 0x%x"
msgstr ""
-#: config/tc-arm.c:5456
+#: config/tc-arm.c:5483
#, c-format
msgid "bad immediate value for offset (%ld)"
msgstr ""
-#: config/tc-arm.c:5477 config/tc-arm.c:5499
+#: config/tc-arm.c:5504 config/tc-arm.c:5526
msgid "invalid literal constant: pool needs to be closer"
msgstr ""
-#: config/tc-arm.c:5479
+#: config/tc-arm.c:5506
#, c-format
msgid "bad immediate value for half-word offset (%ld)"
msgstr ""
-#: config/tc-arm.c:5516
+#: config/tc-arm.c:5543
msgid "shift expression is too large"
msgstr ""
-#: config/tc-arm.c:5534 config/tc-arm.c:5543
+#: config/tc-arm.c:5561 config/tc-arm.c:5570
msgid "Invalid swi expression"
msgstr ""
-#: config/tc-arm.c:5553
+#: config/tc-arm.c:5580
msgid "Invalid expression in load/store multiple"
msgstr ""
-#: config/tc-arm.c:5605
+#: config/tc-arm.c:5632
msgid "gas can't handle same-section branch dest >= 0x04000000"
msgstr ""
-#: config/tc-arm.c:5614
+#: config/tc-arm.c:5641
msgid "out of range branch"
msgstr ""
-#: config/tc-arm.c:5631 config/tc-arm.c:5647 config/tc-mips.c:9790
+#: config/tc-arm.c:5674 config/tc-arm.c:5690 config/tc-mips.c:9806
msgid "Branch out of range"
msgstr ""
-#: config/tc-arm.c:5669
+#: config/tc-arm.c:5713
msgid "Branch with link out of range"
msgstr ""
-#: config/tc-arm.c:5736
+#: config/tc-arm.c:5780
msgid "Illegal value for co-processor offset"
msgstr ""
-#: config/tc-arm.c:5759
+#: config/tc-arm.c:5803
#, c-format
msgid "Invalid offset, target not word aligned (0x%08X)"
msgstr ""
-#: config/tc-arm.c:5764 config/tc-arm.c:5773 config/tc-arm.c:5780
-#: config/tc-arm.c:5787 config/tc-arm.c:5794
+#: config/tc-arm.c:5808 config/tc-arm.c:5817 config/tc-arm.c:5824
+#: config/tc-arm.c:5831 config/tc-arm.c:5838
#, c-format
msgid "Invalid offset, value too big (0x%08X)"
msgstr ""
-#: config/tc-arm.c:5831
+#: config/tc-arm.c:5875
msgid "Invalid immediate for stack address calculation"
msgstr ""
-#: config/tc-arm.c:5840
+#: config/tc-arm.c:5884
#, c-format
msgid "Invalid immediate for address calculation (value = 0x%08lX)"
msgstr ""
-#: config/tc-arm.c:5850
+#: config/tc-arm.c:5894
msgid "Invalid 8bit immediate"
msgstr ""
-#: config/tc-arm.c:5858
+#: config/tc-arm.c:5902
msgid "Invalid 3bit immediate"
msgstr ""
-#: config/tc-arm.c:5874
+#: config/tc-arm.c:5918
#, c-format
msgid "Invalid immediate: %ld is too large"
msgstr ""
-#: config/tc-arm.c:5889
+#: config/tc-arm.c:5933
#, c-format
msgid "Illegal Thumb shift value: %ld"
msgstr ""
-#: config/tc-arm.c:5903
+#: config/tc-arm.c:5947
#, c-format
msgid "Bad relocation fixup type (%d)"
msgstr ""
-#: config/tc-arm.c:5973
+#: config/tc-arm.c:6019
msgid "Literal referenced across section boundary (Implicit dump?)"
msgstr ""
-#: config/tc-arm.c:5986
+#: config/tc-arm.c:6032
#, c-format
msgid "Internal_relocation (type %d) not fixed up (IMMEDIATE)"
msgstr ""
-#: config/tc-arm.c:5992
+#: config/tc-arm.c:6038
msgid "ADRL used for a symbol not defined in the same file"
msgstr ""
-#: config/tc-arm.c:5998
+#: config/tc-arm.c:6044
#, c-format
msgid "Internal_relocation (type %d) not fixed up (OFFSET_IMM)"
msgstr ""
-#: config/tc-arm.c:6018 config/tc-mcore.c:2110 config/tc-ns32k.c:2283
+#: config/tc-arm.c:6064 config/tc-mcore.c:2110 config/tc-ns32k.c:2283
msgid "<unknown>"
msgstr ""
-#: config/tc-arm.c:6021
+#: config/tc-arm.c:6067
#, c-format
msgid "Can not represent %s relocation in this object file format (%d)"
msgstr ""
-#: config/tc-arm.c:6042 config/tc-mips.c:11281 config/tc-sh.c:2866
+#: config/tc-arm.c:6088 config/tc-mips.c:11302 config/tc-sh.c:2953
#, c-format
msgid "Can not represent %s relocation in this object file format"
msgstr ""
-#: config/tc-arm.c:6060
+#: config/tc-arm.c:6106
msgid "md_estimate_size_before_relax\n"
msgstr ""
-#: config/tc-arm.c:6135
+#: config/tc-arm.c:6181
#, c-format
msgid "No operator -- statement `%s'\n"
msgstr ""
-#: config/tc-arm.c:6153
+#: config/tc-arm.c:6199
msgid "selected processor does not support this opcode"
msgstr ""
-#: config/tc-arm.c:6197
+#: config/tc-arm.c:6245
#, c-format
msgid "Opcode `%s' must have suffix from list: <%s>"
msgstr ""
-#: config/tc-arm.c:6227
+#: config/tc-arm.c:6275
msgid "Warning: Use of the 'nv' conditional is deprecated\n"
msgstr ""
-#: config/tc-arm.c:6244
+#: config/tc-arm.c:6292
#, c-format
msgid "Opcode `%s' is unconditional\n"
msgstr ""
-#: config/tc-arm.c:6269
+#: config/tc-arm.c:6317
#, c-format
msgid "Opcode `%s' must have suffix from <%s>\n"
msgstr ""
-#: config/tc-arm.c:6355
+#: config/tc-arm.c:6403
#, c-format
msgid "register '%s' does not exist\n"
msgstr ""
-#: config/tc-arm.c:6360
+#: config/tc-arm.c:6408
#, c-format
msgid "ignoring redefinition of register alias '%s'"
msgstr ""
-#: config/tc-arm.c:6366
+#: config/tc-arm.c:6414
#, c-format
msgid ""
"ignoring redefinition of register alias '%s' to non-existant register '%s'"
msgstr ""
-#: config/tc-arm.c:6370
+#: config/tc-arm.c:6418
msgid "ignoring incomplete .req pseuso op"
msgstr ""
-#: config/tc-arm.c:6550
+#: config/tc-arm.c:6598
#, c-format
msgid "Unrecognised APCS switch -m%s"
msgstr ""
-#: config/tc-arm.c:6693 config/tc-arm.c:6706 config/tc-arm.c:6719
-#: config/tc-arm.c:6732 config/tc-arm.c:6738
+#: config/tc-arm.c:6741 config/tc-arm.c:6754 config/tc-arm.c:6767
+#: config/tc-arm.c:6779 config/tc-arm.c:6785
#, c-format
msgid "Invalid architecture variant -m%s"
msgstr ""
-#: config/tc-arm.c:6745
+#: config/tc-arm.c:6792
#, c-format
msgid "Invalid processor variant -m%s"
msgstr ""
-#: config/tc-arm.c:6768
+#: config/tc-arm.c:6815
msgid ""
" ARM Specific Assembler Options:\n"
" -m[arm][<processor name>] select processor variant\n"
@@ -2045,7 +2069,7 @@ msgid ""
" -k generate PIC code.\n"
msgstr ""
-#: config/tc-arm.c:6780
+#: config/tc-arm.c:6827
msgid ""
" -mapcs-32, -mapcs-26 specify which ARM Procedure Calling Standard to "
"use\n"
@@ -2053,120 +2077,255 @@ msgid ""
" -mapcs-reentrant the code is position independent/reentrant\n"
msgstr ""
-#: config/tc-arm.c:6786
+#: config/tc-arm.c:6833
msgid " -moabi support the old ELF ABI\n"
msgstr ""
-#: config/tc-arm.c:6790
+#: config/tc-arm.c:6837
msgid ""
" -EB assemble code for a big endian cpu\n"
" -EL assemble code for a little endian cpu\n"
msgstr ""
-#: config/tc-arm.c:6939
+#: config/tc-arm.c:6987
#, c-format
msgid "%s: unexpected function type: %d"
msgstr ""
-#: config/tc-d10v.c:228
+#: config/tc-avr.c:204
+msgid ""
+"AVR options:\n"
+" -mmcu=[avr-name] select microcontroller variant\n"
+" [avr-name] can be:\n"
+" avr1 - AT90S1200\n"
+" avr2 - AT90S2xxx, AT90S4xxx, AT90S85xx, ATtiny22\n"
+" avr3 - ATmega103 or ATmega603\n"
+" avr4 - ATmega161\n"
+" or immediate microcontroller name.\n"
+msgstr ""
+
+#: config/tc-avr.c:246
+#, c-format
+msgid "unknown MCU: %s\n"
+msgstr ""
+
+#: config/tc-avr.c:250
+#, c-format
+msgid "redefinition of mcu type `%s'"
+msgstr ""
+
+#: config/tc-avr.c:352
+msgid "constant value required"
+msgstr ""
+
+#: config/tc-avr.c:355
+#, c-format
+msgid "number must be less than %d"
+msgstr ""
+
+#: config/tc-avr.c:406
+msgid "`,' required"
+msgstr ""
+
+#: config/tc-avr.c:427
+msgid "undefined combination of operands"
+msgstr ""
+
+#: config/tc-avr.c:436
+msgid "skipping two-word instruction"
+msgstr ""
+
+#: config/tc-avr.c:501
+msgid "register r16-r23 required"
+msgstr ""
+
+#: config/tc-avr.c:507
+msgid "register number above 15 required"
+msgstr ""
+
+#: config/tc-avr.c:513
+msgid "even register number required"
+msgstr ""
+
+#: config/tc-avr.c:520
+msgid "register r24,r26,r28 or r30 required"
+msgstr ""
+
+#: config/tc-avr.c:526
+msgid "register name or number from 0 to 31 required"
+msgstr ""
+
+#: config/tc-avr.c:544
+msgid "pointer register (X,Y or Z) required"
+msgstr ""
+
+#: config/tc-avr.c:551
+msgid "cannot both predecrement and postincrement"
+msgstr ""
+
+#: config/tc-avr.c:559
+msgid "addressing mode not supported"
+msgstr ""
+
+#: config/tc-avr.c:566
+msgid "can't predecrement"
+msgstr ""
+
+#: config/tc-avr.c:569
+msgid "pointer register Z required"
+msgstr ""
+
+#: config/tc-avr.c:586
+msgid "pointer register (Y or Z) required"
+msgstr ""
+
+#: config/tc-avr.c:695
+#, c-format
+msgid "unknown constraint `%c'"
+msgstr ""
+
+#: config/tc-avr.c:800 config/tc-avr.c:814 config/tc-avr.c:919
+#, c-format
+msgid "odd address operand: %ld"
+msgstr ""
+
+#: config/tc-avr.c:806 config/tc-avr.c:830
+#, c-format
+msgid "operand out of range: %ld"
+msgstr ""
+
+#: config/tc-avr.c:928 config/tc-d10v.c:1601 config/tc-d30v.c:1952
+#, c-format
+msgid "line %d: unknown relocation type: 0x%x"
+msgstr ""
+
+#: config/tc-avr.c:942
+msgid "only constant expression allowed"
+msgstr ""
+
+#: config/tc-avr.c:981 config/tc-d10v.c:1469 config/tc-d30v.c:1771
+#: config/tc-mn10200.c:1233 config/tc-mn10300.c:1788 config/tc-ppc.c:5153
+#: config/tc-v850.c:2258
+#, c-format
+msgid "reloc %d not supported by object file format"
+msgstr ""
+
+#: config/tc-avr.c:1006 config/tc-d10v.c:1085 config/tc-d10v.c:1099
+#: config/tc-h8300.c:1275 config/tc-h8500.c:1121 config/tc-mcore.c:989
+#: config/tc-pj.c:274 config/tc-sh.c:1437 config/tc-z8k.c:1220
+msgid "can't find opcode "
+msgstr ""
+
+#: config/tc-avr.c:1023
+#, c-format
+msgid "illegal opcode %s for mcu %s"
+msgstr ""
+
+#: config/tc-avr.c:1031
+msgid "garbage at end of line"
+msgstr ""
+
+#: config/tc-avr.c:1089
+msgid "illegal expression"
+msgstr ""
+
+#: config/tc-avr.c:1111 config/tc-avr.c:1160
+msgid "`)' required"
+msgstr ""
+
+#: config/tc-avr.c:1185 config/tc-avr.c:1192
+#, c-format
+msgid "illegal %srelocation size: %d"
+msgstr ""
+
+#: config/tc-d10v.c:235
msgid ""
"D10V options:\n"
"-O optimize. Will do some operations in parallel.\n"
msgstr ""
-#: config/tc-d10v.c:547 config/tc-d10v.c:629 config/tc-d30v.c:652
+#: config/tc-d10v.c:554 config/tc-d10v.c:636 config/tc-d30v.c:652
#, c-format
msgid "operand out of range: %d"
msgstr ""
-#: config/tc-d10v.c:690
+#: config/tc-d10v.c:697
msgid "Instruction must be executed in parallel with another instruction."
msgstr ""
-#: config/tc-d10v.c:742
+#: config/tc-d10v.c:752
msgid "Instruction must be executed in parallel"
msgstr ""
-#: config/tc-d10v.c:745
+#: config/tc-d10v.c:755
msgid "Long instructions may not be combined."
msgstr ""
-#: config/tc-d10v.c:785
+#: config/tc-d10v.c:797
msgid "One of these instructions may not be executed in parallel."
msgstr ""
-#: config/tc-d10v.c:790 config/tc-d30v.c:860
+#: config/tc-d10v.c:801 config/tc-d30v.c:859
msgid "Two IU instructions may not be executed in parallel"
msgstr ""
-#: config/tc-d10v.c:792 config/tc-d10v.c:800 config/tc-d10v.c:815
-#: config/tc-d10v.c:828 config/tc-d30v.c:861 config/tc-d30v.c:870
+#: config/tc-d10v.c:803 config/tc-d10v.c:811 config/tc-d10v.c:829
+#: config/tc-d10v.c:847 config/tc-d30v.c:860 config/tc-d30v.c:869
msgid "Swapping instruction order"
msgstr ""
-#: config/tc-d10v.c:798 config/tc-d30v.c:867
+#: config/tc-d10v.c:809 config/tc-d30v.c:866
msgid "Two MU instructions may not be executed in parallel"
msgstr ""
-#: config/tc-d10v.c:819 config/tc-d30v.c:886
+#: config/tc-d10v.c:833 config/tc-d30v.c:885
msgid "IU instruction may not be in the left container"
msgstr ""
-#: config/tc-d10v.c:832 config/tc-d30v.c:899
-msgid "MU instruction may not be in the right container"
+#: config/tc-d10v.c:835 config/tc-d10v.c:853
+msgid ""
+"Instruction in R container is squashed by flow control instruction in L "
+"container."
msgstr ""
-#: config/tc-d10v.c:836 config/tc-d30v.c:907
-msgid "unknown execution type passed to write_2_short()"
+#: config/tc-d10v.c:851 config/tc-d30v.c:898
+msgid "MU instruction may not be in the right container"
msgstr ""
-#: config/tc-d10v.c:1049 config/tc-d10v.c:1063 config/tc-h8300.c:1279
-#: config/tc-h8500.c:1122 config/tc-mcore.c:989 config/tc-pj.c:274
-#: config/tc-sh.c:1355 config/tc-z8k.c:1223
-msgid "can't find opcode "
+#: config/tc-d10v.c:860 config/tc-d30v.c:906
+msgid "unknown execution type passed to write_2_short()"
msgstr ""
-#: config/tc-d10v.c:1076 config/tc-d10v.c:1094 config/tc-d30v.c:1385
+#: config/tc-d10v.c:1112 config/tc-d10v.c:1130 config/tc-d30v.c:1384
msgid "Unable to mix instructions as specified"
msgstr ""
-#: config/tc-d10v.c:1142 config/tc-d30v.c:1520
+#: config/tc-d10v.c:1178 config/tc-d30v.c:1519
#, c-format
msgid "unknown opcode: %s"
msgstr ""
-#: config/tc-d10v.c:1223 config/tc-d10v.c:1369 config/tc-tic80.c:537
+#: config/tc-d10v.c:1259 config/tc-d10v.c:1426 config/tc-tic80.c:537
msgid "bad opcode or operands"
msgstr ""
-#: config/tc-d10v.c:1272 config/tc-m68k.c:4232
+#: config/tc-d10v.c:1329 config/tc-m68k.c:4232
msgid "value out of range"
msgstr ""
-#: config/tc-d10v.c:1344
+#: config/tc-d10v.c:1401
msgid "illegal operand - register name found where none expected"
msgstr ""
-#: config/tc-d10v.c:1380 config/tc-tic80.c:548
+#: config/tc-d10v.c:1437 config/tc-tic80.c:548
msgid "Register number must be EVEN"
msgstr ""
-#: config/tc-d10v.c:1412 config/tc-d30v.c:1772 config/tc-mn10200.c:1233
-#: config/tc-mn10300.c:1764 config/tc-ppc.c:5020 config/tc-v850.c:2255
-#, c-format
-msgid "reloc %d not supported by object file format"
-msgstr ""
-
-#: config/tc-d10v.c:1525
+#: config/tc-d10v.c:1582
#, c-format
msgid "line %d: rep or repi must include at least 4 instructions"
msgstr ""
-#: config/tc-d10v.c:1544 config/tc-d30v.c:1953
-#, c-format
-msgid "line %d: unknown relocation type: 0x%x"
-msgstr ""
-
#: config/tc-d30v.c:191
#, c-format
msgid "Register name %s conflicts with symbol of the same name"
@@ -2206,91 +2365,91 @@ msgstr ""
msgid "parallel"
msgstr ""
-#: config/tc-d30v.c:856
+#: config/tc-d30v.c:855
msgid "Instructions may not be executed in parallel"
msgstr ""
-#: config/tc-d30v.c:869 config/tc-d30v.c:876 config/tc-d30v.c:892
-#: config/tc-d30v.c:901
+#: config/tc-d30v.c:868 config/tc-d30v.c:875 config/tc-d30v.c:891
+#: config/tc-d30v.c:900
#, c-format
msgid "Executing %s in IU may not work"
msgstr ""
-#: config/tc-d30v.c:888
+#: config/tc-d30v.c:887
#, c-format
msgid "special left instruction `%s' kills instruction `%s' in right container"
msgstr ""
-#: config/tc-d30v.c:1267 config/tc-d30v.c:1284
+#: config/tc-d30v.c:1266 config/tc-d30v.c:1283
msgid "Cannot assemble instruction"
msgstr ""
-#: config/tc-d30v.c:1269
+#: config/tc-d30v.c:1268
msgid "First opcode is long. Unable to mix instructions as specified."
msgstr ""
-#: config/tc-d30v.c:1337
+#: config/tc-d30v.c:1336
msgid "word of NOPs added between word multiply and load"
msgstr ""
-#: config/tc-d30v.c:1339
+#: config/tc-d30v.c:1338
msgid "word of NOPs added between word multiply and 16-bit multiply"
msgstr ""
-#: config/tc-d30v.c:1369
+#: config/tc-d30v.c:1368
msgid "Instruction uses long version, so it cannot be mixed as specified"
msgstr ""
-#: config/tc-d30v.c:1453 config/tc-d30v.c:1490
+#: config/tc-d30v.c:1452 config/tc-d30v.c:1489
#, c-format
msgid "unknown condition code: %s"
msgstr ""
-#: config/tc-d30v.c:1483
+#: config/tc-d30v.c:1482
#, c-format
msgid "cmpu doesn't support condition code %s"
msgstr ""
-#: config/tc-d30v.c:1531
+#: config/tc-d30v.c:1530
#, c-format
msgid "operands for opcode `%s' do not match any valid format"
msgstr ""
-#: config/tc-d30v.c:1744
+#: config/tc-d30v.c:1743
msgid "Odd numbered register used as target of multi-register instruction"
msgstr ""
-#: config/tc-d30v.c:1842
+#: config/tc-d30v.c:1841
#, c-format
msgid "line %d: unable to place address of symbol '%s' into a byte"
msgstr ""
-#: config/tc-d30v.c:1845
+#: config/tc-d30v.c:1844
#, c-format
msgid "line %d: unable to place value %x into a byte"
msgstr ""
-#: config/tc-d30v.c:1853
+#: config/tc-d30v.c:1852
#, c-format
msgid "line %d: unable to place address of symbol '%s' into a short"
msgstr ""
-#: config/tc-d30v.c:1856
+#: config/tc-d30v.c:1855
#, c-format
msgid "line %d: unable to place value %x into a short"
msgstr ""
-#: config/tc-d30v.c:1864
+#: config/tc-d30v.c:1863
#, c-format
msgid "line %d: unable to place address of symbol '%s' into a quad"
msgstr ""
-#: config/tc-d30v.c:2034
+#: config/tc-d30v.c:2033
#, c-format
msgid "value too large to fit in %d bits"
msgstr ""
-#: config/tc-d30v.c:2178
+#: config/tc-d30v.c:2177
#, c-format
msgid "Alignment too large: %d assumed"
msgstr ""
@@ -2312,33 +2471,33 @@ msgstr ""
msgid "Bad call to md_atof()"
msgstr ""
-#: config/tc-h8300.c:254 config/tc-h8300.c:262
+#: config/tc-h8300.c:253 config/tc-h8300.c:261
msgid "Reg not valid for H8/300"
msgstr ""
-#: config/tc-h8300.c:423 config/tc-h8300.c:426 config/tc-h8300.c:429
-#: config/tc-h8300.c:433
+#: config/tc-h8300.c:422 config/tc-h8300.c:425 config/tc-h8300.c:428
+#: config/tc-h8300.c:432
msgid "Invalid register list for ldm/stm\n"
msgstr ""
-#: config/tc-h8300.c:490 config/tc-h8300.c:553 config/tc-h8300.c:560
+#: config/tc-h8300.c:489 config/tc-h8300.c:552 config/tc-h8300.c:559
msgid "Wrong size pointer register for architecture."
msgstr ""
-#: config/tc-h8300.c:518 config/tc-h8300.c:527 config/tc-h8300.c:537
+#: config/tc-h8300.c:517 config/tc-h8300.c:526 config/tc-h8300.c:536
msgid "expected @(exp, reg16)"
msgstr ""
-#: config/tc-h8300.c:617
+#: config/tc-h8300.c:616
msgid "expect :8 or :16 here"
msgstr ""
-#: config/tc-h8300.c:823
+#: config/tc-h8300.c:822
#, c-format
msgid "operand %s0x%lx out of range."
msgstr ""
-#: config/tc-h8300.c:910
+#: config/tc-h8300.c:914
msgid "Can't work out size of operand.\n"
msgstr ""
@@ -2355,63 +2514,63 @@ msgstr ""
msgid "#4 not valid on H8/300."
msgstr ""
-#: config/tc-h8300.c:1112 config/tc-h8300.c:1150
+#: config/tc-h8300.c:1112 config/tc-h8300.c:1145
#, c-format
msgid "branch operand has odd offset (%lx)\n"
msgstr ""
-#: config/tc-h8300.c:1191
+#: config/tc-h8300.c:1187
msgid "destination operand must be 16 bit register"
msgstr ""
-#: config/tc-h8300.c:1201
+#: config/tc-h8300.c:1197
msgid "source operand must be 8 bit register"
msgstr ""
-#: config/tc-h8300.c:1209
+#: config/tc-h8300.c:1205
msgid "destination operand must be 16bit absolute address"
msgstr ""
-#: config/tc-h8300.c:1216
+#: config/tc-h8300.c:1212
msgid "destination operand must be 8 bit register"
msgstr ""
-#: config/tc-h8300.c:1225
+#: config/tc-h8300.c:1221
msgid "source operand must be 16bit absolute address"
msgstr ""
-#: config/tc-h8300.c:1233
+#: config/tc-h8300.c:1229
msgid "invalid operands"
msgstr ""
-#: config/tc-h8300.c:1290 config/tc-h8500.c:1129 config/tc-mips.c:7966
-#: config/tc-sh.c:1584 config/tc-w65.c:759 config/tc-z8k.c:1235
+#: config/tc-h8300.c:1286 config/tc-h8500.c:1128 config/tc-mips.c:7966
+#: config/tc-sh.c:1666 config/tc-w65.c:759 config/tc-z8k.c:1232
msgid "unknown opcode"
msgstr ""
-#: config/tc-h8300.c:1336
+#: config/tc-h8300.c:1332
msgid "mismatch between opcode size and operand size"
msgstr ""
-#: config/tc-h8300.c:1348 config/tc-h8500.c:1157 config/tc-sh.c:1698
-#: config/tc-w65.c:791 config/tc-z8k.c:1290
+#: config/tc-h8300.c:1344 config/tc-h8500.c:1156 config/tc-sh.c:1780
+#: config/tc-w65.c:791 config/tc-z8k.c:1287
msgid "call to tc_crawl_symbol_chain \n"
msgstr ""
-#: config/tc-h8300.c:1362 config/tc-h8500.c:1171 config/tc-sh.c:1705
-#: config/tc-w65.c:805 config/tc-z8k.c:1304
+#: config/tc-h8300.c:1358 config/tc-h8500.c:1170 config/tc-sh.c:1787
+#: config/tc-w65.c:805 config/tc-z8k.c:1301
msgid "call to tc_headers_hook \n"
msgstr ""
-#: config/tc-h8300.c:1451 config/tc-h8500.c:1260 config/tc-z8k.c:1415
+#: config/tc-h8300.c:1447 config/tc-h8500.c:1259 config/tc-z8k.c:1412
msgid "call to tc_aout_fix_to_chars \n"
msgstr ""
-#: config/tc-h8300.c:1461 config/tc-z8k.c:1425
+#: config/tc-h8300.c:1457 config/tc-z8k.c:1422
msgid "call to md_convert_frag \n"
msgstr ""
-#: config/tc-h8300.c:1506 config/tc-z8k.c:1500
+#: config/tc-h8300.c:1502 config/tc-z8k.c:1497
msgid "call tomd_estimate_size_before_relax \n"
msgstr ""
@@ -2443,713 +2602,731 @@ msgstr ""
msgid "@Rn needs word register"
msgstr ""
-#: config/tc-h8500.c:845 config/tc-sh.c:1149
+#: config/tc-h8500.c:845 config/tc-sh.c:1160
#, c-format
msgid "unhandled %d\n"
msgstr ""
-#: config/tc-h8500.c:873 config/tc-sh.c:1173
+#: config/tc-h8500.c:873 config/tc-sh.c:1184
#, c-format
msgid "operand must be absolute in range %d..%d"
msgstr ""
-#: config/tc-h8500.c:963 config/tc-sh.c:1299
+#: config/tc-h8500.c:963 config/tc-sh.c:1381
#, c-format
msgid "failed for %d\n"
msgstr ""
-#: config/tc-h8500.c:1145 config/tc-sh.c:1394 config/tc-sh.c:1632
+#: config/tc-h8500.c:1144 config/tc-sh.c:1476 config/tc-sh.c:1714
#: config/tc-w65.c:779
msgid "invalid operands for opcode"
msgstr ""
-#: config/tc-hppa.c:1140
+#: config/tc-hppa.c:1154
msgid "Missing .exit\n"
msgstr ""
-#: config/tc-hppa.c:1143
+#: config/tc-hppa.c:1157
msgid "Missing .procend\n"
msgstr ""
-#: config/tc-hppa.c:1322
+#: config/tc-hppa.c:1336
msgid "Invalid field selector. Assuming F%%."
msgstr ""
-#: config/tc-hppa.c:1353
+#: config/tc-hppa.c:1367
msgid "-R option not supported on this target."
msgstr ""
-#: config/tc-hppa.c:1369 config/tc-sparc.c:746 config/tc-sparc.c:781
+#: config/tc-hppa.c:1383 config/tc-sparc.c:763 config/tc-sparc.c:798
#, c-format
msgid "Internal error: can't hash `%s': %s\n"
msgstr ""
-#: config/tc-hppa.c:1377 config/tc-i860.c:191
+#: config/tc-hppa.c:1391 config/tc-i860.c:191
#, c-format
msgid "internal error: losing opcode: `%s' \"%s\"\n"
msgstr ""
-#: config/tc-hppa.c:1446 config/tc-hppa.c:6873 config/tc-hppa.c:6928
+#: config/tc-hppa.c:1460 config/tc-hppa.c:6891 config/tc-hppa.c:6946
msgid "Missing function name for .PROC (corrupted label chain)"
msgstr ""
-#: config/tc-hppa.c:1449 config/tc-hppa.c:6931
+#: config/tc-hppa.c:1463 config/tc-hppa.c:6949
msgid "Missing function name for .PROC"
msgstr ""
-#: config/tc-hppa.c:1570 config/tc-hppa.c:4715
+#: config/tc-hppa.c:1584 config/tc-hppa.c:4784
msgid "could not update architecture and machine"
msgstr ""
-#: config/tc-hppa.c:1783
+#: config/tc-hppa.c:1797
msgid "Invalid Indexed Load Completer."
msgstr ""
-#: config/tc-hppa.c:1788
+#: config/tc-hppa.c:1802
msgid "Invalid Indexed Load Completer Syntax."
msgstr ""
-#: config/tc-hppa.c:1824
+#: config/tc-hppa.c:1838
msgid "Invalid Short Load/Store Completer."
msgstr ""
-#: config/tc-hppa.c:1883 config/tc-hppa.c:1888
+#: config/tc-hppa.c:1897 config/tc-hppa.c:1902
msgid "Invalid Store Bytes Short Completer"
msgstr ""
-#: config/tc-hppa.c:2199 config/tc-hppa.c:2205
+#: config/tc-hppa.c:2213 config/tc-hppa.c:2219
msgid "Invalid left/right combination completer"
msgstr ""
-#: config/tc-hppa.c:2254 config/tc-hppa.c:2261
+#: config/tc-hppa.c:2268 config/tc-hppa.c:2275
msgid "Invalid permutation completer"
msgstr ""
-#: config/tc-hppa.c:2362
+#: config/tc-hppa.c:2376
#, c-format
msgid "Invalid Add Condition: %s"
msgstr ""
-#: config/tc-hppa.c:2373 config/tc-hppa.c:2383
+#: config/tc-hppa.c:2387 config/tc-hppa.c:2397
#, c-format
msgid "Invalid Add and Branch Condition: %c"
msgstr ""
-#: config/tc-hppa.c:2404
+#: config/tc-hppa.c:2418
msgid "Invalid Compare/Subtract Condition"
msgstr ""
-#: config/tc-hppa.c:2444
+#: config/tc-hppa.c:2458
#, c-format
msgid "Invalid Bit Branch Condition: %c"
msgstr ""
-#: config/tc-hppa.c:2530
+#: config/tc-hppa.c:2544
#, c-format
msgid "Invalid Compare/Subtract Condition: %s"
msgstr ""
-#: config/tc-hppa.c:2542
+#: config/tc-hppa.c:2556
#, c-format
msgid "Invalid Compare/Subtract Condition: %c"
msgstr ""
-#: config/tc-hppa.c:2557
+#: config/tc-hppa.c:2571
msgid "Invalid Compare and Branch Condition."
msgstr ""
-#: config/tc-hppa.c:2655
+#: config/tc-hppa.c:2669
msgid "Invalid Logical Instruction Condition."
msgstr ""
-#: config/tc-hppa.c:2711
+#: config/tc-hppa.c:2725
msgid "Invalid Shift/Extract/Deposit Condition."
msgstr ""
-#: config/tc-hppa.c:2823
+#: config/tc-hppa.c:2837
msgid "Invalid Unit Instruction Condition."
msgstr ""
-#: config/tc-hppa.c:3096 config/tc-hppa.c:3129 config/tc-hppa.c:3166
-#: config/tc-hppa.c:3205
+#: config/tc-hppa.c:3185 config/tc-hppa.c:3216 config/tc-hppa.c:3249
+#: config/tc-hppa.c:3281
msgid "Branch to unaligned address"
msgstr ""
-#: config/tc-hppa.c:3389
+#: config/tc-hppa.c:3463
msgid "Invalid SFU identifier"
msgstr ""
-#: config/tc-hppa.c:3439
+#: config/tc-hppa.c:3513
msgid "Invalid COPR identifier"
msgstr ""
-#: config/tc-hppa.c:3568
+#: config/tc-hppa.c:3642
msgid "Invalid Floating Point Operand Format."
msgstr ""
-#: config/tc-hppa.c:3706 config/tc-hppa.c:3730 config/tc-hppa.c:3753
-#: config/tc-hppa.c:3776 config/tc-hppa.c:3799
+#: config/tc-hppa.c:3780 config/tc-hppa.c:3804 config/tc-hppa.c:3827
+#: config/tc-hppa.c:3850 config/tc-hppa.c:3873
msgid "Invalid register for single precision fmpyadd or fmpysub"
msgstr ""
-#: config/tc-hppa.c:3848
+#: config/tc-hppa.c:3933
#, c-format
msgid "Invalid operands %s"
msgstr ""
-#: config/tc-hppa.c:4415
+#: config/tc-hppa.c:4484
msgid "Unknown relocation encountered in md_apply_fix."
msgstr ""
-#: config/tc-hppa.c:4425
+#: config/tc-hppa.c:4494
#, c-format
msgid "no hppa_fixup entry for this fixup (fixP = 0x%x, type = 0x%x)\n"
msgstr ""
-#: config/tc-hppa.c:4567 config/tc-hppa.c:4592
+#: config/tc-hppa.c:4636 config/tc-hppa.c:4661
#, c-format
msgid "Undefined register: '%s'."
msgstr ""
-#: config/tc-hppa.c:4630
+#: config/tc-hppa.c:4699
#, c-format
msgid "Non-absolute symbol: '%s'."
msgstr ""
-#: config/tc-hppa.c:4645
+#: config/tc-hppa.c:4714
#, c-format
msgid "Undefined absolute constant: '%s'."
msgstr ""
-#: config/tc-hppa.c:4754
+#: config/tc-hppa.c:4823
#, c-format
msgid "Invalid FP Compare Condition: %s"
msgstr ""
-#: config/tc-hppa.c:4810
+#: config/tc-hppa.c:4879
#, c-format
msgid "Invalid FTEST completer: %s"
msgstr ""
-#: config/tc-hppa.c:4877 config/tc-hppa.c:4915
+#: config/tc-hppa.c:4946 config/tc-hppa.c:4984
#, c-format
msgid "Invalid FP Operand Format: %3s"
msgstr ""
-#: config/tc-hppa.c:4994
+#: config/tc-hppa.c:5063
msgid "Bad segment in expression."
msgstr ""
-#: config/tc-hppa.c:5053
+#: config/tc-hppa.c:5122
msgid "Bad segment (should be absolute)."
msgstr ""
-#: config/tc-hppa.c:5152
+#: config/tc-hppa.c:5165
#, c-format
msgid "Invalid argument location: %s\n"
msgstr ""
-#: config/tc-hppa.c:5183
+#: config/tc-hppa.c:5196
#, c-format
msgid "Invalid argument description: %d"
msgstr ""
-#: config/tc-hppa.c:5206
+#: config/tc-hppa.c:5219
#, c-format
msgid "Invalid Nullification: (%c)"
msgstr ""
-#: config/tc-hppa.c:5950
+#: config/tc-hppa.c:5961
#, c-format
msgid "Invalid .CALL argument: %s"
msgstr ""
-#: config/tc-hppa.c:6082
+#: config/tc-hppa.c:6093
msgid ".callinfo is not within a procedure definition"
msgstr ""
-#: config/tc-hppa.c:6102
+#: config/tc-hppa.c:6113
#, c-format
msgid "FRAME parameter must be a multiple of 8: %d\n"
msgstr ""
-#: config/tc-hppa.c:6121
+#: config/tc-hppa.c:6132
msgid "Value for ENTRY_GR must be in the range 3..18\n"
msgstr ""
-#: config/tc-hppa.c:6133
+#: config/tc-hppa.c:6144
msgid "Value for ENTRY_FR must be in the range 12..21\n"
msgstr ""
-#: config/tc-hppa.c:6143
+#: config/tc-hppa.c:6154
msgid "Value for ENTRY_SR must be 3\n"
msgstr ""
-#: config/tc-hppa.c:6199
+#: config/tc-hppa.c:6210
#, c-format
msgid "Invalid .CALLINFO argument: %s"
msgstr ""
-#: config/tc-hppa.c:6293
+#: config/tc-hppa.c:6304
msgid "The .ENTER pseudo-op is not supported"
msgstr ""
-#: config/tc-hppa.c:6309
+#: config/tc-hppa.c:6320
msgid "Misplaced .entry. Ignored."
msgstr ""
-#: config/tc-hppa.c:6313
+#: config/tc-hppa.c:6324
msgid "Missing .callinfo."
msgstr ""
-#: config/tc-hppa.c:6361
+#: config/tc-hppa.c:6372
msgid ".REG must use a label"
msgstr ""
-#: config/tc-hppa.c:6363
+#: config/tc-hppa.c:6374
msgid ".EQU must use a label"
msgstr ""
-#: config/tc-hppa.c:6416
+#: config/tc-hppa.c:6427
msgid ".EXIT must appear within a procedure"
msgstr ""
-#: config/tc-hppa.c:6420
+#: config/tc-hppa.c:6431
msgid "Missing .callinfo"
msgstr ""
-#: config/tc-hppa.c:6424
+#: config/tc-hppa.c:6435
msgid "No .ENTRY for this .EXIT"
msgstr ""
-#: config/tc-hppa.c:6451
+#: config/tc-hppa.c:6462
#, c-format
msgid "Cannot define export symbol: %s\n"
msgstr ""
-#: config/tc-hppa.c:6504
+#: config/tc-hppa.c:6522
#, c-format
msgid "Using ENTRY rather than CODE in export directive for %s"
msgstr ""
-#: config/tc-hppa.c:6613
+#: config/tc-hppa.c:6631
#, c-format
msgid "Undefined .EXPORT/.IMPORT argument (ignored): %s"
msgstr ""
-#: config/tc-hppa.c:6695
+#: config/tc-hppa.c:6713
msgid "Missing label name on .LABEL"
msgstr ""
-#: config/tc-hppa.c:6700
+#: config/tc-hppa.c:6718
msgid "extra .LABEL arguments ignored."
msgstr ""
-#: config/tc-hppa.c:6717
+#: config/tc-hppa.c:6735
msgid "The .LEAVE pseudo-op is not supported"
msgstr ""
-#: config/tc-hppa.c:6756
+#: config/tc-hppa.c:6774
msgid "Unrecognized .LEVEL argument\n"
msgstr ""
-#: config/tc-hppa.c:6792
+#: config/tc-hppa.c:6810
#, c-format
msgid "Cannot define static symbol: %s\n"
msgstr ""
-#: config/tc-hppa.c:6827
+#: config/tc-hppa.c:6845
msgid "Nested procedures"
msgstr ""
-#: config/tc-hppa.c:6837
+#: config/tc-hppa.c:6855
msgid "Cannot allocate unwind descriptor\n"
msgstr ""
-#: config/tc-hppa.c:6935
+#: config/tc-hppa.c:6953
msgid "misplaced .procend"
msgstr ""
-#: config/tc-hppa.c:6938
+#: config/tc-hppa.c:6956
msgid "Missing .callinfo for this procedure"
msgstr ""
-#: config/tc-hppa.c:6941
+#: config/tc-hppa.c:6959
msgid "Missing .EXIT for a .ENTRY"
msgstr ""
-#: config/tc-hppa.c:6980
+#: config/tc-hppa.c:6998
msgid "Not in a space.\n"
msgstr ""
-#: config/tc-hppa.c:6983
+#: config/tc-hppa.c:7001
msgid "Not in a subspace.\n"
msgstr ""
-#: config/tc-hppa.c:7073
+#: config/tc-hppa.c:7091
msgid "Invalid .SPACE argument"
msgstr ""
-#: config/tc-hppa.c:7121
+#: config/tc-hppa.c:7139
msgid "Can't change spaces within a procedure definition. Ignored"
msgstr ""
-#: config/tc-hppa.c:7248
+#: config/tc-hppa.c:7266
#, c-format
msgid "Undefined space: '%s' Assuming space number = 0."
msgstr ""
-#: config/tc-hppa.c:7272
+#: config/tc-hppa.c:7290
msgid "Must be in a space before changing or declaring subspaces.\n"
msgstr ""
-#: config/tc-hppa.c:7276
+#: config/tc-hppa.c:7294
msgid "Can't change subspaces within a procedure definition. Ignored"
msgstr ""
-#: config/tc-hppa.c:7311
+#: config/tc-hppa.c:7329
msgid "Parameters of an existing subspace can't be modified"
msgstr ""
-#: config/tc-hppa.c:7362
+#: config/tc-hppa.c:7380
msgid "Alignment must be a power of 2"
msgstr ""
-#: config/tc-hppa.c:7404
+#: config/tc-hppa.c:7422
msgid "FIRST not supported as a .SUBSPACE argument"
msgstr ""
-#: config/tc-hppa.c:7406
+#: config/tc-hppa.c:7424
msgid "Invalid .SUBSPACE argument"
msgstr ""
-#: config/tc-hppa.c:7589
+#: config/tc-hppa.c:7607
#, c-format
msgid "Internal error: Unable to find containing space for %s."
msgstr ""
-#: config/tc-hppa.c:7630
+#: config/tc-hppa.c:7648
#, c-format
msgid "Out of memory: could not allocate new space chain entry: %s\n"
msgstr ""
-#: config/tc-hppa.c:7716
+#: config/tc-hppa.c:7734
#, c-format
msgid "Out of memory: could not allocate new subspace chain entry: %s\n"
msgstr ""
-#: config/tc-hppa.c:8383
+#: config/tc-hppa.c:8401
#, c-format
msgid "Symbol '%s' could not be created."
msgstr ""
-#: config/tc-hppa.c:8387
+#: config/tc-hppa.c:8405
msgid "No memory for symbol name."
msgstr ""
-#: config/tc-i386.c:509
+#: config/tc-i386.c:510
+#, c-format
+msgid "%s shortened to %s"
+msgstr ""
+
+#: config/tc-i386.c:562
msgid "same type of prefix used twice"
msgstr ""
-#: config/tc-i386.c:552
+#: config/tc-i386.c:605
msgid "bad argument to syntax directive."
msgstr ""
-#: config/tc-i386.c:636 config/tc-m68k.c:3750
+#: config/tc-i386.c:647
+#, c-format
+msgid "no such architecture: `%s'"
+msgstr ""
+
+#: config/tc-i386.c:652
+msgid "missing cpu architecture"
+msgstr ""
+
+#: config/tc-i386.c:722 config/tc-m68k.c:3748
#, c-format
msgid "Internal Error: Can't hash %s: %s"
msgstr ""
-#: config/tc-i386.c:866
+#: config/tc-i386.c:952
msgid "Unknown"
msgstr ""
-#: config/tc-i386.c:914 config/tc-i386.c:4407
+#: config/tc-i386.c:1000 config/tc-i386.c:4471
#, c-format
msgid "can not do %d byte pc-relative relocation"
msgstr ""
-#: config/tc-i386.c:924 config/tc-i386.c:4421
+#: config/tc-i386.c:1010 config/tc-i386.c:4485
#, c-format
msgid "can not do %d byte relocation"
msgstr ""
-#: config/tc-i386.c:1030 config/tc-i386.c:1113
+#: config/tc-i386.c:1115 config/tc-i386.c:1198
#, c-format
-msgid "no such 386 instruction: `%s'"
+msgid "no such instruction: `%s'"
msgstr ""
-#: config/tc-i386.c:1039
+#: config/tc-i386.c:1124
#, c-format
msgid "invalid character %s in mnemonic"
msgstr ""
-#: config/tc-i386.c:1046
+#: config/tc-i386.c:1131
msgid "expecting prefix; got nothing"
msgstr ""
-#: config/tc-i386.c:1048
+#: config/tc-i386.c:1133
msgid "expecting mnemonic; got nothing"
msgstr ""
-#: config/tc-i386.c:1066
+#: config/tc-i386.c:1151
#, c-format
msgid "redundant %s prefix"
msgstr ""
-#: config/tc-i386.c:1122
+#: config/tc-i386.c:1208
+#, c-format
+msgid "`%s' is not supported on `%s'"
+msgstr ""
+
+#: config/tc-i386.c:1213
+msgid "use .code16 to ensure correct addressing mode"
+msgstr ""
+
+#: config/tc-i386.c:1221
#, c-format
msgid "expecting string instruction after `%s'"
msgstr ""
-#: config/tc-i386.c:1145
+#: config/tc-i386.c:1244
#, c-format
msgid "invalid character %s before operand %d"
msgstr ""
-#: config/tc-i386.c:1159
+#: config/tc-i386.c:1258
#, c-format
msgid "unbalanced parenthesis in operand %d."
msgstr ""
-#: config/tc-i386.c:1162
+#: config/tc-i386.c:1261
#, c-format
msgid "unbalanced brackets in operand %d."
msgstr ""
-#: config/tc-i386.c:1171
+#: config/tc-i386.c:1270
#, c-format
msgid "invalid character %s in operand %d"
msgstr ""
-#: config/tc-i386.c:1198
+#: config/tc-i386.c:1297
#, c-format
msgid "spurious operands; (%d operands/instruction max)"
msgstr ""
-#: config/tc-i386.c:1219
+#: config/tc-i386.c:1318
msgid "expecting operand after ','; got nothing"
msgstr ""
-#: config/tc-i386.c:1224
+#: config/tc-i386.c:1323
msgid "expecting operand before ','; got nothing"
msgstr ""
#. we found no match
-#: config/tc-i386.c:1464
+#: config/tc-i386.c:1563
#, c-format
msgid "suffix or operands invalid for `%s'"
msgstr ""
-#: config/tc-i386.c:1472
+#: config/tc-i386.c:1574
#, 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:1479
+#. Warn them that a data or address size prefix doesn't
+#. affect assembly of the next line of code.
+#: config/tc-i386.c:1582
#, c-format
msgid "stand-alone `%s' prefix"
msgstr ""
-#: config/tc-i386.c:1514 config/tc-i386.c:1529
+#: config/tc-i386.c:1618 config/tc-i386.c:1633
msgid "`%s' operand %d must use `%%es' segment"
msgstr ""
-#: config/tc-i386.c:1596 config/tc-i386.c:1637 config/tc-i386.c:1664
+#: config/tc-i386.c:1701 config/tc-i386.c:1743 config/tc-i386.c:1771
msgid "using `%%%s' instead of `%%%s' due to `%c' suffix"
msgstr ""
-#: config/tc-i386.c:1609 config/tc-i386.c:1626 config/tc-i386.c:1653
+#: config/tc-i386.c:1714 config/tc-i386.c:1731 config/tc-i386.c:1759
msgid "`%%%s' not allowed with `%s%c'"
msgstr ""
-#: config/tc-i386.c:1697 config/tc-i386.c:1717
+#: config/tc-i386.c:1804 config/tc-i386.c:1824
msgid "no instruction mnemonic suffix given; can't determine immediate size"
msgstr ""
-#: config/tc-i386.c:1742
+#: config/tc-i386.c:1849
msgid ""
"no instruction mnemonic suffix given and no register operands; can't size "
"instruction"
msgstr ""
#. reversed arguments on faddp, fsubp, etc.
-#: config/tc-i386.c:1844
+#: config/tc-i386.c:1951
msgid "translating to `%s %%%s,%%%s'"
msgstr ""
#. extraneous `l' suffix on fp insn
-#: config/tc-i386.c:1851
+#: config/tc-i386.c:1958
msgid "translating to `%s %%%s'"
msgstr ""
-#: config/tc-i386.c:2066
+#: config/tc-i386.c:2173
msgid "you can't `pop %%cs'"
msgstr ""
#. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.
-#: config/tc-i386.c:2097
+#: config/tc-i386.c:2204
#, c-format
msgid "translating to `%sp'"
msgstr ""
-#: config/tc-i386.c:2146 config/tc-i386.c:2208 config/tc-i386.c:2250
+#: config/tc-i386.c:2253 config/tc-i386.c:2316 config/tc-i386.c:2358
msgid "skipping prefixes on this instruction"
msgstr ""
-#: config/tc-i386.c:2265
+#: config/tc-i386.c:2373
msgid "16-bit jump out of range"
msgstr ""
-#: config/tc-i386.c:2274
+#: config/tc-i386.c:2382
#, c-format
msgid "can't handle non absolute segment in `%s'"
msgstr ""
-#: config/tc-i386.c:2382 config/tc-i386.c:2432
-#, c-format
-msgid "%ld shortened to %ld"
-msgstr ""
-
-#: config/tc-i386.c:2502
+#: config/tc-i386.c:2597
msgid "only 1 or 2 immediate operands are allowed"
msgstr ""
-#: config/tc-i386.c:2534 config/tc-i386.c:2755
+#: config/tc-i386.c:2629 config/tc-i386.c:2850
msgid "GOT relocations not supported in 16 bit mode"
msgstr ""
-#: config/tc-i386.c:2555 config/tc-i386.c:2776
+#: config/tc-i386.c:2650 config/tc-i386.c:2871
msgid "bad reloc specifier in expression"
msgstr ""
-#: config/tc-i386.c:2573 config/tc-i386.c:2810
+#: config/tc-i386.c:2668 config/tc-i386.c:2905
#, c-format
msgid "ignoring junk `%s' after expression"
msgstr ""
#. missing or bad expr becomes absolute 0
-#: config/tc-i386.c:2580
+#: config/tc-i386.c:2675
#, c-format
msgid "missing or invalid immediate expression `%s' taken as 0"
msgstr ""
-#: config/tc-i386.c:2607 config/tc-i386.c:2853
+#: config/tc-i386.c:2702 config/tc-i386.c:2948
#, c-format
msgid "unimplemented segment %s in operand"
msgstr ""
-#: config/tc-i386.c:2609 config/tc-i386.c:2855
+#: config/tc-i386.c:2704 config/tc-i386.c:2950
#, c-format
msgid "unimplemented segment type %d in operand"
msgstr ""
-#: config/tc-i386.c:2653
+#: config/tc-i386.c:2748
#, c-format
msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'"
msgstr ""
-#: config/tc-i386.c:2659
+#: config/tc-i386.c:2754
#, c-format
msgid "scale factor of %d without an index register"
msgstr ""
#. missing or bad expr becomes absolute 0
-#: config/tc-i386.c:2821
+#: config/tc-i386.c:2916
#, c-format
msgid "missing or invalid displacement expression `%s' taken as 0"
msgstr ""
-#: config/tc-i386.c:3035 config/tc-i386.c:3041 config/tc-i386.c:3050
+#: config/tc-i386.c:3130 config/tc-i386.c:3136 config/tc-i386.c:3145
#, c-format
msgid "bad segment name `%s'"
msgstr ""
-#: config/tc-i386.c:3108
+#: config/tc-i386.c:3203
#, c-format
msgid "`%s' is not a valid base/index expression"
msgstr ""
-#: config/tc-i386.c:3112
+#: config/tc-i386.c:3207
#, c-format
msgid "`%s' is not a valid %s bit base/index expression"
msgstr ""
-#: config/tc-i386.c:3133 config/tc-i386.c:3487
+#: config/tc-i386.c:3228 config/tc-i386.c:3582
#, c-format
msgid "too many memory references for `%s'"
msgstr ""
-#: config/tc-i386.c:3219 config/tc-i386.c:3354 config/tc-i386.c:3457
-#: config/tc-i386.c:3572 config/tc-i386.c:3608
+#: config/tc-i386.c:3314 config/tc-i386.c:3449 config/tc-i386.c:3552
+#: config/tc-i386.c:3667 config/tc-i386.c:3703
#, c-format
msgid "bad register name `%s'"
msgstr ""
-#: config/tc-i386.c:3433
+#: config/tc-i386.c:3528
#, c-format
msgid "bad memory operand `%s'"
msgstr ""
-#: config/tc-i386.c:3448
+#: config/tc-i386.c:3543
#, c-format
msgid "junk `%s' after register"
msgstr ""
-#: config/tc-i386.c:3465
+#: config/tc-i386.c:3560
msgid "immediate operand illegal with absolute jump"
msgstr ""
-#: config/tc-i386.c:3565
+#: config/tc-i386.c:3660
#, c-format
msgid "expecting `,' or `)' after index register in `%s'"
msgstr ""
-#: config/tc-i386.c:3587
+#: config/tc-i386.c:3682
#, c-format
msgid "expecting `)' after scale factor in `%s'"
msgstr ""
-#: config/tc-i386.c:3594
+#: config/tc-i386.c:3689
#, c-format
msgid "expecting index register or scale factor after `,'; got '%c'"
msgstr ""
-#: config/tc-i386.c:3601
+#: config/tc-i386.c:3696
#, c-format
msgid "expecting `,' or `)' after base register in `%s'"
msgstr ""
#. it's not a memory operand; argh!
-#: config/tc-i386.c:3641
+#: config/tc-i386.c:3736
#, c-format
msgid "invalid char %s beginning operand %d `%s'"
msgstr ""
-#: config/tc-i386.c:4099
+#: config/tc-i386.c:4169
msgid "Bad call to md_atof ()"
msgstr ""
-#: config/tc-i386.c:4250
-msgid " -m\t\t\t do long jump\n"
+#: config/tc-i386.c:4314
+msgid ""
+" -Q ignored\n"
+" -V print assembler version number\n"
+" -k ignored\n"
+" -q quieten some warnings\n"
+" -s ignored\n"
msgstr ""
-#: config/tc-i386.c:4253
-msgid ""
-" -V\t\t\t print assembler version number\n"
-" -k\t\t\t ignored\n"
-" -Qy, -Qn\t\t ignored\n"
-" -q\t\t\t ignored\n"
-" -s\t\t\t ignored\n"
+#: config/tc-i386.c:4321
+msgid " -q quieten some warnings\n"
msgstr ""
-#: config/tc-i386.c:4307
+#: config/tc-i386.c:4371
msgid "GOT already in symbol table"
msgstr ""
-#: config/tc-i386.c:4456
+#: config/tc-i386.c:4520
#, c-format
msgid "cannot represent relocation type %s"
msgstr ""
@@ -3185,7 +3362,7 @@ msgstr ""
msgid "Illegal operands"
msgstr ""
-#: config/tc-i860.c:749 config/tc-sparc.c:2644
+#: config/tc-i860.c:749 config/tc-sparc.c:2660
msgid "bad segment"
msgstr ""
@@ -3409,6 +3586,112 @@ msgstr ""
msgid "callj to difference of two symbols"
msgstr ""
+#: config/tc-ia64.c:3959
+msgid "Register name expected"
+msgstr ""
+
+#: config/tc-ia64.c:3964 config/tc-ia64.c:4246
+msgid "Comma expected"
+msgstr ""
+
+#: config/tc-ia64.c:3972
+msgid "Register value annotation ignored"
+msgstr ""
+
+#: config/tc-ia64.c:3995
+msgid "Directive invalid within a bundle"
+msgstr ""
+
+#: config/tc-ia64.c:4061
+msgid "Missing predicate relation type"
+msgstr ""
+
+#: config/tc-ia64.c:4077
+msgid "Unrecognized predicate relation type"
+msgstr ""
+
+#: config/tc-ia64.c:4097 config/tc-ia64.c:4121
+msgid "Predicate register expected"
+msgstr ""
+
+#: config/tc-ia64.c:4109
+msgid "Duplicate predicate register ignored"
+msgstr ""
+
+#: config/tc-ia64.c:4130
+msgid "Bad register range"
+msgstr ""
+
+#: config/tc-ia64.c:4157
+msgid "Predicate source and target required"
+msgstr ""
+
+#: config/tc-ia64.c:4159 config/tc-ia64.c:4171
+msgid "Use of p0 is not valid in this context"
+msgstr ""
+
+#: config/tc-ia64.c:4166
+msgid "At least two PR arguments expected"
+msgstr ""
+
+#: config/tc-ia64.c:4180
+msgid "At least one PR argument expected"
+msgstr ""
+
+#: config/tc-ia64.c:4216
+#, c-format
+msgid "Inserting \"%s\" into entry hint table failed: %s"
+msgstr ""
+
+#. FIXME -- need 62-bit relocation type
+#: config/tc-ia64.c:4635
+msgid "62-bit relocation not yet implemented"
+msgstr ""
+
+#: config/tc-ia64.c:4697
+msgid "lower 16 bits of mask ignored"
+msgstr ""
+
+#: config/tc-ia64.c:5104
+msgid "Value truncated to 62 bits"
+msgstr ""
+
+#: config/tc-ia64.c:5610
+#, c-format
+msgid "Unrecognized option '-x%s'"
+msgstr ""
+
+#: config/tc-ia64.c:5629
+msgid ""
+"IA-64 options:\n"
+" -Milp32|-Milp64|-Mlp64|-Mp64\tselect data model (default -Mlp64)\n"
+" -Mle | -Mbe\t\t select little- or big-endian byte order (default -Mle)\n"
+" -x | -xexplicit\t turn on dependency violation checking (default)\n"
+" -xauto\t\t automagically remove dependency violations\n"
+" -xdebug\t\t debug dependency violation checker\n"
+msgstr ""
+
+#: config/tc-ia64.c:5905
+msgid "Explicit stops are ignored in auto mode"
+msgstr ""
+
+#: config/tc-ia64.c:5951
+msgid "Found '{' after explicit switch to automatic mode"
+msgstr ""
+
+#: config/tc-ia64.c:7454
+#, c-format
+msgid "Unrecognized dependency specifier %d\n"
+msgstr ""
+
+#: config/tc-ia64.c:8196
+msgid "Only the first path encountering the conflict is reported"
+msgstr ""
+
+#: config/tc-ia64.c:8199
+msgid "This is the location of the conflicting usage"
+msgstr ""
+
#. Pretend that we do not recognise this option.
#: config/tc-m32r.c:223
msgid "Unrecognised option: -hidden"
@@ -3540,7 +3823,7 @@ msgid ""
"is this intentional ?"
msgstr ""
-#: config/tc-m32r.c:1235 config/tc-ppc.c:1337 config/tc-ppc.c:3547 read.c:1378
+#: config/tc-m32r.c:1235 config/tc-ppc.c:1455 config/tc-ppc.c:3673 read.c:1376
msgid "Expected comma after symbol-name: rest of line ignored."
msgstr ""
@@ -3549,13 +3832,13 @@ msgstr ""
msgid ".SCOMMon length (%ld.) <0! Ignored."
msgstr ""
-#: config/tc-m32r.c:1258 config/tc-ppc.c:1359 config/tc-ppc.c:2266
-#: config/tc-ppc.c:3571
+#: config/tc-m32r.c:1258 config/tc-ppc.c:1477 config/tc-ppc.c:2384
+#: config/tc-ppc.c:3697
msgid "ignoring bad alignment"
msgstr ""
-#: config/tc-m32r.c:1284 config/tc-ppc.c:1370 config/tc-ppc.c:3583 read.c:1398
-#: read.c:2111
+#: config/tc-m32r.c:1284 config/tc-ppc.c:1488 config/tc-ppc.c:3709 read.c:1396
+#: read.c:2109
#, c-format
msgid "Ignoring attempt to re-define symbol `%s'."
msgstr ""
@@ -3569,6 +3852,322 @@ msgstr ""
msgid "Unmatched high/shigh reloc"
msgstr ""
+#: config/tc-m68hc11.c:312
+#, c-format
+msgid ""
+"Motorola 68HC11/68HC12 options:\n"
+" -m68hc11 | -m68hc12 specify the processor [default %s]\n"
+" --force-long-branchs always turn relative branchs into absolute ones\n"
+" -S,--short-branchs do not turn relative branchs into absolute ones\n"
+" when the offset is out of range\n"
+" --strict-direct-mode do not turn the direct mode into extended mode\n"
+" when the instruction does not support direct mode\n"
+" --print-insn-syntax print the syntax of instruction in case of error\n"
+" --print-opcodes print the list of instructions with syntax\n"
+" --generate-example generate an example of each instruction\n"
+" (used for testing)\n"
+msgstr ""
+
+#: config/tc-m68hc11.c:353
+#, c-format
+msgid "Default target `%s' is not supported."
+msgstr ""
+
+#. Dump the opcode statistics table.
+#: config/tc-m68hc11.c:372
+msgid "Name # Modes Min ops Max ops Modes mask # Used\n"
+msgstr ""
+
+#: config/tc-m68hc11.c:422
+#, c-format
+msgid "Option `%s' is not recognized."
+msgstr ""
+
+#: config/tc-m68hc11.c:646
+msgid "#<imm8>"
+msgstr ""
+
+#: config/tc-m68hc11.c:655
+msgid "#<imm16>"
+msgstr ""
+
+#: config/tc-m68hc11.c:664 config/tc-m68hc11.c:673
+msgid "<imm8>,X"
+msgstr ""
+
+#: config/tc-m68hc11.c:691
+msgid "*<abs8>"
+msgstr ""
+
+#: config/tc-m68hc11.c:703
+msgid "#<mask>"
+msgstr ""
+
+#: config/tc-m68hc11.c:713
+#, c-format
+msgid "symbol%d"
+msgstr ""
+
+#: config/tc-m68hc11.c:715
+msgid "<abs>"
+msgstr ""
+
+#: config/tc-m68hc11.c:734
+msgid "<label>"
+msgstr ""
+
+#: config/tc-m68hc11.c:751
+#, c-format
+msgid ""
+"# Example of `%s' instructions\n"
+"\t.sect .text\n"
+"_start:\n"
+msgstr ""
+
+#: config/tc-m68hc11.c:801
+#, c-format
+msgid "Instruction `%s' is not recognized."
+msgstr ""
+
+#: config/tc-m68hc11.c:806
+#, c-format
+msgid "Instruction formats for `%s':"
+msgstr ""
+
+#: config/tc-m68hc11.c:944
+#, c-format
+msgid "Immediate operand is not allowed for operand %d."
+msgstr ""
+
+#: config/tc-m68hc11.c:970
+msgid "Indirect indexed addressing is not valid for 68HC11."
+msgstr ""
+
+#: config/tc-m68hc11.c:990
+msgid "Spurious `,' or bad indirect register addressing mode."
+msgstr ""
+
+#: config/tc-m68hc11.c:1006
+msgid "Missing second register or offset for indexed-indirect mode."
+msgstr ""
+
+#: config/tc-m68hc11.c:1016
+msgid "Missing second register for indexed-indirect mode."
+msgstr ""
+
+#: config/tc-m68hc11.c:1032
+msgid "Missing `]' to close indexed-indirect mode."
+msgstr ""
+
+#: config/tc-m68hc11.c:1076
+msgid "Illegal operand."
+msgstr ""
+
+#: config/tc-m68hc11.c:1081
+msgid "Missing operand."
+msgstr ""
+
+#: config/tc-m68hc11.c:1104
+msgid "Pre-decrement mode is not valid for 68HC11"
+msgstr ""
+
+#: config/tc-m68hc11.c:1111
+msgid "Pre-increment mode is not valid for 68HC11"
+msgstr ""
+
+#: config/tc-m68hc11.c:1130
+msgid "Wrong register in register indirect mode."
+msgstr ""
+
+#: config/tc-m68hc11.c:1138
+msgid "Missing `]' to close register indirect operand."
+msgstr ""
+
+#: config/tc-m68hc11.c:1155
+msgid "Post-decrement mode is not valid for 68HC11."
+msgstr ""
+
+#: config/tc-m68hc11.c:1163
+msgid "Post-increment mode is not valid for 68HC11."
+msgstr ""
+
+#: config/tc-m68hc11.c:1180
+msgid "Invalid indexed indirect mode."
+msgstr ""
+
+#: config/tc-m68hc11.c:1281
+#, c-format
+msgid "Trap id `%ld' is out of range."
+msgstr ""
+
+#: config/tc-m68hc11.c:1285
+msgid "Trap id must be within [0x30..0x39] or [0x40..0xff]."
+msgstr ""
+
+#: config/tc-m68hc11.c:1292
+#, c-format
+msgid "Operand out of 8-bit range: `%ld'."
+msgstr ""
+
+#: config/tc-m68hc11.c:1299
+msgid "The trap id must be a constant."
+msgstr ""
+
+#: config/tc-m68hc11.c:1324
+#, c-format
+msgid "Operand `%x' not recognized in fixup8."
+msgstr ""
+
+#: config/tc-m68hc11.c:1344
+#, c-format
+msgid "Operand out of 16-bit range: `%ld'."
+msgstr ""
+
+#: config/tc-m68hc11.c:1365
+#, c-format
+msgid "Operand `%x' not recognized in fixup16."
+msgstr ""
+
+#: config/tc-m68hc11.c:1384
+#, c-format
+msgid "Unexpected branch conversion with `%x'"
+msgstr ""
+
+#: config/tc-m68hc11.c:1480 config/tc-m68hc11.c:1609
+#, c-format
+msgid "Operand out of range for a relative branch: `%ld'"
+msgstr ""
+
+#: config/tc-m68hc11.c:1577
+msgid "Invalid register for dbcc/tbcc instruction."
+msgstr ""
+
+#: config/tc-m68hc11.c:1668
+#, c-format
+msgid "Increment/decrement value is out of range: `%ld'."
+msgstr ""
+
+#: config/tc-m68hc11.c:1679
+msgid "Expecting a register."
+msgstr ""
+
+#: config/tc-m68hc11.c:1694
+msgid "Invalid register for post/pre increment."
+msgstr ""
+
+#: config/tc-m68hc11.c:1724
+msgid "Invalid register."
+msgstr ""
+
+#: config/tc-m68hc11.c:1731
+#, c-format
+msgid "Offset out of 16-bit range: %ld."
+msgstr ""
+
+#: config/tc-m68hc11.c:1736
+msgid "Offset out of 5-bit range for movw/movb insn."
+msgstr ""
+
+#: config/tc-m68hc11.c:1789
+msgid "Expecting register D for indexed indirect mode."
+msgstr ""
+
+#: config/tc-m68hc11.c:1791
+msgid "Indexed indirect mode is not allowed for movb/movw."
+msgstr ""
+
+#: config/tc-m68hc11.c:1808
+msgid "Invalid accumulator register."
+msgstr ""
+
+#: config/tc-m68hc11.c:1833
+msgid "Invalid indexed register."
+msgstr ""
+
+#: config/tc-m68hc11.c:1841
+msgid "Addressing mode not implemented yet."
+msgstr ""
+
+#: config/tc-m68hc11.c:1856
+msgid "Invalid source register for this instruction, use 'tfr'."
+msgstr ""
+
+#: config/tc-m68hc11.c:1858
+msgid "Invalid source register."
+msgstr ""
+
+#: config/tc-m68hc11.c:1863
+msgid "Invalid destination register for this instruction, use 'tfr'."
+msgstr ""
+
+#: config/tc-m68hc11.c:1865
+msgid "Invalid destination register."
+msgstr ""
+
+#: config/tc-m68hc11.c:1954
+msgid "Invalid indexed register, expecting register X."
+msgstr ""
+
+#: config/tc-m68hc11.c:1956
+msgid "Invalid indexed register, expecting register Y."
+msgstr ""
+
+#: config/tc-m68hc11.c:2251
+msgid "No instruction or missing opcode."
+msgstr ""
+
+#: config/tc-m68hc11.c:2316
+#, c-format
+msgid "Opcode `%s' is not recognized."
+msgstr ""
+
+#: config/tc-m68hc11.c:2338
+#, c-format
+msgid "Garbage at end of instruction: `%s'."
+msgstr ""
+
+#: config/tc-m68hc11.c:2361
+#, c-format
+msgid "Invalid operand for `%s'"
+msgstr ""
+
+#: config/tc-m68hc11.c:2420
+#, c-format
+msgid "Relocation %d is not supported by object file format."
+msgstr ""
+
+#: config/tc-m68hc11.c:2575
+msgid "bra or bsr with undefined symbol."
+msgstr ""
+
+#: config/tc-m68hc11.c:2683
+#, c-format
+msgid "Subtype %d is not recognized."
+msgstr ""
+
+#: config/tc-m68hc11.c:2720
+msgid "Expression too complex."
+msgstr ""
+
+#: config/tc-m68hc11.c:2749
+msgid "Value out of 16-bit range."
+msgstr ""
+
+#: config/tc-m68hc11.c:2768
+#, c-format
+msgid "Value %ld too large for 8-bit PC-relative branch."
+msgstr ""
+
+#: config/tc-m68hc11.c:2775
+#, c-format
+msgid "Auto increment/decrement offset '%ld' is out of range."
+msgstr ""
+
+#: config/tc-m68hc11.c:2786
+#, c-format
+msgid "Line %d: unknown relocation type: 0x%x."
+msgstr ""
+
#: config/tc-m68k.c:646
msgid "Unknown PC relative instruction"
msgstr ""
@@ -3593,7 +4192,7 @@ msgstr ""
msgid "Can not do %d byte pic relocation"
msgstr ""
-#: config/tc-m68k.c:885 config/tc-mips.c:11262
+#: config/tc-m68k.c:885 config/tc-mips.c:11283
#, c-format
msgid "Cannot make %s relocation PC relative"
msgstr ""
@@ -3630,119 +4229,119 @@ msgstr ""
msgid "68010 or higher"
msgstr ""
-#: config/tc-m68k.c:1848
+#: config/tc-m68k.c:1849
msgid "operands mismatch"
msgstr ""
-#: config/tc-m68k.c:1905 config/tc-m68k.c:1911 config/tc-m68k.c:1917
+#: config/tc-m68k.c:1906 config/tc-m68k.c:1912 config/tc-m68k.c:1918
msgid "operand out of range"
msgstr ""
-#: config/tc-m68k.c:1974
+#: config/tc-m68k.c:1975
#, c-format
msgid "Bignum too big for %c format; truncated"
msgstr ""
-#: config/tc-m68k.c:2042
+#: config/tc-m68k.c:2043
msgid "displacement too large for this architecture; needs 68020 or higher"
msgstr ""
-#: config/tc-m68k.c:2152
+#: config/tc-m68k.c:2153
msgid ""
"scale factor invalid on this architecture; needs cpu32 or 68020 or higher"
msgstr ""
-#: config/tc-m68k.c:2157
+#: config/tc-m68k.c:2158
msgid "invalid index size for coldfire"
msgstr ""
-#: config/tc-m68k.c:2210
+#: config/tc-m68k.c:2211
msgid "Forcing byte displacement"
msgstr ""
-#: config/tc-m68k.c:2212
+#: config/tc-m68k.c:2213
msgid "byte displacement out of range"
msgstr ""
-#: config/tc-m68k.c:2259 config/tc-m68k.c:2297
+#: config/tc-m68k.c:2260 config/tc-m68k.c:2298
msgid "invalid operand mode for this architecture; needs 68020 or higher"
msgstr ""
-#: config/tc-m68k.c:2283 config/tc-m68k.c:2317
+#: config/tc-m68k.c:2284 config/tc-m68k.c:2318
msgid ":b not permitted; defaulting to :w"
msgstr ""
-#: config/tc-m68k.c:2399
+#: config/tc-m68k.c:2397
msgid "unsupported byte value; use a different suffix"
msgstr ""
-#: config/tc-m68k.c:2413
+#: config/tc-m68k.c:2411
msgid "unknown/incorrect operand"
msgstr ""
-#: config/tc-m68k.c:2446 config/tc-m68k.c:2454 config/tc-m68k.c:2461
-#: config/tc-m68k.c:2468
+#: config/tc-m68k.c:2444 config/tc-m68k.c:2452 config/tc-m68k.c:2459
+#: config/tc-m68k.c:2466
msgid "out of range"
msgstr ""
-#: config/tc-m68k.c:2518
+#: config/tc-m68k.c:2516
msgid "Can't use long branches on 68000/68010/5200"
msgstr ""
-#: config/tc-m68k.c:2606
+#: config/tc-m68k.c:2604
msgid "Expression out of range, using 0"
msgstr ""
-#: config/tc-m68k.c:2718 config/tc-m68k.c:2734
+#: config/tc-m68k.c:2716 config/tc-m68k.c:2732
msgid "Floating point register in register list"
msgstr ""
-#: config/tc-m68k.c:2724
+#: config/tc-m68k.c:2722
msgid "Wrong register in floating-point reglist"
msgstr ""
-#: config/tc-m68k.c:2740
+#: config/tc-m68k.c:2738
msgid "incorrect register in reglist"
msgstr ""
-#: config/tc-m68k.c:2746
+#: config/tc-m68k.c:2744
msgid "wrong register in floating-point reglist"
msgstr ""
-#: config/tc-m68k.c:2822
+#: config/tc-m68k.c:2820
msgid "failed sanity check"
msgstr ""
#. ERROR
-#: config/tc-m68k.c:3187
+#: config/tc-m68k.c:3185
msgid "Extra )"
msgstr ""
#. ERROR
-#: config/tc-m68k.c:3198
+#: config/tc-m68k.c:3196
msgid "Missing )"
msgstr ""
-#: config/tc-m68k.c:3215
+#: config/tc-m68k.c:3213
msgid "Missing operand"
msgstr ""
-#: config/tc-m68k.c:3547
+#: config/tc-m68k.c:3545
#, c-format
msgid "%s -- statement `%s' ignored"
msgstr ""
-#: config/tc-m68k.c:3591
+#: config/tc-m68k.c:3589
#, c-format
msgid "Don't know how to figure width of %c in md_assemble()"
msgstr ""
-#: config/tc-m68k.c:3759 config/tc-m68k.c:3795
+#: config/tc-m68k.c:3757 config/tc-m68k.c:3795
#, c-format
msgid "Internal Error: Can't find %s in hash table"
msgstr ""
-#: config/tc-m68k.c:3762 config/tc-m68k.c:3798
+#: config/tc-m68k.c:3760 config/tc-m68k.c:3798
#, c-format
msgid "Internal Error: Can't hash %s: %s"
msgstr ""
@@ -3777,151 +4376,143 @@ msgstr ""
msgid "short branch with zero offset: use :w"
msgstr ""
-#: config/tc-m68k.c:4351
-msgid "Long branch offset not supported."
-msgstr ""
-
-#: config/tc-m68k.c:4412
+#: config/tc-m68k.c:4415
#, c-format
msgid "Internal error (long PC-relative operand) for insn 0x%04x at 0x%lx"
msgstr ""
-#: config/tc-m68k.c:4443
+#: config/tc-m68k.c:4446
msgid "displacement doesn't fit in one byte"
msgstr ""
-#: config/tc-m68k.c:4556
-msgid "Long branch offset to extern symbol not supported."
-msgstr ""
-
-#: config/tc-m68k.c:4905 config/tc-m68k.c:4916
+#: config/tc-m68k.c:4909 config/tc-m68k.c:4920
msgid "expression out of range: defaulting to 1"
msgstr ""
-#: config/tc-m68k.c:4948
+#: config/tc-m68k.c:4952
msgid "expression out of range: defaulting to 0"
msgstr ""
-#: config/tc-m68k.c:4981 config/tc-m68k.c:4993
+#: config/tc-m68k.c:4985 config/tc-m68k.c:4997
#, c-format
msgid "Can't deal with expression; defaulting to %ld"
msgstr ""
-#: config/tc-m68k.c:5007
+#: config/tc-m68k.c:5011
msgid "expression doesn't fit in BYTE"
msgstr ""
-#: config/tc-m68k.c:5011
+#: config/tc-m68k.c:5015
msgid "expression doesn't fit in WORD"
msgstr ""
-#: config/tc-m68k.c:5104
+#: config/tc-m68k.c:5108
#, c-format
msgid "%s: unrecognized processor name"
msgstr ""
-#: config/tc-m68k.c:5169
+#: config/tc-m68k.c:5173
msgid "bad coprocessor id"
msgstr ""
-#: config/tc-m68k.c:5175
+#: config/tc-m68k.c:5179
msgid "unrecognized fopt option"
msgstr ""
-#: config/tc-m68k.c:5309
+#: config/tc-m68k.c:5313
#, c-format
msgid "option `%s' may not be negated"
msgstr ""
-#: config/tc-m68k.c:5320
+#: config/tc-m68k.c:5324
#, c-format
msgid "option `%s' not recognized"
msgstr ""
-#: config/tc-m68k.c:5353
+#: config/tc-m68k.c:5357
msgid "bad format of OPT NEST=depth"
msgstr ""
-#: config/tc-m68k.c:5416
+#: config/tc-m68k.c:5420
msgid "missing label"
msgstr ""
-#: config/tc-m68k.c:5440 config/tc-m68k.c:5469
+#: config/tc-m68k.c:5444 config/tc-m68k.c:5473
msgid "bad register list"
msgstr ""
-#: config/tc-m68k.c:5442
+#: config/tc-m68k.c:5446
#, c-format
msgid "bad register list: %s"
msgstr ""
-#: config/tc-m68k.c:5540
+#: config/tc-m68k.c:5544
msgid "restore without save"
msgstr ""
-#: config/tc-m68k.c:5717 config/tc-m68k.c:6066
+#: config/tc-m68k.c:5721 config/tc-m68k.c:6070
msgid "syntax error in structured control directive"
msgstr ""
-#: config/tc-m68k.c:5768
+#: config/tc-m68k.c:5772
msgid "missing condition code in structured control directive"
msgstr ""
-#: config/tc-m68k.c:6100
+#: config/tc-m68k.c:6104
msgid "missing then"
msgstr ""
-#: config/tc-m68k.c:6182
+#: config/tc-m68k.c:6186
msgid "else without matching if"
msgstr ""
-#: config/tc-m68k.c:6216
+#: config/tc-m68k.c:6220
msgid "endi without matching if"
msgstr ""
-#: config/tc-m68k.c:6257
+#: config/tc-m68k.c:6261
msgid "break outside of structured loop"
msgstr ""
-#: config/tc-m68k.c:6296
+#: config/tc-m68k.c:6300
msgid "next outside of structured loop"
msgstr ""
-#: config/tc-m68k.c:6348
+#: config/tc-m68k.c:6352
msgid "missing ="
msgstr ""
-#: config/tc-m68k.c:6386
+#: config/tc-m68k.c:6390
msgid "missing to or downto"
msgstr ""
-#: config/tc-m68k.c:6422 config/tc-m68k.c:6456 config/tc-m68k.c:6666
+#: config/tc-m68k.c:6426 config/tc-m68k.c:6460 config/tc-m68k.c:6670
msgid "missing do"
msgstr ""
-#: config/tc-m68k.c:6559
+#: config/tc-m68k.c:6563
msgid "endf without for"
msgstr ""
-#: config/tc-m68k.c:6615
+#: config/tc-m68k.c:6619
msgid "until without repeat"
msgstr ""
-#: config/tc-m68k.c:6702
+#: config/tc-m68k.c:6706
msgid "endw without while"
msgstr ""
-#: config/tc-m68k.c:6818
+#: config/tc-m68k.c:6822
#, c-format
msgid "unrecognized option `%s'"
msgstr ""
-#: config/tc-m68k.c:6863
+#: config/tc-m68k.c:6867
#, c-format
msgid "unrecognized architecture specification `%s'"
msgstr ""
-#: config/tc-m68k.c:6933
+#: config/tc-m68k.c:6937
msgid ""
"680X0 options:\n"
"-l\t\t\tuse 1 word for refs to undefined symbols [default 2]\n"
@@ -3934,7 +4525,7 @@ msgid ""
"\t\t\t[default yes for 68020, 68030, and cpu32]\n"
msgstr ""
-#: config/tc-m68k.c:6943
+#: config/tc-m68k.c:6947
msgid ""
"-m68851 | -mno-68851\n"
"\t\t\ttarget has/lacks memory-management unit coprocessor\n"
@@ -3946,7 +4537,7 @@ msgid ""
"--bitwise-or\t\tdo not treat `|' as a comment character\n"
msgstr ""
-#: config/tc-m68k.c:6952
+#: config/tc-m68k.c:6956
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"
@@ -3954,12 +4545,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:6991
#, c-format
msgid "Error %s in %s\n"
msgstr ""
-#: config/tc-m68k.c:6991
+#: config/tc-m68k.c:6995
#, c-format
msgid "Opcode(%d.%s): "
msgstr ""
@@ -4020,7 +4611,7 @@ msgstr ""
msgid "Relaxation should never occur"
msgstr ""
-#: config/tc-m88k.c:1267 config/tc-sparc.c:3363 read.c:1973
+#: config/tc-m88k.c:1267 config/tc-sparc.c:3463 read.c:1971
#, c-format
msgid "BSS length (%d.) <0! Ignored."
msgstr ""
@@ -4243,7 +4834,7 @@ msgstr ""
msgid "pc-relative"
msgstr ""
-#: config/tc-mcore.c:2421 config/tc-pj.c:586 config/tc-sh.c:3005
+#: config/tc-mcore.c:2421 config/tc-pj.c:586 config/tc-sh.c:3100
#, c-format
msgid "Cannot represent relocation type %s"
msgstr ""
@@ -4275,7 +4866,7 @@ msgstr ""
msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n"
msgstr ""
-#: config/tc-mips.c:1816 config/tc-mips.c:11394
+#: config/tc-mips.c:1816 config/tc-mips.c:11415
msgid "extended instruction in delay slot"
msgstr ""
@@ -4521,45 +5112,45 @@ msgstr ""
msgid "operand value out of range for instruction"
msgstr ""
-#: config/tc-mips.c:9052
+#: config/tc-mips.c:9068
#, c-format
msgid "ignoring invalid leading 'v' in -mcpu=%s switch"
msgstr ""
-#: config/tc-mips.c:9058
+#: config/tc-mips.c:9074
#, c-format
msgid "invalid architecture -mcpu=%s"
msgstr ""
-#: config/tc-mips.c:9108
+#: config/tc-mips.c:9124
msgid "-G may not be used with embedded PIC code"
msgstr ""
-#: config/tc-mips.c:9120
+#: config/tc-mips.c:9136
msgid "-call_shared is supported only for ELF format"
msgstr ""
-#: config/tc-mips.c:9126 config/tc-mips.c:10205 config/tc-mips.c:10373
+#: config/tc-mips.c:9142 config/tc-mips.c:10221 config/tc-mips.c:10389
msgid "-G may not be used with SVR4 PIC code"
msgstr ""
-#: config/tc-mips.c:9135
+#: config/tc-mips.c:9151
msgid "-non_shared is supported only for ELF format"
msgstr ""
-#: config/tc-mips.c:9151
+#: config/tc-mips.c:9167
msgid "-G is not supported for this configuration"
msgstr ""
-#: config/tc-mips.c:9156
+#: config/tc-mips.c:9172
msgid "-G may not be used with SVR4 or embedded PIC code"
msgstr ""
-#: config/tc-mips.c:9180
+#: config/tc-mips.c:9196
msgid "No compiled in support for 64 bit object file format"
msgstr ""
-#: config/tc-mips.c:9270
+#: config/tc-mips.c:9286
msgid ""
"MIPS options:\n"
"-membedded-pic\t\tgenerate embedded position independent code\n"
@@ -4570,7 +5161,7 @@ msgid ""
"\t\t\timplicitly with the gp register [default 8]\n"
msgstr ""
-#: config/tc-mips.c:9278
+#: config/tc-mips.c:9294
msgid ""
"-mips1\t\t\tgenerate MIPS ISA I instructions\n"
"-mips2\t\t\tgenerate MIPS ISA II instructions\n"
@@ -4579,20 +5170,20 @@ msgid ""
"-mcpu=CPU\t\tgenerate code for CPU, where CPU is one of:\n"
msgstr ""
-#: config/tc-mips.c:9304
+#: config/tc-mips.c:9320
msgid ""
"-mCPU\t\t\tequivalent to -mcpu=CPU.\n"
"-no-mCPU\t\tdon't generate code specific to CPU.\n"
"\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n"
msgstr ""
-#: config/tc-mips.c:9317
+#: config/tc-mips.c:9333
msgid ""
"-mips16\t\t\tgenerate mips16 instructions\n"
"-no-mips16\t\tdo not generate mips16 instructions\n"
msgstr ""
-#: config/tc-mips.c:9320
+#: config/tc-mips.c:9336
msgid ""
"-O0\t\t\tremove unneeded NOPs, do not swap branches\n"
"-O\t\t\tremove unneeded NOPs and swap branches\n"
@@ -4600,7 +5191,7 @@ msgid ""
"--break, --no-trap\tbreak exception on div by 0 and mult overflow\n"
msgstr ""
-#: config/tc-mips.c:9326
+#: config/tc-mips.c:9342
msgid ""
"-KPIC, -call_shared\tgenerate SVR4 position independent code\n"
"-non_shared\t\tdo not generate position independent code\n"
@@ -4609,170 +5200,170 @@ msgid ""
"-64\t\t\tcreate 64 bit object file\n"
msgstr ""
-#: config/tc-mips.c:9383
+#: config/tc-mips.c:9399
#, c-format
msgid "Unsupported reloc size %d"
msgstr ""
-#: config/tc-mips.c:9486
+#: config/tc-mips.c:9502
msgid "Unmatched %%hi reloc"
msgstr ""
-#: config/tc-mips.c:9610
+#: config/tc-mips.c:9626
msgid "Invalid PC relative reloc"
msgstr ""
-#: config/tc-mips.c:9720 config/tc-sparc.c:2925 config/tc-sparc.c:2932
-#: config/tc-sparc.c:2939 config/tc-sparc.c:2946 config/tc-sparc.c:2953
-#: config/tc-sparc.c:2962 config/tc-sparc.c:2973 config/tc-sparc.c:2999
-#: config/tc-sparc.c:3027 write.c:971 write.c:1035
+#: config/tc-mips.c:9736 config/tc-sparc.c:3025 config/tc-sparc.c:3032
+#: config/tc-sparc.c:3039 config/tc-sparc.c:3046 config/tc-sparc.c:3053
+#: config/tc-sparc.c:3062 config/tc-sparc.c:3073 config/tc-sparc.c:3099
+#: config/tc-sparc.c:3127 write.c:971 write.c:1035
msgid "relocation overflow"
msgstr ""
-#: config/tc-mips.c:9736
+#: config/tc-mips.c:9752
#, c-format
msgid "Branch to odd address (%lx)"
msgstr ""
-#: config/tc-mips.c:9900
+#: config/tc-mips.c:9916
#, c-format
msgid "%08lx UNDEFINED\n"
msgstr ""
-#: config/tc-mips.c:9966
+#: config/tc-mips.c:9982
msgid "Alignment negative: 0 assumed."
msgstr ""
-#: config/tc-mips.c:10054
+#: config/tc-mips.c:10070
msgid "No read only data section in this object file format"
msgstr ""
-#: config/tc-mips.c:10077
+#: config/tc-mips.c:10093
msgid "Global pointers not supported; recompile -G 0"
msgstr ""
-#: config/tc-mips.c:10163
+#: config/tc-mips.c:10179
#, c-format
msgid "%s: no such section"
msgstr ""
-#: config/tc-mips.c:10200
+#: config/tc-mips.c:10216
#, c-format
msgid ".option pic%d not supported"
msgstr ""
-#: config/tc-mips.c:10211
+#: config/tc-mips.c:10227
#, c-format
msgid "Unrecognized option \"%s\""
msgstr ""
-#: config/tc-mips.c:10274
+#: config/tc-mips.c:10290
msgid "`noreorder' must be set before `nomacro'"
msgstr ""
-#: config/tc-mips.c:10309
+#: config/tc-mips.c:10325
msgid "unknown ISA level"
msgstr ""
-#: config/tc-mips.c:10332
+#: config/tc-mips.c:10348
msgid ".set pop with no .set push"
msgstr ""
-#: config/tc-mips.c:10356
+#: config/tc-mips.c:10372
#, c-format
msgid "Tried to set unrecognized symbol: %s\n"
msgstr ""
-#: config/tc-mips.c:10406
+#: config/tc-mips.c:10422
msgid ".cpload not in noreorder section"
msgstr ""
-#: config/tc-mips.c:10488
+#: config/tc-mips.c:10504
msgid "Unsupported use of .gpword"
msgstr ""
-#: config/tc-mips.c:10625
+#: config/tc-mips.c:10641
msgid "expected `$'"
msgstr ""
-#: config/tc-mips.c:10633
+#: config/tc-mips.c:10649
msgid "Bad register number"
msgstr ""
-#: config/tc-mips.c:10649
+#: config/tc-mips.c:10665
msgid "Unrecognized register name"
msgstr ""
-#: config/tc-mips.c:10848
+#: config/tc-mips.c:10864
msgid "unsupported PC relative reference to different section"
msgstr ""
-#: config/tc-mips.c:10957
+#: config/tc-mips.c:10973
msgid "unsupported relocation"
msgstr ""
-#: config/tc-mips.c:11040
+#: config/tc-mips.c:11061
msgid "AT used after \".set noat\" or macro used after \".set nomacro\""
msgstr ""
-#: config/tc-mips.c:11103
+#: config/tc-mips.c:11124
msgid "Double check fx_r_type in tc-mips.c:tc_gen_reloc"
msgstr ""
-#: config/tc-mips.c:11615
+#: config/tc-mips.c:11636
msgid "missing `.end' at end of assembly"
msgstr ""
-#: config/tc-mips.c:11630
+#: config/tc-mips.c:11651
msgid "Expected simple number."
msgstr ""
-#: config/tc-mips.c:11656
+#: config/tc-mips.c:11677
#, c-format
msgid " *input_line_pointer == '%c' 0x%02x\n"
msgstr ""
-#: config/tc-mips.c:11658
+#: config/tc-mips.c:11679
msgid "Invalid number"
msgstr ""
-#: config/tc-mips.c:11713
+#: config/tc-mips.c:11734
msgid ".end not in text section"
msgstr ""
-#: config/tc-mips.c:11717
+#: config/tc-mips.c:11738
msgid ".end directive without a preceding .ent directive."
msgstr ""
-#: config/tc-mips.c:11726
+#: config/tc-mips.c:11747
msgid ".end symbol does not match .ent symbol."
msgstr ""
-#: config/tc-mips.c:11729
+#: config/tc-mips.c:11750
msgid ".end directive missing or unknown symbol"
msgstr ""
-#: config/tc-mips.c:11804
+#: config/tc-mips.c:11825
msgid ".ent or .aent not in text section."
msgstr ""
-#: config/tc-mips.c:11807
+#: config/tc-mips.c:11828
msgid "missing `.end'"
msgstr ""
-#: config/tc-mips.c:11840 ecoff.c:3227
+#: config/tc-mips.c:11861 ecoff.c:3227
msgid ".frame outside of .ent"
msgstr ""
-#: config/tc-mips.c:11851 ecoff.c:3238
+#: config/tc-mips.c:11872 ecoff.c:3238
msgid "Bad .frame directive"
msgstr ""
-#: config/tc-mips.c:11881
+#: config/tc-mips.c:11902
msgid ".mask/.fmask outside of .ent"
msgstr ""
-#: config/tc-mips.c:11888
+#: config/tc-mips.c:11909
msgid "Bad .mask/.fmask directive"
msgstr ""
@@ -4782,23 +5373,23 @@ msgid ""
"none yet\n"
msgstr ""
-#: config/tc-mn10200.c:788 config/tc-mn10300.c:914 config/tc-ppc.c:1614
-#: config/tc-v850.c:1691
+#: config/tc-mn10200.c:788 config/tc-mn10300.c:920 config/tc-ppc.c:1732
+#: config/tc-v850.c:1692
#, c-format
msgid "Unrecognized opcode: `%s'"
msgstr ""
-#: config/tc-mn10300.c:497
+#: config/tc-mn10300.c:503
msgid ""
"MN10300 options:\n"
"none yet\n"
msgstr ""
-#: config/tc-mn10300.c:932
+#: config/tc-mn10300.c:938
msgid "Invalid opcode/operands"
msgstr ""
-#: config/tc-mn10300.c:1409
+#: config/tc-mn10300.c:1416
msgid "Invalid register specification."
msgstr ""
@@ -4989,21 +5580,21 @@ msgid ""
"-big\t\t\tgenerate big endian code\n"
msgstr ""
-#: config/tc-pj.c:472 config/tc-sh.c:2577 config/tc-sh.c:2584
-#: config/tc-sh.c:2591 config/tc-sh.c:2598
+#: config/tc-pj.c:472 config/tc-sh.c:2661 config/tc-sh.c:2668
+#: config/tc-sh.c:2675 config/tc-sh.c:2682
msgid "pcrel too far"
msgstr ""
-#: config/tc-pj.c:541 config/tc-sh.c:2670
+#: config/tc-pj.c:541 config/tc-sh.c:2757
msgid "offset out of range"
msgstr ""
-#: config/tc-ppc.c:835
+#: config/tc-ppc.c:922
#, c-format
msgid "invalid switch -m%s"
msgstr ""
-#: config/tc-ppc.c:872
+#: config/tc-ppc.c:959
msgid ""
"PowerPC options:\n"
"-u\t\t\tignored\n"
@@ -5020,7 +5611,7 @@ msgid ""
"-mno-regnames\t\tDo not allow symbolic names for registers\n"
msgstr ""
-#: config/tc-ppc.c:887
+#: config/tc-ppc.c:974
msgid ""
"-mrelocatable\t\tsupport for GCC's -mrelocatble option\n"
"-mrelocatable-lib\tsupport for GCC's -mrelocatble-lib option\n"
@@ -5034,305 +5625,305 @@ msgid ""
"-Qy, -Qn\t\tignored\n"
msgstr ""
-#: config/tc-ppc.c:922
+#: config/tc-ppc.c:1009
#, c-format
msgid "Unknown default cpu = %s, os = %s"
msgstr ""
-#: config/tc-ppc.c:947
+#: config/tc-ppc.c:1034
msgid "Neither Power nor PowerPC opcodes were selected."
msgstr ""
-#: config/tc-ppc.c:995
+#: config/tc-ppc.c:1113
#, c-format
msgid "Internal assembler error for instruction %s"
msgstr ""
-#: config/tc-ppc.c:1014
+#: config/tc-ppc.c:1132
#, c-format
msgid "Internal assembler error for macro %s"
msgstr ""
-#: config/tc-ppc.c:1224
+#: config/tc-ppc.c:1342
msgid "identifier+constant@got means identifier@got+constant"
msgstr ""
-#: config/tc-ppc.c:1278
+#: config/tc-ppc.c:1396
#, c-format
msgid "%s relocations do not fit in %d bytes\n"
msgstr ""
-#: config/tc-ppc.c:1378
+#: config/tc-ppc.c:1496
#, c-format
msgid "Length of .lcomm \"%s\" is already %ld. Not changed to %ld."
msgstr ""
-#: config/tc-ppc.c:1460
+#: config/tc-ppc.c:1578
msgid "Relocation cannot be done when using -mrelocatable"
msgstr ""
-#: config/tc-ppc.c:1541
+#: config/tc-ppc.c:1659
#, c-format
msgid "syntax error: invalid toc specifier `%s'"
msgstr ""
-#: config/tc-ppc.c:1555
+#: config/tc-ppc.c:1673
#, c-format
msgid "syntax error: expected `]', found `%c'"
msgstr ""
-#: config/tc-ppc.c:1790
+#: config/tc-ppc.c:1908
msgid "[tocv] symbol is not a toc symbol"
msgstr ""
-#: config/tc-ppc.c:1801
+#: config/tc-ppc.c:1919
msgid "Unimplemented toc32 expression modifier"
msgstr ""
-#: config/tc-ppc.c:1806
+#: config/tc-ppc.c:1924
msgid "Unimplemented toc64 expression modifier"
msgstr ""
-#: config/tc-ppc.c:1810
+#: config/tc-ppc.c:1928
#, c-format
msgid "Unexpected return value [%d] from parse_toc_entry!\n"
msgstr ""
-#: config/tc-ppc.c:1963
+#: config/tc-ppc.c:2081
#, c-format
msgid "syntax error; found `%c' but expected `%c'"
msgstr ""
-#: config/tc-ppc.c:2071
+#: config/tc-ppc.c:2189
msgid "wrong number of operands"
msgstr ""
-#: config/tc-ppc.c:2127
+#: config/tc-ppc.c:2245
msgid "Bad .section directive: want a,w,x,e in string"
msgstr ""
-#: config/tc-ppc.c:2241
+#: config/tc-ppc.c:2359
msgid "missing size"
msgstr ""
-#: config/tc-ppc.c:2250
+#: config/tc-ppc.c:2368
msgid "negative size"
msgstr ""
-#: config/tc-ppc.c:2291
+#: config/tc-ppc.c:2409
msgid "missing real symbol name"
msgstr ""
-#: config/tc-ppc.c:2312
+#: config/tc-ppc.c:2430
msgid "attempt to redefine symbol"
msgstr ""
-#: config/tc-ppc.c:2546
+#: config/tc-ppc.c:2664
msgid "The XCOFF file format does not support arbitrary sections"
msgstr ""
-#: config/tc-ppc.c:2654 config/tc-ppc.c:3171 read.c:2985
+#: config/tc-ppc.c:2772 config/tc-ppc.c:3297 read.c:2983
msgid "missing value"
msgstr ""
-#: config/tc-ppc.c:2672
+#: config/tc-ppc.c:2790
msgid "illegal .stabx expression; zero assumed"
msgstr ""
-#: config/tc-ppc.c:2704
+#: config/tc-ppc.c:2822
msgid "missing class"
msgstr ""
-#: config/tc-ppc.c:2713
+#: config/tc-ppc.c:2831
msgid "missing type"
msgstr ""
-#: config/tc-ppc.c:2774
+#: config/tc-ppc.c:2892
msgid "missing symbol name"
msgstr ""
-#: config/tc-ppc.c:2950
+#: config/tc-ppc.c:3068
msgid "nested .bs blocks"
msgstr ""
-#: config/tc-ppc.c:2983
+#: config/tc-ppc.c:3101
msgid ".es without preceding .bs"
msgstr ""
-#: config/tc-ppc.c:3163
+#: config/tc-ppc.c:3289
msgid "non-constant byte count"
msgstr ""
-#: config/tc-ppc.c:3208
+#: config/tc-ppc.c:3334
msgid ".tc not in .toc section"
msgstr ""
-#: config/tc-ppc.c:3227
+#: config/tc-ppc.c:3353
msgid ".tc with no label"
msgstr ""
-#: config/tc-ppc.c:3302
+#: config/tc-ppc.c:3428
msgid "No previous section to return to. Directive ignored."
msgstr ""
#. Section Contents
#. unknown
-#: config/tc-ppc.c:3721
+#: config/tc-ppc.c:3847
msgid "Unsupported section attribute -- 'a'"
msgstr ""
-#: config/tc-ppc.c:3911
+#: config/tc-ppc.c:4037
msgid "bad symbol suffix"
msgstr ""
-#: config/tc-ppc.c:4004
+#: config/tc-ppc.c:4130
msgid "Unrecognized symbol suffix"
msgstr ""
-#: config/tc-ppc.c:4086
+#: config/tc-ppc.c:4212
msgid "two .function pseudo-ops with no intervening .ef"
msgstr ""
-#: config/tc-ppc.c:4099
+#: config/tc-ppc.c:4225
msgid ".ef with no preceding .function"
msgstr ""
-#: config/tc-ppc.c:4227
+#: config/tc-ppc.c:4353
#, c-format
msgid "warning: symbol %s has no csect"
msgstr ""
-#: config/tc-ppc.c:4528
+#: config/tc-ppc.c:4654
msgid "symbol in .toc does not match any .tc"
msgstr ""
-#: config/tc-ppc.c:4826
+#: config/tc-ppc.c:4951
msgid "unsupported relocation type"
msgstr ""
-#: config/tc-ppc.c:4880
+#: config/tc-ppc.c:5013
#, c-format
msgid "cannot emit PC relative %s relocation against %s"
msgstr ""
-#: config/tc-ppc.c:4885
+#: config/tc-ppc.c:5018
#, c-format
msgid "cannot emit PC relative %s relocation"
msgstr ""
-#: config/tc-ppc.c:4947
+#: config/tc-ppc.c:5080
msgid "must branch to an address a multiple of 4"
msgstr ""
-#: config/tc-ppc.c:4951
+#: config/tc-ppc.c:5084
#, c-format
msgid "@local or @plt branch destination is too far away, %ld bytes"
msgstr ""
-#: config/tc-ppc.c:4975
+#: config/tc-ppc.c:5108
#, c-format
msgid "Gas failure, reloc value %d\n"
msgstr ""
-#: config/tc-sh.c:675
+#: config/tc-sh.c:681
msgid "illegal register after @-"
msgstr ""
-#: config/tc-sh.c:691
+#: config/tc-sh.c:697
msgid "must be @(r0,...)"
msgstr ""
-#: config/tc-sh.c:707
+#: config/tc-sh.c:713
msgid "syntax error in @(r0,...)"
msgstr ""
-#: config/tc-sh.c:739 config/tc-sh.c:744
+#: config/tc-sh.c:745 config/tc-sh.c:750
msgid "syntax error in @(disp,[Rn, gbr, pc])"
msgstr ""
-#: config/tc-sh.c:749
+#: config/tc-sh.c:755
msgid "expecting )"
msgstr ""
-#: config/tc-sh.c:758
+#: config/tc-sh.c:764
msgid "illegal register after @"
msgstr ""
-#: config/tc-sh.c:1262
+#: config/tc-sh.c:1324
#, c-format
msgid "Invalid register: 'r%d'"
msgstr ""
-#: config/tc-sh.c:1398
+#: config/tc-sh.c:1480
msgid "insn can't be combined with parallel processing insn"
msgstr ""
-#: config/tc-sh.c:1405 config/tc-sh.c:1416
+#: config/tc-sh.c:1487 config/tc-sh.c:1498
msgid "multiple movx specifications"
msgstr ""
-#: config/tc-sh.c:1410 config/tc-sh.c:1437
+#: config/tc-sh.c:1492 config/tc-sh.c:1519
msgid "multiple movy specifications"
msgstr ""
-#: config/tc-sh.c:1418
+#: config/tc-sh.c:1500
msgid "invalid movx address register"
msgstr ""
-#: config/tc-sh.c:1424 config/tc-sh.c:1429
+#: config/tc-sh.c:1506 config/tc-sh.c:1511
msgid "invalid movx dsp register"
msgstr ""
-#: config/tc-sh.c:1446 config/tc-sh.c:1451
+#: config/tc-sh.c:1528 config/tc-sh.c:1533
msgid "invalid movy dsp register"
msgstr ""
-#: config/tc-sh.c:1455
+#: config/tc-sh.c:1537
msgid "invalid movy address register"
msgstr ""
-#: config/tc-sh.c:1461
+#: config/tc-sh.c:1543
msgid "dsp immediate shift value not constant"
msgstr ""
-#: config/tc-sh.c:1468 config/tc-sh.c:1481
+#: config/tc-sh.c:1550 config/tc-sh.c:1563
msgid "multiple parallel processing specifications"
msgstr ""
-#: config/tc-sh.c:1474
+#: config/tc-sh.c:1556
msgid "multiple condition specifications"
msgstr ""
-#: config/tc-sh.c:1490
+#: config/tc-sh.c:1572
msgid "insn cannot be combined with pmuls"
msgstr ""
-#: config/tc-sh.c:1507
+#: config/tc-sh.c:1589
msgid "bad padd / psub pmuls output operand"
msgstr ""
-#: config/tc-sh.c:1517
+#: config/tc-sh.c:1599
msgid "condition not followed by conditionalizable insn"
msgstr ""
-#: config/tc-sh.c:1527
+#: config/tc-sh.c:1609
msgid "unrecognized characters at end of parallel processing insn"
msgstr ""
-#: config/tc-sh.c:1637
+#: config/tc-sh.c:1719
#, c-format
msgid "excess operands: '%s'"
msgstr ""
-#: config/tc-sh.c:1783
+#: config/tc-sh.c:1865
msgid ".uses pseudo-op seen when not relaxing"
msgstr ""
-#: config/tc-sh.c:1789
+#: config/tc-sh.c:1871
msgid "bad .uses format"
msgstr ""
-#: config/tc-sh.c:1850
+#: config/tc-sh.c:1932
msgid ""
"SH options:\n"
"-little\t\t\tgenerate little endian code\n"
@@ -5341,139 +5932,141 @@ msgid ""
"-dsp\t\t\tenable sh-dsp insns, and disable sh3e / sh4 insns.\n"
msgstr ""
-#: config/tc-sh.c:1861 config/tc-w65.c:883
+#: config/tc-sh.c:1943 config/tc-w65.c:883
msgid "call to tc_Nout_fix_to_chars \n"
msgstr ""
-#: config/tc-sh.c:1947
+#: config/tc-sh.c:2029
msgid ".uses does not refer to a local symbol in the same section"
msgstr ""
-#: config/tc-sh.c:1966
+#: config/tc-sh.c:2048
msgid "can't find fixup pointed to by .uses"
msgstr ""
-#: config/tc-sh.c:1989
+#: config/tc-sh.c:2071
msgid ".uses target does not refer to a local symbol in the same section"
msgstr ""
-#: config/tc-sh.c:2086
+#: config/tc-sh.c:2168
#, c-format
msgid "at 0x%lx, displacement overflows 12-bit field"
msgstr ""
-#: config/tc-sh.c:2089
+#: config/tc-sh.c:2171
#, c-format
msgid "at 0x%lx, displacement to defined symbol %s overflows 12-bit field"
msgstr ""
-#: config/tc-sh.c:2093
+#: config/tc-sh.c:2175
#, c-format
msgid "at 0x%lx, displacement to undefined symbol %s overflows 12-bit field"
msgstr ""
-#: config/tc-sh.c:2209
+#: config/tc-sh.c:2291
#, c-format
msgid "at 0x%lx, displacement overflows 8-bit field"
msgstr ""
-#: config/tc-sh.c:2212
+#: config/tc-sh.c:2294
#, c-format
msgid "at 0x%lx, displacement to defined symbol %s overflows 8-bit field "
msgstr ""
-#: config/tc-sh.c:2216
+#: config/tc-sh.c:2298
#, c-format
msgid "at 0x%lx, displacement to undefined symbol %s overflows 8-bit field "
msgstr ""
-#: config/tc-sh.c:2269
+#: config/tc-sh.c:2351
#, c-format
msgid "overflow in branch to %s; converted into longer instruction sequence"
msgstr ""
-#: config/tc-sh.c:2344 config/tc-sh.c:2372 config/tc-sparc.c:3902
-#: config/tc-sparc.c:3921
+#: config/tc-sh.c:2426 config/tc-sh.c:2454 config/tc-sparc.c:4002
+#: config/tc-sparc.c:4021
msgid "misaligned data"
msgstr ""
-#: config/tc-sh.c:2662
+#: config/tc-sh.c:2749
msgid "misaligned offset"
msgstr ""
-#: config/tc-sparc.c:268
+#: config/tc-sparc.c:271
msgid "Invalid default architecture, broken assembler."
msgstr ""
-#: config/tc-sparc.c:272 config/tc-sparc.c:465
+#: config/tc-sparc.c:275 config/tc-sparc.c:472
msgid "Bad opcode table, broken assembler."
msgstr ""
-#: config/tc-sparc.c:444
+#: config/tc-sparc.c:451
#, c-format
msgid "invalid architecture -xarch=%s"
msgstr ""
-#: config/tc-sparc.c:459
+#: config/tc-sparc.c:466
#, c-format
msgid "invalid architecture -A%s"
msgstr ""
-#: config/tc-sparc.c:526
+#: config/tc-sparc.c:533
#, c-format
msgid "No compiled in support for %d bit object file format"
msgstr ""
-#: config/tc-sparc.c:563
+#: config/tc-sparc.c:570
msgid "Unrecognized option following -K"
msgstr ""
-#: config/tc-sparc.c:595
+#: config/tc-sparc.c:610
msgid "SPARC options:\n"
msgstr ""
-#: config/tc-sparc.c:603
+#: config/tc-sparc.c:618
msgid ""
"\n"
"-xarch=v8plus | -xarch=v8plusa\n"
msgstr ""
-#: config/tc-sparc.c:604
+#: config/tc-sparc.c:619
msgid ""
"\t\t\tspecify variant of SPARC architecture\n"
"-bump\t\t\twarn when assembler switches architectures\n"
"-sparc\t\t\tignored\n"
"--enforce-aligned-data\tforce .long, etc., to be aligned correctly\n"
+"-relax\t\t\trelax jumps and branches (default)\n"
+"-no-relax\t\tavoid changing any jumps and branches\n"
msgstr ""
-#: config/tc-sparc.c:610
+#: config/tc-sparc.c:627
msgid "-k\t\t\tgenerate PIC\n"
msgstr ""
-#: config/tc-sparc.c:614
+#: config/tc-sparc.c:631
msgid ""
"-32\t\t\tcreate 32 bit object file\n"
"-64\t\t\tcreate 64 bit object file\n"
msgstr ""
-#: config/tc-sparc.c:617
+#: config/tc-sparc.c:634
#, c-format
msgid "\t\t\t[default is %d]\n"
msgstr ""
-#: config/tc-sparc.c:619
+#: config/tc-sparc.c:636
msgid ""
"-TSO\t\t\tuse Total Store Ordering\n"
"-PSO\t\t\tuse Partial Store Ordering\n"
"-RMO\t\t\tuse Relaxed Memory Ordering\n"
msgstr ""
-#: config/tc-sparc.c:623
+#: config/tc-sparc.c:640
#, c-format
msgid "\t\t\t[default is %s]\n"
msgstr ""
-#: config/tc-sparc.c:625
+#: config/tc-sparc.c:642
msgid ""
"-KPIC\t\t\tgenerate PIC\n"
"-V\t\t\tprint assembler version number\n"
@@ -5486,7 +6079,7 @@ msgid ""
"-s\t\t\tignored\n"
msgstr ""
-#: config/tc-sparc.c:637
+#: config/tc-sparc.c:654
msgid ""
"-EL\t\t\tgenerate code for a little endian machine\n"
"-EB\t\t\tgenerate code for a big endian machine\n"
@@ -5494,218 +6087,218 @@ msgid ""
" instructions and little endian data.\n"
msgstr ""
-#: config/tc-sparc.c:754
+#: config/tc-sparc.c:771
#, c-format
msgid "Internal error: losing opcode: `%s' \"%s\"\n"
msgstr ""
-#: config/tc-sparc.c:772
+#: config/tc-sparc.c:789
#, c-format
msgid "Internal error: can't find opcode `%s' for `%s'\n"
msgstr ""
-#: config/tc-sparc.c:921
+#: config/tc-sparc.c:938
msgid "Support for 64-bit arithmetic not compiled in."
msgstr ""
-#: config/tc-sparc.c:967
+#: config/tc-sparc.c:984
msgid "set: number not in 0..4294967295 range"
msgstr ""
-#: config/tc-sparc.c:974
+#: config/tc-sparc.c:991
msgid "set: number not in -2147483648..4294967295 range"
msgstr ""
-#: config/tc-sparc.c:1034
+#: config/tc-sparc.c:1051
msgid "setsw: number not in -2147483648..4294967295 range"
msgstr ""
-#: config/tc-sparc.c:1082
+#: config/tc-sparc.c:1099
msgid "setx: temporary register same as destination register"
msgstr ""
-#: config/tc-sparc.c:1152
+#: config/tc-sparc.c:1169
msgid "setx: illegal temporary register g0"
msgstr ""
-#: config/tc-sparc.c:1249
+#: config/tc-sparc.c:1266
msgid "FP branch in delay slot"
msgstr ""
-#: config/tc-sparc.c:1265
+#: config/tc-sparc.c:1282
msgid "FP branch preceded by FP instruction; NOP inserted"
msgstr ""
-#: config/tc-sparc.c:1305
+#: config/tc-sparc.c:1322
msgid "failed special case insn sanity check"
msgstr ""
-#: config/tc-sparc.c:1396
+#: config/tc-sparc.c:1413
msgid ": invalid membar mask name"
msgstr ""
-#: config/tc-sparc.c:1410
+#: config/tc-sparc.c:1427
msgid ": invalid membar mask expression"
msgstr ""
-#: config/tc-sparc.c:1415
+#: config/tc-sparc.c:1432
msgid ": invalid membar mask number"
msgstr ""
-#: config/tc-sparc.c:1433
+#: config/tc-sparc.c:1450
msgid ": invalid prefetch function name"
msgstr ""
-#: config/tc-sparc.c:1441
+#: config/tc-sparc.c:1458
msgid ": invalid prefetch function expression"
msgstr ""
-#: config/tc-sparc.c:1446
+#: config/tc-sparc.c:1463
msgid ": invalid prefetch function number"
msgstr ""
-#: config/tc-sparc.c:1474 config/tc-sparc.c:1486
+#: config/tc-sparc.c:1491 config/tc-sparc.c:1503
msgid ": unrecognizable privileged register"
msgstr ""
-#: config/tc-sparc.c:1510 config/tc-sparc.c:1527
+#: config/tc-sparc.c:1527 config/tc-sparc.c:1544
msgid ": unrecognizable v9a ancillary state register"
msgstr ""
-#: config/tc-sparc.c:1515
+#: config/tc-sparc.c:1532
msgid ": rd on write only ancillary state register"
msgstr ""
-#: config/tc-sparc.c:1551
+#: config/tc-sparc.c:1568
msgid ": asr number must be between 16 and 31"
msgstr ""
-#: config/tc-sparc.c:1559
+#: config/tc-sparc.c:1576
msgid ": asr number must be between 0 and 31"
msgstr ""
-#: config/tc-sparc.c:1569
+#: config/tc-sparc.c:1586
msgid ": expecting %asrN"
msgstr ""
-#: config/tc-sparc.c:1897
+#: config/tc-sparc.c:1914
msgid "detected global register use not covered by .register pseudo-op"
msgstr ""
-#: config/tc-sparc.c:1969
+#: config/tc-sparc.c:1985
msgid ": There are only 64 f registers; [0-63]"
msgstr ""
-#: config/tc-sparc.c:1971 config/tc-sparc.c:1983
+#: config/tc-sparc.c:1987 config/tc-sparc.c:1999
msgid ": There are only 32 f registers; [0-31]"
msgstr ""
-#: config/tc-sparc.c:2102 config/tc-sparc.c:2138
+#: config/tc-sparc.c:2118 config/tc-sparc.c:2154
msgid "Illegal operands: %%%s requires arguments in ()"
msgstr ""
-#: config/tc-sparc.c:2150
+#: config/tc-sparc.c:2166
msgid ""
"Illegal operands: Can't do arithmetics other than + and - involving %%%s()"
msgstr ""
-#: config/tc-sparc.c:2259
+#: config/tc-sparc.c:2275
msgid "Illegal operands: Can't add non-constant expression to %%%s()"
msgstr ""
-#: config/tc-sparc.c:2269
+#: config/tc-sparc.c:2285
msgid ""
"Illegal operands: Can't do arithmetics involving %%%s() of a relocatable "
"symbol"
msgstr ""
-#: config/tc-sparc.c:2287
+#: config/tc-sparc.c:2303
msgid ": PC-relative operand can't be a constant"
msgstr ""
-#: config/tc-sparc.c:2320
+#: config/tc-sparc.c:2336
msgid ": invalid ASI name"
msgstr ""
-#: config/tc-sparc.c:2328
+#: config/tc-sparc.c:2344
msgid ": invalid ASI expression"
msgstr ""
-#: config/tc-sparc.c:2333
+#: config/tc-sparc.c:2349
msgid ": invalid ASI number"
msgstr ""
-#: config/tc-sparc.c:2430
+#: config/tc-sparc.c:2446
msgid "OPF immediate operand out of range (0-0x1ff)"
msgstr ""
-#: config/tc-sparc.c:2435
+#: config/tc-sparc.c:2451
msgid "non-immediate OPF operand, ignored"
msgstr ""
-#: config/tc-sparc.c:2454
+#: config/tc-sparc.c:2470
msgid ": invalid cpreg name"
msgstr ""
-#: config/tc-sparc.c:2483
+#: config/tc-sparc.c:2499
#, c-format
msgid "Illegal operands%s"
msgstr ""
-#: config/tc-sparc.c:2512
+#: config/tc-sparc.c:2528
#, c-format
msgid "architecture bumped from \"%s\" to \"%s\" on \"%s\""
msgstr ""
-#: config/tc-sparc.c:2548
+#: config/tc-sparc.c:2564
#, c-format
msgid "Architecture mismatch on \"%s\"."
msgstr ""
-#: config/tc-sparc.c:2549
+#: config/tc-sparc.c:2565
#, c-format
msgid " (Requires %s; requested architecture is %s.)"
msgstr ""
-#: config/tc-sparc.c:3073
+#: config/tc-sparc.c:3173
#, c-format
msgid "bad or unhandled relocation type: 0x%02x"
msgstr ""
-#: config/tc-sparc.c:3375
+#: config/tc-sparc.c:3475
msgid "bad .reserve segment -- expected BSS segment"
msgstr ""
-#: config/tc-sparc.c:3392
+#: config/tc-sparc.c:3492
msgid "missing alignment"
msgstr ""
-#: config/tc-sparc.c:3403 config/tc-sparc.c:3548
+#: config/tc-sparc.c:3503 config/tc-sparc.c:3648
#, c-format
msgid "alignment too large; assuming %d"
msgstr ""
-#: config/tc-sparc.c:3409 config/tc-sparc.c:3554
+#: config/tc-sparc.c:3509 config/tc-sparc.c:3654
msgid "negative alignment"
msgstr ""
-#: config/tc-sparc.c:3419 config/tc-sparc.c:3577
+#: config/tc-sparc.c:3519 config/tc-sparc.c:3677
msgid "alignment not a power of 2"
msgstr ""
-#: config/tc-sparc.c:3534
+#: config/tc-sparc.c:3634
msgid "Expected comma after common length"
msgstr ""
-#: config/tc-sparc.c:3769 config/tc-sparc.c:3779
+#: config/tc-sparc.c:3869 config/tc-sparc.c:3879
msgid "register syntax is .register %%g[2367],{#scratch|symbolname|#ignore}"
msgstr ""
-#: config/tc-sparc.c:3797
+#: config/tc-sparc.c:3897
msgid "redefinition of global register"
msgstr ""
-#: config/tc-sparc.c:3808
+#: config/tc-sparc.c:3908
#, c-format
msgid "Register symbol %s already defined."
msgstr ""
@@ -6000,153 +6593,153 @@ msgstr ""
msgid ".COMMon length (%d.) < 0! Ignored."
msgstr ""
-#: config/tc-v850.c:1000
+#: config/tc-v850.c:1002
#, c-format
msgid "unknown operand shift: %x\n"
msgstr ""
-#: config/tc-v850.c:1001
+#: config/tc-v850.c:1003
msgid "internal failure in parse_register_list"
msgstr ""
-#: config/tc-v850.c:1019
+#: config/tc-v850.c:1020
msgid "constant expression or register list expected"
msgstr ""
-#: config/tc-v850.c:1024 config/tc-v850.c:1037 config/tc-v850.c:1056
+#: config/tc-v850.c:1025 config/tc-v850.c:1038 config/tc-v850.c:1057
msgid "high bits set in register list expression"
msgstr ""
-#: config/tc-v850.c:1096 config/tc-v850.c:1160
+#: config/tc-v850.c:1097 config/tc-v850.c:1161
msgid "illegal register included in list"
msgstr ""
-#: config/tc-v850.c:1103
+#: config/tc-v850.c:1104
msgid "system registers cannot be included in list"
msgstr ""
-#: config/tc-v850.c:1108
+#: config/tc-v850.c:1109
msgid "PSW cannot be included in list"
msgstr ""
-#: config/tc-v850.c:1115
+#: config/tc-v850.c:1116
msgid "High value system registers cannot be included in list"
msgstr ""
-#: config/tc-v850.c:1139
+#: config/tc-v850.c:1140
msgid "second register should follow dash in register list"
msgstr ""
-#: config/tc-v850.c:1187
+#: config/tc-v850.c:1188
msgid " V850 options:\n"
msgstr ""
-#: config/tc-v850.c:1188
+#: config/tc-v850.c:1189
msgid " -mwarn-signed-overflow Warn if signed immediate values overflow\n"
msgstr ""
-#: config/tc-v850.c:1189
+#: config/tc-v850.c:1190
msgid ""
" -mwarn-unsigned-overflow Warn if unsigned immediate values overflow\n"
msgstr ""
-#: config/tc-v850.c:1190
+#: config/tc-v850.c:1191
msgid " -mv850 The code is targeted at the v850\n"
msgstr ""
-#: config/tc-v850.c:1191
+#: config/tc-v850.c:1192
msgid " -mv850e The code is targeted at the v850e\n"
msgstr ""
-#: config/tc-v850.c:1192
+#: config/tc-v850.c:1193
msgid " -mv850ea The code is targeted at the v850ea\n"
msgstr ""
-#: config/tc-v850.c:1193
+#: config/tc-v850.c:1194
msgid ""
" -mv850any The code is generic, despite any processor "
"specific instructions\n"
msgstr ""
-#: config/tc-v850.c:1204 config/tc-v850.c:1239
+#: config/tc-v850.c:1206 config/tc-v850.c:1241
#, c-format
msgid "unknown command line option: -%c%s\n"
msgstr ""
-#: config/tc-v850.c:1393
+#: config/tc-v850.c:1395
#, c-format
msgid "Unable to determine default target processor from string: %s"
msgstr ""
-#: config/tc-v850.c:1442
+#: config/tc-v850.c:1444
msgid "ctoff() relocation used on an instruction which does not support it"
msgstr ""
-#: config/tc-v850.c:1459
+#: config/tc-v850.c:1461
msgid "sdaoff() relocation used on an instruction which does not support it"
msgstr ""
-#: config/tc-v850.c:1476
+#: config/tc-v850.c:1478
msgid "zdaoff() relocation used on an instruction which does not support it"
msgstr ""
-#: config/tc-v850.c:1494
+#: config/tc-v850.c:1496
msgid "tdaoff() relocation used on an instruction which does not support it"
msgstr ""
-#: config/tc-v850.c:1712
+#: config/tc-v850.c:1713
msgid "Target processor does not support this instruction."
msgstr ""
-#: config/tc-v850.c:1802 config/tc-v850.c:1832 config/tc-v850.c:2018
+#: config/tc-v850.c:1803 config/tc-v850.c:1833 config/tc-v850.c:2019
msgid "immediate operand is too large"
msgstr ""
-#: config/tc-v850.c:1814
+#: config/tc-v850.c:1815
msgid "AAARG -> unhandled constant reloc"
msgstr ""
-#: config/tc-v850.c:1858
+#: config/tc-v850.c:1859
msgid "invalid register name"
msgstr ""
-#: config/tc-v850.c:1863
+#: config/tc-v850.c:1864
msgid "register r0 cannot be used here"
msgstr ""
-#: config/tc-v850.c:1875
+#: config/tc-v850.c:1876
msgid "invalid system register name"
msgstr ""
-#: config/tc-v850.c:1888
+#: config/tc-v850.c:1889
msgid "expected EP register"
msgstr ""
-#: config/tc-v850.c:1904
+#: config/tc-v850.c:1905
msgid "invalid condition code name"
msgstr ""
-#: config/tc-v850.c:1925 config/tc-v850.c:1929
+#: config/tc-v850.c:1926 config/tc-v850.c:1930
msgid "constant too big to fit into instruction"
msgstr ""
-#: config/tc-v850.c:1981
+#: config/tc-v850.c:1982
msgid "syntax error: value is missing before the register name"
msgstr ""
-#: config/tc-v850.c:1983
+#: config/tc-v850.c:1984
msgid "syntax error: register not expected"
msgstr ""
-#: config/tc-v850.c:1997
+#: config/tc-v850.c:1998
msgid "syntax error: system register not expected"
msgstr ""
-#: config/tc-v850.c:2002
+#: config/tc-v850.c:2003
msgid "syntax error: condition code not expected"
msgstr ""
-#: config/tc-v850.c:2038
+#: config/tc-v850.c:2039
msgid "invalid operand"
msgstr ""
@@ -6353,84 +6946,84 @@ msgstr ""
msgid "syntax error after <exp"
msgstr ""
-#: config/tc-z8k.c:290
+#: config/tc-z8k.c:287
#, c-format
msgid "register rr%d, out of range."
msgstr ""
-#: config/tc-z8k.c:298
+#: config/tc-z8k.c:295
#, c-format
msgid "register rh%d, out of range."
msgstr ""
-#: config/tc-z8k.c:306
+#: config/tc-z8k.c:303
#, c-format
msgid "register rl%d, out of range."
msgstr ""
-#: config/tc-z8k.c:315
+#: config/tc-z8k.c:312
#, c-format
msgid "register rq%d, out of range."
msgstr ""
-#: config/tc-z8k.c:323
+#: config/tc-z8k.c:320
#, c-format
msgid "register r%d, out of range."
msgstr ""
-#: config/tc-z8k.c:374
+#: config/tc-z8k.c:371
#, c-format
msgid "expected %c"
msgstr ""
-#: config/tc-z8k.c:390
+#: config/tc-z8k.c:387
#, c-format
msgid "register is wrong size for a word %s"
msgstr ""
-#: config/tc-z8k.c:405
+#: config/tc-z8k.c:402
#, c-format
msgid "register is wrong size for address %s"
msgstr ""
-#: config/tc-z8k.c:680
+#: config/tc-z8k.c:677
msgid "Missing ) in ra(rb)"
msgstr ""
-#: config/tc-z8k.c:947
+#: config/tc-z8k.c:944
#, c-format
msgid "operand %s0x%x out of range."
msgstr ""
-#: config/tc-z8k.c:1086
+#: config/tc-z8k.c:1083
msgid "immediate must be 1 or 2"
msgstr ""
-#: config/tc-z8k.c:1091
+#: config/tc-z8k.c:1088
msgid "immediate 1 or 2 expected"
msgstr ""
-#: config/tc-z8k.c:1119
+#: config/tc-z8k.c:1116
msgid "can't use R0 here"
msgstr ""
-#: config/tc-z8k.c:1278
+#: config/tc-z8k.c:1275
msgid "Can't find opcode to match operands"
msgstr ""
-#: config/tc-z8k.c:1390
+#: config/tc-z8k.c:1387
#, c-format
msgid "invalid architecture -z%s"
msgstr ""
-#: config/tc-z8k.c:1406
+#: config/tc-z8k.c:1403
msgid ""
"Z8K options:\n"
"-z8001\t\t\tgenerate segmented code\n"
"-z8002\t\t\tgenerate unsegmented code\n"
msgstr ""
-#: config/tc-z8k.c:1543
+#: config/tc-z8k.c:1540
#, c-format
msgid "Can't subtract symbols in different sections %s %s"
msgstr ""
@@ -6683,25 +7276,25 @@ msgstr ""
msgid "Character constant too large"
msgstr ""
-#: expr.c:947
+#: expr.c:950
#, c-format
msgid "expr.c(operand): bad atof_generic return val %d"
msgstr ""
-#: expr.c:1007
+#: expr.c:1010
msgid "Missing ')' assumed"
msgstr ""
-#: expr.c:1018 read.c:3866
+#: expr.c:1021 read.c:3864
msgid "EBCDIC constants are not supported"
msgstr ""
-#: expr.c:1088
+#: expr.c:1091
#, c-format
msgid "Unary operator %c ignored because bad operand follows"
msgstr ""
-#: expr.c:1134 expr.c:1159
+#: expr.c:1137 expr.c:1162
msgid "syntax error in .startof. or .sizeof."
msgstr ""
@@ -6709,44 +7302,44 @@ msgstr ""
msgid "Bad expression"
msgstr ""
-#: expr.c:1677
+#: expr.c:1680
msgid "missing operand; zero assumed"
msgstr ""
-#: expr.c:1710
+#: expr.c:1713
msgid "operation combines symbols in different segments"
msgstr ""
-#: expr.c:1726
+#: expr.c:1729
msgid "left operand is a bignum; integer 0 assumed"
msgstr ""
-#: expr.c:1728
+#: expr.c:1731
msgid "left operand is a float; integer 0 assumed"
msgstr ""
-#: expr.c:1737
+#: expr.c:1740
msgid "right operand is a bignum; integer 0 assumed"
msgstr ""
-#: expr.c:1739
+#: expr.c:1742
msgid "right operand is a float; integer 0 assumed"
msgstr ""
-#: expr.c:1787 symbols.c:1109
+#: expr.c:1797 symbols.c:1109
msgid "division by zero"
msgstr ""
-#: frags.c:85
+#: frags.c:87
#, c-format
msgid "Can't extend frag %d. chars"
msgstr ""
-#: frags.c:170
+#: frags.c:175
msgid "attempt to allocate data in absolute section"
msgstr ""
-#: frags.c:176
+#: frags.c:181
msgid "attempt to allocate data in common section"
msgstr ""
@@ -6835,7 +7428,7 @@ msgid "form COL= needs absolute expresssion.\n"
msgstr ""
#. Turns the next expression into a string
-#: gasp.c:1563 macro.c:366
+#: gasp.c:1563 macro.c:377
#, c-format
msgid "% operator needs absolute expression"
msgstr ""
@@ -7107,14 +7700,14 @@ msgid "Can't close %s"
msgstr ""
#: input-scrub.c:270
-msgid "buffers nested too deeply"
+msgid "macros nested too deeply"
msgstr ""
-#: input-scrub.c:371
+#: input-scrub.c:372
msgid "partial line at end of file ignored"
msgstr ""
-#: input-scrub.c:393
+#: input-scrub.c:394
msgid "Partial line at end of file ignored"
msgstr ""
@@ -7148,39 +7741,39 @@ msgstr ""
msgid "New line in title"
msgstr ""
-#: macro.c:529
+#: macro.c:540
msgid "unexpected end of file in macro definition"
msgstr ""
-#: macro.c:538
+#: macro.c:549
msgid "missing ) after formals"
msgstr ""
-#: macro.c:695
+#: macro.c:706
msgid "missplaced )"
msgstr ""
-#: macro.c:957
+#: macro.c:968
msgid "confusion in formal parameters"
msgstr ""
-#: macro.c:962
+#: macro.c:973
msgid "macro formal argument does not exist"
msgstr ""
-#: macro.c:977
+#: macro.c:988
msgid "can't mix positional and keyword arguments"
msgstr ""
-#: macro.c:985
+#: macro.c:996
msgid "too many positional arguments"
msgstr ""
-#: macro.c:1165
+#: macro.c:1176
msgid "unexpected end of file in irp or irpc"
msgstr ""
-#: macro.c:1173
+#: macro.c:1184
msgid "missing model parameter"
msgstr ""
@@ -7251,319 +7844,319 @@ msgstr ""
msgid "Can't continue"
msgstr ""
-#: read.c:454
+#: read.c:452
#, c-format
msgid "error constructing %s pseudo-op table: %s"
msgstr ""
-#: read.c:819
+#: read.c:817
#, c-format
msgid "Unknown pseudo-op: `%s'"
msgstr ""
-#: read.c:952
+#: read.c:950
#, c-format
msgid "label \"%d$\" redefined"
msgstr ""
-#: read.c:1169
+#: read.c:1167
msgid ".abort detected. Abandoning ship."
msgstr ""
-#: read.c:1260 read.c:2033
+#: read.c:1258 read.c:2031
msgid "Alignment not a power of 2"
msgstr ""
-#: read.c:1268
+#: read.c:1266
#, c-format
msgid "Alignment too large: %u assumed"
msgstr ""
-#: read.c:1300
+#: read.c:1298
msgid "expected fill pattern missing"
msgstr ""
-#: read.c:1497
+#: read.c:1495
#, c-format
msgid "attempt to re-define symbol `%s'"
msgstr ""
#. Some of the back ends can't deal with non-positive line numbers.
#. Besides, it's silly.
-#: read.c:1621
+#: read.c:1619
#, c-format
msgid "Line numbers must be positive; line number %d rejected."
msgstr ""
-#: read.c:1648
+#: read.c:1646
msgid "start address not supported"
msgstr ""
-#: read.c:1658
+#: read.c:1656
msgid ".err encountered"
msgstr ""
-#: read.c:1677 read.c:1679
+#: read.c:1675 read.c:1677
#, c-format
msgid ".fail %ld encountered"
msgstr ""
-#: read.c:1716
+#: read.c:1714
#, c-format
msgid ".fill size clamped to %d."
msgstr ""
-#: read.c:1721
+#: read.c:1719
msgid "Size negative: .fill ignored."
msgstr ""
-#: read.c:1727
+#: read.c:1725
msgid "Repeat < 0, .fill ignored"
msgstr ""
-#: read.c:1885
+#: read.c:1883
#, c-format
msgid "unrecognized .linkonce type `%s'"
msgstr ""
-#: read.c:1898 read.c:1924
+#: read.c:1896 read.c:1922
msgid ".linkonce is not supported for this object file format"
msgstr ""
-#: read.c:1920
+#: read.c:1918
#, c-format
msgid "bfd_set_section_flags: %s"
msgstr ""
-#: read.c:1989
+#: read.c:1987
#, c-format
msgid "error setting flags for \".sbss\": %s"
msgstr ""
-#: read.c:2011
+#: read.c:2009
msgid "Expected comma after size"
msgstr ""
-#: read.c:2019
+#: read.c:2017
msgid "Missing alignment"
msgstr ""
-#: read.c:2161
+#: read.c:2159
msgid "bad expression"
msgstr ""
-#: read.c:2292
+#: read.c:2290
#, c-format
msgid "attempt to redefine pseudo-op `%s' ignored"
msgstr ""
-#: read.c:2358
+#: read.c:2356
#, c-format
msgid "invalid segment \"%s\"; segment \"%s\" assumed"
msgstr ""
-#: read.c:2364
+#: read.c:2362
msgid "ignoring fill value in absolute section"
msgstr ""
-#: read.c:2367
+#: read.c:2365
msgid "only constant offsets supported in absolute section"
msgstr ""
-#: read.c:2399
+#: read.c:2397
msgid "MRI style ORG pseudo-op not supported"
msgstr ""
-#: read.c:2487
+#: read.c:2485
msgid "unrecognized section type"
msgstr ""
-#: read.c:2555
+#: read.c:2553
#, c-format
msgid "unrecognized section type `%s'"
msgstr ""
-#: read.c:2569
+#: read.c:2567
msgid "absolute sections are not supported"
msgstr ""
-#: read.c:2584
+#: read.c:2582
#, c-format
msgid "unrecognized section command `%s'"
msgstr ""
-#: read.c:2672
+#: read.c:2670
#, c-format
msgid "%s without %s"
msgstr ""
-#: read.c:2876
+#: read.c:2874
msgid "Unsupported variable size or fill value"
msgstr ""
-#: read.c:2901
+#: read.c:2899
msgid ".space repeat count is zero, ignored"
msgstr ""
-#: read.c:2903
+#: read.c:2901
msgid ".space repeat count is negative, ignored"
msgstr ""
-#: read.c:2932
+#: read.c:2930
msgid "space allocation too complex in absolute section"
msgstr ""
-#: read.c:2937
+#: read.c:2935
msgid "space allocation too complex in common section"
msgstr ""
-#: read.c:3024 read.c:4113
+#: read.c:3022 read.c:4111
#, c-format
msgid "Bad floating literal: %s"
msgstr ""
-#: read.c:3100
+#: read.c:3098
#, c-format
msgid "Rest of line ignored. First ignored character is `%c'."
msgstr ""
-#: read.c:3103
+#: read.c:3101
#, c-format
msgid "Rest of line ignored. First ignored character valued 0x%x."
msgstr ""
-#: read.c:3154
+#: read.c:3152
msgid "illegal expression; zero assumed"
msgstr ""
-#: read.c:3156
+#: read.c:3154
msgid "missing expression; zero assumed"
msgstr ""
-#: read.c:3329
+#: read.c:3327
msgid "rva without symbol"
msgstr ""
-#: read.c:3454
+#: read.c:3452
msgid "attempt to store value in absolute section"
msgstr ""
-#: read.c:3492 read.c:4390
+#: read.c:3490 read.c:4388
msgid "zero assumed for missing expression"
msgstr ""
-#: read.c:3504 read.c:4402
+#: read.c:3502 read.c:4400
msgid "register value used as expression"
msgstr ""
#. Leading bits contain both 0s & 1s.
-#: read.c:3594
+#: read.c:3592
#, c-format
msgid "Value 0x%lx truncated to 0x%lx."
msgstr ""
-#: read.c:3610
+#: read.c:3608
#, c-format
msgid "Bignum truncated to %d bytes"
msgstr ""
-#: read.c:3687
+#: read.c:3685
#, c-format
msgid "unsupported BFD relocation size %u"
msgstr ""
-#: read.c:3776
+#: read.c:3774
msgid "using a bit field width of zero"
msgstr ""
-#: read.c:3784
+#: read.c:3782
#, c-format
msgid "field width \"%s\" too complex for a bitfield"
msgstr ""
-#: read.c:3792
+#: read.c:3790
#, c-format
msgid "field width %lu too big to fit in %d bytes: truncated to %d bits"
msgstr ""
-#: read.c:3813
+#: read.c:3811
#, c-format
msgid "field value \"%s\" too complex for a bitfield"
msgstr ""
-#: read.c:3937
+#: read.c:3935
msgid "Unresolvable or nonpositive repeat count; using 1"
msgstr ""
-#: read.c:3988
+#: read.c:3986
#, c-format
msgid "Unknown floating type type '%c'"
msgstr ""
-#: read.c:4010
+#: read.c:4008
msgid "Floating point constant too large"
msgstr ""
-#: read.c:4135
+#: read.c:4133
msgid "unresolvable or nonpositive repeat count; using 1"
msgstr ""
-#: read.c:4539
+#: read.c:4537
msgid "Expected <nn>"
msgstr ""
#. To be compatible with BSD 4.2 as: give the luser a linefeed!!
-#: read.c:4572 read.c:4655
+#: read.c:4570 read.c:4653
msgid "Unterminated string: Newline inserted."
msgstr ""
-#: read.c:4663
+#: read.c:4661
msgid "Bad escaped character in string, '?' assumed"
msgstr ""
-#: read.c:4689
+#: read.c:4687
msgid "expected address expression; zero assumed"
msgstr ""
-#: read.c:4709
+#: read.c:4707
#, c-format
msgid "symbol \"%s\" undefined; zero assumed"
msgstr ""
-#: read.c:4712
+#: read.c:4710
msgid "some symbol undefined; zero assumed"
msgstr ""
-#: read.c:4730
+#: read.c:4728
msgid "bad or irreducible absolute expression; zero assumed"
msgstr ""
-#: read.c:4768
+#: read.c:4766
msgid "This string may not contain '\\0'"
msgstr ""
-#: read.c:4807
+#: read.c:4805
msgid "Missing string"
msgstr ""
-#: read.c:5036
+#: read.c:5034
msgid "missing .func"
msgstr ""
-#: read.c:5053
+#: read.c:5051
msgid ".endfunc missing for previous .func"
msgstr ""
-#: stabs.c:209
+#: stabs.c:208
msgid ".stabs: Missing comma"
msgstr ""
-#: stabs.c:217 stabs.c:225 stabs.c:236
+#: stabs.c:216 stabs.c:224 stabs.c:235
#, c-format
msgid ".stab%c: Missing comma"
msgstr ""
-#: stabs.c:415
+#: stabs.c:414
msgid "comma missing in .xstabs"
msgstr ""
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 3a7af64..19b7f99 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
+
+ * gas/m68k/all.exp: Don't execute tests if the target is m68hc11&12.
+ * gas/m68hc11/all.exp: Specific tests for m68hc11.
+ * gas/m68hc11/all_insns.[ds]: Check m68hc11 instructions.
+ * gas/m68hc11/insns[ds]: Another test.
+ * gas/m68hc11/lbranch.[ds]: Check branch optimization (gas relax).
+ * gas/m68hc11/opers12.[ds]: New files, check m68hc12 operands.
+
2000-06-17 Alan Modra <alan@linuxcare.com.au>
* gas/macros/strings.s: Don't start directives in first column
diff --git a/gas/testsuite/gas/m68hc11/all.exp b/gas/testsuite/gas/m68hc11/all.exp
new file mode 100644
index 0000000..15be4e3
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/all.exp
@@ -0,0 +1,18 @@
+#
+# Some generic m68HC11 tests
+#
+if ![istarget "m68hc11-*-*"] then {
+ if ![istarget "m6811-*-*"] then {
+ if ![istarget "m68hc12-*-*"] then {
+ if ![istarget "m6812-*-*"] then {
+ return
+ }
+ }
+ }
+}
+run_dump_test insns
+run_dump_test lbranch
+run_dump_test all_insns
+
+# Some 68HC12 tests
+run_dump_test opers12
diff --git a/gas/testsuite/gas/m68hc11/all_insns.d b/gas/testsuite/gas/m68hc11/all_insns.d
new file mode 100644
index 0000000..adb516c
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/all_insns.d
@@ -0,0 +1,352 @@
+#objdump: -d --prefix-addresses
+#as: -m68hc11
+#name: all_insns
+
+# Test handling of basic instructions.
+
+.*: +file format elf32\-m68hc11
+
+Disassembly of section .text:
+0+000 <L0> aba
+0+001 <L1> abx
+0+002 <L2> aby
+0+004 <L3> adca #103
+0+006 <L4> adca \*0+000 <L0>
+0+008 <L5> adca 105,x
+0+00a <L6> adca 0+000 <L0>
+0+00d <L7> adca 81,x
+0+00f <L8> adcb #255
+0+011 <L9> adcb \*0+000 <L0>
+0+013 <L10> adcb 236,x
+0+015 <L11> adcb 0+000 <L0>
+0+018 <L12> adcb 205,x
+0+01a <L13> adda #186
+0+01c <L14> adda \*0+000 <L0>
+0+01e <L15> adda 242,x
+0+020 <L16> adda 0+000 <L0>
+0+023 <L17> adda 227,x
+0+025 <L18> addb #70
+0+027 <L19> addb \*0+000 <L0>
+0+029 <L20> addb 194,x
+0+02b <L21> addb 0+000 <L0>
+0+02e <L22> addb 248,x
+0+030 <L23> addd #0000231b <L330\+0x2034>
+0+033 <L24> addd \*0+000 <L0>
+0+035 <L25> addd 231,x
+0+037 <L26> addd 0+000 <L0>
+0+03a <L27> addd 118,x
+0+03c <L28> anda #90
+0+03e <L29> anda \*0+000 <L0>
+0+040 <L30> anda 99,x
+0+042 <L31> anda 0+000 <L0>
+0+045 <L32> anda 159,x
+0+047 <L33> andb #201
+0+049 <L34> andb \*0+000 <L0>
+0+04b <L35> andb 102,x
+0+04d <L36> andb 0+000 <L0>
+0+050 <L37> andb 13,x
+0+052 <L38> asl 183,x
+0+054 <L39> asl 0+000 <L0>
+0+057 <L40> asl 88,x
+0+059 <L41> asla
+0+05a <L42> aslb
+0+05b <L43> asld
+0+05c <L44> asr 163,x
+0+05e <L45> asr 0+000 <L0>
+0+061 <L46> asr 37,x
+0+063 <L47> asra
+0+064 <L48> asrb
+0+065 <L49> bcs 0+06a <L50>
+0+067 <L49\+0x2> jmp 0+0f3 <L93>
+0+06a <L50> bclr \*0+000 <L0> #\$00
+0+06d <L51> bclr 88,x #\$00
+0+070 <L52> bclr 94,x #\$00
+0+073 <L53> bcc 0+078 <L54>
+0+075 <L53\+0x2> jmp 0+1a8 <L171>
+0+078 <L54> bne 0+07d <L55>
+0+07a <L54\+0x2> jmp 0+1b6 <L178>
+0+07d <L55> blt 0+082 <L56>
+0+07f <L55\+0x2> jmp 0+1f5 <L205>
+0+082 <L56> ble 0+087 <L57>
+0+084 <L56\+0x2> jmp 0+1e4 <L198>
+0+087 <L57> bls 0+08c <L58>
+0+089 <L57\+0x2> jmp 0+18a <L155>
+0+08c <L58> bcs 0+091 <L59>
+0+08e <L58\+0x2> jmp 0+1bb <L180>
+0+091 <L59> bita #84
+0+093 <L60> bita \*0+000 <L0>
+0+095 <L61> bita 14,x
+0+097 <L62> bita 0+000 <L0>
+0+09a <L63> bita 116,x
+0+09c <L64> bitb #65
+0+09e <L65> bitb \*0+000 <L0>
+0+0a0 <L66> bitb 61,x
+0+0a2 <L67> bitb 0+000 <L0>
+0+0a5 <L68> bitb 135,x
+0+0a7 <L69> ble 0+11d <L112>
+0+0a9 <L70> bcc 0+0ae <L71>
+0+0ab <L70\+0x2> jmp 0+22e <L233>
+0+0ae <L71> bls 0+097 <L62>
+0+0b0 <L72> bge 0+0b5 <L73>
+0+0b2 <L72\+0x2> jmp 0+197 <L161>
+0+0b5 <L73> bmi 0+09e <L65>
+0+0b7 <L74> beq 0+0bc <L75>
+0+0b9 <L74\+0x2> jmp 0+220 <L225>
+0+0bc <L75> bmi 0+0c1 <L76>
+0+0be <L75\+0x2> jmp 0+24e <L252>
+0+0c1 <L76> bra 0+106 <L103>
+0+0c3 <L77> brclr \*0+000 <L0> #\$00 0+145 <L125\+0x2>
+0+0c7 <L78> brclr 151,x #\$00 0+127 <L115>
+0+0cb <L79> brclr 107,x #\$00 0+0de <L84\+0x1>
+0+0cf <L80> brn 0+082 <L56>
+0+0d1 <L81> brset \*0+000 <L0> #\$00 0+141 <L124>
+0+0d5 <L82> brset 176,x #\$00 0+154 <L132>
+0+0d9 <L83> brset 50,x #\$00 0+119 <L110\+0x2>
+0+0dd <L84> bset \*0+000 <L0> #\$00
+0+0e0 <L85> bset 24,x #\$00
+0+0e3 <L86> bset 92,x #\$00
+0+0e6 <L87> jsr 0+037 <L26>
+0+0e9 <L88> bvs 0+0ee <L89>
+0+0eb <L88\+0x2> jmp 0+253 <L254>
+0+0ee <L89> bvs 0+0a2 <L67>
+0+0f0 <L90> cba
+0+0f1 <L91> clc
+0+0f2 <L92> cli
+0+0f3 <L93> clr 251,x
+0+0f5 <L94> clr 0+000 <L0>
+0+0f8 <L95> clr 170,x
+0+0fa <L96> clra
+0+0fb <L97> clrb
+0+0fc <L98> clv
+0+0fd <L99> cmpa #58
+0+0ff <L100> cmpa \*0+000 <L0>
+0+101 <L101> cmpa 41,x
+0+103 <L102> cmpa 0+000 <L0>
+0+106 <L103> cmpa 230,x
+0+108 <L104> cmpb #5
+0+10a <L105> cmpb \*0+000 <L0>
+0+10c <L106> cmpb 124,x
+0+10e <L107> cmpb 0+000 <L0>
+0+111 <L108> cmpb 117,x
+0+113 <L109> cpd #0+fd8 <L330\+0xcf1>
+0+117 <L110> cpd \*0+000 <L0>
+0+11a <L111> cpd 97,x
+0+11d <L112> cpd 0+000 <L0>
+0+121 <L113> cpd 249,x
+0+124 <L114> cpx #0000af5c <L330\+0xac75>
+0+127 <L115> cpx \*0+000 <L0>
+0+129 <L116> cpx 168,x
+0+12b <L117> cpx 0+000 <L0>
+0+12e <L118> cpx 15,x
+0+130 <L119> cpy #00004095 <L330\+0x3dae>
+0+134 <L120> cpy \*0+000 <L0>
+0+137 <L121> cpy 235,x
+0+13a <L122> cpy 0+000 <L0>
+0+13e <L123> cpy 179,x
+0+141 <L124> com 5,x
+0+143 <L125> com 0+000 <L0>
+0+146 <L126> com 247,x
+0+148 <L127> coma
+0+149 <L128> comb
+0+14a <L129> cpd #0000bf00 <L330\+0xbc19>
+0+14e <L130> cpd \*0+000 <L0>
+0+151 <L131> cpd 161,x
+0+154 <L132> cpd 0+000 <L0>
+0+158 <L133> cpd 229,x
+0+15b <L134> cpx #00008fca <L330\+0x8ce3>
+0+15e <L135> cpx \*0+000 <L0>
+0+160 <L136> cpx 203,x
+0+162 <L137> cpx 0+000 <L0>
+0+165 <L138> cpx 72,x
+0+167 <L139> cpy #0+247 <L248>
+0+16b <L140> cpy \*0+000 <L0>
+0+16e <L141> cpy 189,x
+0+171 <L142> cpy 0+000 <L0>
+0+175 <L143> cpy 35,x
+0+178 <L144> daa
+0+179 <L145> dec 30,x
+0+17b <L146> dec 0+000 <L0>
+0+17e <L147> dec 28,x
+0+180 <L148> deca
+0+181 <L149> decb
+0+182 <L150> des
+0+183 <L151> dex
+0+184 <L152> dey
+0+186 <L153> eora #123
+0+188 <L154> eora \*0+000 <L0>
+0+18a <L155> eora 197,x
+0+18c <L156> eora 0+000 <L0>
+0+18f <L157> eora 115,x
+0+191 <L158> eorb #90
+0+193 <L159> eorb \*0+000 <L0>
+0+195 <L160> eorb 94,x
+0+197 <L161> eorb 0+000 <L0>
+0+19a <L162> eorb 121,x
+0+19c <L163> fdiv
+0+19d <L164> idiv
+0+19e <L165> inc 99,x
+0+1a0 <L166> inc 0+000 <L0>
+0+1a3 <L167> inc 112,x
+0+1a5 <L168> inca
+0+1a6 <L169> incb
+0+1a7 <L170> ins
+0+1a8 <L171> inx
+0+1a9 <L172> iny
+0+1ab <L173> jmp 100,x
+0+1ad <L174> jmp 0+000 <L0>
+0+1b0 <L175> jmp 17,x
+0+1b2 <L176> jsr \*0+000 <L0>
+0+1b4 <L177> jsr 9,x
+0+1b6 <L178> jsr 0+000 <L0>
+0+1b9 <L179> jsr 170,x
+0+1bb <L180> ldaa #212
+0+1bd <L181> ldaa \*0+000 <L0>
+0+1bf <L182> ldaa 242,x
+0+1c1 <L183> ldaa 0+000 <L0>
+0+1c4 <L184> ldaa 16,x
+0+1c6 <L185> ldab #175
+0+1c8 <L186> ldab \*0+000 <L0>
+0+1ca <L187> ldab 51,x
+0+1cc <L188> ldab 0+000 <L0>
+0+1cf <L189> ldab 227,x
+0+1d1 <L190> ldd #0000c550 <L330\+0xc269>
+0+1d4 <L191> ldd \*0+000 <L0>
+0+1d6 <L192> ldd 71,x
+0+1d8 <L193> ldd 0+000 <L0>
+0+1db <L194> ldd 92,x
+0+1dd <L195> lds #00004fbb <L330\+0x4cd4>
+0+1e0 <L196> lds \*0+000 <L0>
+0+1e2 <L197> lds 34,x
+0+1e4 <L198> lds 0+000 <L0>
+0+1e7 <L199> lds 186,x
+0+1e9 <L200> ldx #0000579b <L330\+0x54b4>
+0+1ec <L201> ldx \*0+000 <L0>
+0+1ee <L202> ldx 245,x
+0+1f0 <L203> ldx 0+000 <L0>
+0+1f3 <L204> ldx 225,x
+0+1f5 <L205> ldy #0000ac1a <L330\+0xa933>
+0+1f9 <L206> ldy \*0+000 <L0>
+0+1fc <L207> ldy 127,x
+0+1ff <L208> ldy 0+000 <L0>
+0+203 <L209> ldy 248,x
+0+206 <L210> asl 41,x
+0+208 <L211> asl 0+000 <L0>
+0+20b <L212> asl 164,x
+0+20d <L213> asla
+0+20e <L214> aslb
+0+20f <L215> asld
+0+210 <L216> lsr 27,x
+0+212 <L217> lsr 0+000 <L0>
+0+215 <L218> lsr 181,x
+0+217 <L219> lsra
+0+218 <L220> lsrb
+0+219 <L221> lsrd
+0+21a <L222> mul
+0+21b <L223> neg 202,x
+0+21d <L224> neg 0+000 <L0>
+0+220 <L225> neg 232,x
+0+222 <L226> nega
+0+223 <L227> negb
+0+224 <L228> nop
+0+225 <L229> oraa #152
+0+227 <L230> oraa \*0+000 <L0>
+0+229 <L231> oraa 56,x
+0+22b <L232> oraa 0+000 <L0>
+0+22e <L233> oraa 121,x
+0+230 <L234> orab #77
+0+232 <L235> orab \*0+000 <L0>
+0+234 <L236> orab 52,x
+0+236 <L237> orab 0+000 <L0>
+0+239 <L238> orab 95,x
+0+23b <L239> psha
+0+23c <L240> pshb
+0+23d <L241> pshx
+0+23e <L242> pshy
+0+240 <L243> pula
+0+241 <L244> pulb
+0+242 <L245> pulx
+0+243 <L246> puly
+0+245 <L247> rol 78,x
+0+247 <L248> rol 0+000 <L0>
+0+24a <L249> rol 250,x
+0+24c <L250> rola
+0+24d <L251> rolb
+0+24e <L252> ror 203,x
+0+250 <L253> ror 0+000 <L0>
+0+253 <L254> ror 5,x
+0+255 <L255> rora
+0+256 <L256> rorb
+0+257 <L257> rti
+0+258 <L258> rts
+0+259 <L259> sba
+0+25a <L260> sbca #172
+0+25c <L261> sbca \*0+000 <L0>
+0+25e <L262> sbca 33,x
+0+260 <L263> sbca 0+000 <L0>
+0+263 <L264> sbca 170,x
+0+265 <L265> sbcb #26
+0+267 <L266> sbcb \*0+000 <L0>
+0+269 <L267> sbcb 162,x
+0+26b <L268> sbcb 0+000 <L0>
+0+26e <L269> sbcb 112,x
+0+270 <L270> sec
+0+271 <L271> sei
+0+272 <L272> sev
+0+273 <L273> staa \*0+000 <L0>
+0+275 <L274> staa 115,x
+0+277 <L275> staa 0+000 <L0>
+0+27a <L276> staa 4,x
+0+27c <L277> stab \*0+000 <L0>
+0+27e <L278> stab 211,x
+0+280 <L279> stab 0+000 <L0>
+0+283 <L280> stab 148,x
+0+285 <L281> std \*0+000 <L0>
+0+287 <L282> std 175,x
+0+289 <L283> std 0+000 <L0>
+0+28c <L284> std 240,x
+0+28e <L285> stop
+0+28f <L286> sts \*0+000 <L0>
+0+291 <L287> sts 158,x
+0+293 <L288> sts 0+000 <L0>
+0+296 <L289> sts 50,x
+0+298 <L290> stx \*0+000 <L0>
+0+29a <L291> stx 73,x
+0+29c <L292> stx 0+000 <L0>
+0+29f <L293> stx 130,x
+0+2a1 <L294> sty \*0+000 <L0>
+0+2a4 <L295> sty 169,x
+0+2a7 <L296> sty 0+000 <L0>
+0+2ab <L297> sty 112,x
+0+2ae <L298> suba #212
+0+2b0 <L299> suba \*0+000 <L0>
+0+2b2 <L300> suba 138,x
+0+2b4 <L301> suba 0+000 <L0>
+0+2b7 <L302> suba 84,x
+0+2b9 <L303> subb #72
+0+2bb <L304> subb \*0+000 <L0>
+0+2bd <L305> subb 10,x
+0+2bf <L306> subb 0+000 <L0>
+0+2c2 <L307> subb 213,x
+0+2c4 <L308> subd #0000f10e <L330\+0xee27>
+0+2c7 <L309> subd \*0+000 <L0>
+0+2c9 <L310> subd 168,x
+0+2cb <L311> subd 0+000 <L0>
+0+2ce <L312> subd 172,x
+0+2d0 <L313> swi
+0+2d1 <L314> tab
+0+2d2 <L315> tap
+0+2d3 <L316> tba
+ ...
+0+2d5 <L318> tpa
+0+2d6 <L319> tst 91,x
+0+2d8 <L320> tst 0+000 <L0>
+0+2db <L321> tst 142,x
+0+2dd <L322> tsta
+0+2de <L323> tstb
+0+2df <L324> tsx
+0+2e0 <L325> tsy
+0+2e2 <L326> txs
+0+2e3 <L327> tys
+0+2e5 <L328> wai
+0+2e6 <L329> xgdx
+0+2e7 <L330> xgdy
diff --git a/gas/testsuite/gas/m68hc11/all_insns.s b/gas/testsuite/gas/m68hc11/all_insns.s
new file mode 100644
index 0000000..f20b5b9
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/all_insns.s
@@ -0,0 +1,335 @@
+# Example of M68hc11 instructions
+ .sect .text
+_start:
+L0: aba
+L1: abx
+L2: aby
+L3: adca #103
+L4: adca *Z198
+L5: adca 105,X
+L6: adca symbol115
+L7: adca 81,X
+L8: adcb #255
+L9: adcb *Z74
+L10: adcb 236,X
+L11: adcb symbol41
+L12: adcb 205,X
+L13: adda #186
+L14: adda *Z171
+L15: adda 242,X
+L16: adda symbol251
+L17: adda 227,X
+L18: addb #70
+L19: addb *Z124
+L20: addb 194,X
+L21: addb symbol84
+L22: addb 248,X
+L23: addd #8987
+L24: addd *Z232
+L25: addd 231,X
+L26: addd symbol141
+L27: addd 118,X
+L28: anda #90
+L29: anda *Z46
+L30: anda 99,X
+L31: anda symbol51
+L32: anda 159,X
+L33: andb #201
+L34: andb *Z154
+L35: andb 102,X
+L36: andb symbol50
+L37: andb 13,X
+L38: asl 183,X
+L39: asl symbol49
+L40: asl 88,X
+L41: asla
+L42: aslb
+L43: asld
+L44: asr 163,X
+L45: asr symbol90
+L46: asr 37,X
+L47: asra
+L48: asrb
+L49: bcc L93
+L50: bclr *Z5 #$17
+L51: bclr 88,X #$e9
+L52: bclr 94,X #$d4
+L53: bcs L171
+L54: beq L178
+L55: bge L205
+L56: bgt L198
+L57: bhi L155
+L58: bhs L180
+L59: bita #84
+L60: bita *Z17
+L61: bita 14,X
+L62: bita symbol130
+L63: bita 116,X
+L64: bitb #65
+L65: bitb *Z33
+L66: bitb 61,X
+L67: bitb symbol220
+L68: bitb 135,X
+L69: ble L112
+L70: blo L233
+L71: bls L62
+L72: blt L161
+L73: bmi L65
+L74: bne L225
+L75: bpl L252
+L76: bra L103
+L77: brclr *Z62 #$01 .+126
+L78: brclr 151,X #$ea .+92
+L79: brclr 107,X #$96 .+15
+L80: brn L56
+L81: brset *Z92 #$2a .+108
+L82: brset 176,X #$3b .+123
+L83: brset 50,X #$af .+60
+L84: bset *Z84 #$ec
+L85: bset 24,X #$db
+L86: bset 92,X #$02
+L87: bsr L26
+L88: bvc L254
+L89: bvs L67
+L90: cba
+L91: clc
+L92: cli
+L93: clr 251,X
+L94: clr symbol250
+L95: clr 170,X
+L96: clra
+L97: clrb
+L98: clv
+L99: cmpa #58
+L100: cmpa *Z251
+L101: cmpa 41,X
+L102: cmpa symbol209
+L103: cmpa 230,X
+L104: cmpb #5
+L105: cmpb *Z60
+L106: cmpb 124,X
+L107: cmpb symbol148
+L108: cmpb 117,X
+L109: cmpd #4056
+L110: cmpd *Z190
+L111: cmpd 97,X
+L112: cmpd symbol137
+L113: cmpd 249,X
+L114: cmpx #44892
+L115: cmpx *Z187
+L116: cmpx 168,X
+L117: cmpx symbol153
+L118: cmpx 15,X
+L119: cmpy #16533
+L120: cmpy *Z177
+L121: cmpy 235,X
+L122: cmpy symbol241
+L123: cmpy 179,X
+L124: com 5,X
+L125: com symbol239
+L126: com 247,X
+L127: coma
+L128: comb
+L129: cpd #48896
+L130: cpd *Z233
+L131: cpd 161,X
+L132: cpd symbol58
+L133: cpd 229,X
+L134: cpx #36810
+L135: cpx *Z11
+L136: cpx 203,X
+L137: cpx symbol208
+L138: cpx 72,X
+L139: cpy #583
+L140: cpy *Z100
+L141: cpy 189,X
+L142: cpy symbol31
+L143: cpy 35,X
+L144: daa
+L145: dec 30,X
+L146: dec symbol168
+L147: dec 28,X
+L148: deca
+L149: decb
+L150: des
+L151: dex
+L152: dey
+L153: eora #123
+L154: eora *Z100
+L155: eora 197,X
+L156: eora symbol20
+L157: eora 115,X
+L158: eorb #90
+L159: eorb *Z197
+L160: eorb 94,X
+L161: eorb symbol75
+L162: eorb 121,X
+L163: fdiv
+L164: idiv
+L165: inc 99,X
+L166: inc symbol59
+L167: inc 112,X
+L168: inca
+L169: incb
+L170: ins
+L171: inx
+L172: iny
+L173: jmp 100,X
+L174: jmp symbol36
+L175: jmp 17,X
+L176: jsr *Z158
+L177: jsr 9,X
+L178: jsr symbol220
+L179: jsr 170,X
+L180: ldaa #212
+L181: ldaa *Z172
+L182: ldaa 242,X
+L183: ldaa symbol27
+L184: ldaa 16,X
+L185: ldab #175
+L186: ldab *Z59
+L187: ldab 51,X
+L188: ldab symbol205
+L189: ldab 227,X
+L190: ldd #50512
+L191: ldd *Z72
+L192: ldd 71,X
+L193: ldd symbol21
+L194: ldd 92,X
+L195: lds #20411
+L196: lds *Z111
+L197: lds 34,X
+L198: lds symbol25
+L199: lds 186,X
+L200: ldx #22427
+L201: ldx *Z125
+L202: ldx 245,X
+L203: ldx symbol11
+L204: ldx 225,X
+L205: ldy #44058
+L206: ldy *Z28
+L207: ldy 127,X
+L208: ldy symbol35
+L209: ldy 248,X
+L210: lsl 41,X
+L211: lsl symbol248
+L212: lsl 164,X
+L213: lsla
+L214: lslb
+L215: lsld
+L216: lsr 27,X
+L217: lsr symbol19
+L218: lsr 181,X
+L219: lsra
+L220: lsrb
+L221: lsrd
+L222: mul
+L223: neg 202,X
+L224: neg symbol78
+L225: neg 232,X
+L226: nega
+L227: negb
+L228: nop
+L229: oraa #152
+L230: oraa *Z50
+L231: oraa 56,X
+L232: oraa symbol224
+L233: oraa 121,X
+L234: orab #77
+L235: orab *Z61
+L236: orab 52,X
+L237: orab symbol188
+L238: orab 95,X
+L239: psha
+L240: pshb
+L241: pshx
+L242: pshy
+L243: pula
+L244: pulb
+L245: pulx
+L246: puly
+L247: rol 78,X
+L248: rol symbol119
+L249: rol 250,X
+L250: rola
+L251: rolb
+L252: ror 203,X
+L253: ror symbol108
+L254: ror 5,X
+L255: rora
+L256: rorb
+L257: rti
+L258: rts
+L259: sba
+L260: sbca #172
+L261: sbca *Z134
+L262: sbca 33,X
+L263: sbca symbol43
+L264: sbca 170,X
+L265: sbcb #26
+L266: sbcb *Z85
+L267: sbcb 162,X
+L268: sbcb symbol190
+L269: sbcb 112,X
+L270: sec
+L271: sei
+L272: sev
+L273: staa *Z181
+L274: staa 115,X
+L275: staa symbol59
+L276: staa 4,X
+L277: stab *Z92
+L278: stab 211,X
+L279: stab symbol54
+L280: stab 148,X
+L281: std *Z179
+L282: std 175,X
+L283: std symbol226
+L284: std 240,X
+L285: stop
+L286: sts *Z228
+L287: sts 158,X
+L288: sts symbol79
+L289: sts 50,X
+L290: stx *Z21
+L291: stx 73,X
+L292: stx symbol253
+L293: stx 130,X
+L294: sty *Z78
+L295: sty 169,X
+L296: sty symbol8
+L297: sty 112,X
+L298: suba #212
+L299: suba *Z178
+L300: suba 138,X
+L301: suba symbol41
+L302: suba 84,X
+L303: subb #72
+L304: subb *Z154
+L305: subb 10,X
+L306: subb symbol188
+L307: subb 213,X
+L308: subd #61710
+L309: subd *Z24
+L310: subd 168,X
+L311: subd symbol68
+L312: subd 172,X
+L313: swi
+L314: tab
+L315: tap
+L316: tba
+L317: test
+L318: tpa
+L319: tst 91,X
+L320: tst symbol243
+L321: tst 142,X
+L322: tsta
+L323: tstb
+L324: tsx
+L325: tsy
+L326: txs
+L327: tys
+L328: wai
+L329: xgdx
+L330: xgdy
+
diff --git a/gas/testsuite/gas/m68hc11/insns.d b/gas/testsuite/gas/m68hc11/insns.d
new file mode 100644
index 0000000..fe09680
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/insns.d
@@ -0,0 +1,44 @@
+#objdump: -d --prefix-addresses
+#as: -m68hc11
+#name: insns
+
+# Test handling of basic instructions.
+
+.*: +file format elf32\-m68hc11
+
+Disassembly of section .text:
+0+000 <_start> lds #0+0400 <L1\+0x3a9>
+0+003 <_start\+0x3> ldx #0+0001 <_start\+0x1>
+0+006 <Loop> jsr 0+0010 <test>
+0+009 <Loop\+0x3> dex
+0+00a <Loop\+0x4> bne 0+0006 <Loop>
+0+00c <Stop> .byte 0xcd, 0x03
+0+00e <Stop\+0x2> bra 0+0000 <_start>
+0+010 <test> ldd #0+0002 <_start\+0x2>
+0+013 <test\+0x3> jsr 0+0017 <test2>
+0+016 <test\+0x6> rts
+0+017 <test2> ldx 23,y
+0+01a <test2\+0x3> std 23,x
+0+01c <test2\+0x5> ldd 0,x
+0+01e <test2\+0x7> sty 0,y
+0+021 <test2\+0xa> stx 0,y
+0+024 <test2\+0xd> brclr 6,x #\$04 00000017 <test2>
+0+028 <test2\+0x11> brclr 12,x #\$08 00000017 <test2>
+0+02c <test2\+0x15> ldd \*0+0 <_start>
+0+02e <test2\+0x17> ldx \*0+2 <_start\+0x2>
+0+030 <test2\+0x19> clr 0+0 <_start>
+0+033 <test2\+0x1c> clr 0+1 <_start\+0x1>
+0+036 <test2\+0x1f> bne 0+34 <test2\+0x1d>
+0+038 <test2\+0x21> beq 0+3c <test2\+0x25>
+0+03a <test2\+0x23> bclr \*0+1 <_start\+0x1> #\$20
+0+03d <test2\+0x26> brclr \*0+2 <_start\+0x2> #\$28 0+017 <test2>
+0+041 <test2\+0x2a> ldy #0+ffec <L1\+0xff95>
+0+045 <test2\+0x2e> ldd 12,y
+0+048 <test2\+0x31> addd 44,y
+0+04b <test2\+0x34> addd 50,y
+0+04e <test2\+0x37> subd 0+02c <test2\+0x15>
+0+051 <test2\+0x3a> subd #0+02c <test2\+0x15>
+0+054 <test2\+0x3d> jmp 0000000c <Stop>
+0+057 <L1> anda #23
+0+059 <L1\+0x2> andb #0
+0+05b <L1\+0x4> rts \ No newline at end of file
diff --git a/gas/testsuite/gas/m68hc11/insns.s b/gas/testsuite/gas/m68hc11/insns.s
new file mode 100644
index 0000000..2b2f971
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/insns.s
@@ -0,0 +1,60 @@
+# Test for correct generation of 68HC11 insns.
+
+ .globl _start
+ .sect .text
+
+_start:
+ lds #stack+1024
+ ldx #1
+Loop:
+ jsr test
+ dex
+ bne Loop
+Stop:
+
+ .byte 0xcd
+ .byte 3
+ bra _start
+
+test:
+ ldd #2
+ jsr test2
+ rts
+
+B_low = 12
+A_low = 44
+D_low = 50
+value = 23
+
+ .globl test2
+test2:
+ ldx value,y
+ std value,x
+ ldd ,x
+ sty ,y
+ stx ,y
+ brclr 6,x,#4,test2
+ brclr 12,x #8 test2
+ ldd *ZD1
+ ldx *ZD1+2
+ clr *ZD2
+ clr *ZD2+1
+ bne .-4
+ beq .+2
+ bclr *ZD1+1, #32
+ brclr *ZD2+2, #40, test2
+ ldy #24+_start-44
+ ldd B_low,y
+ addd A_low,y
+ addd D_low,y
+ subd A_low
+ subd #A_low
+ jmp Stop
+L1:
+ anda #%lo(test2)
+ andb #%hi(test2)
+ rts
+
+ .sect .data
+
+.comm stack, 1024
diff --git a/gas/testsuite/gas/m68hc11/lbranch.d b/gas/testsuite/gas/m68hc11/lbranch.d
new file mode 100644
index 0000000..74cda03
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/lbranch.d
@@ -0,0 +1,47 @@
+#objdump: -d --prefix-addresses
+#as: -m68hc11
+#name: lbranch
+
+# Test handling of basic instructions.
+
+.*: +file format elf32\-m68hc11
+
+Disassembly of section .text:
+0+0000 <_rcall> ldaa #16
+0+0002 <_rcall\+0x2> jmp 0+010b <Lend>
+0+0005 <_rcall\+0x5> jsr 0+011b <toto>
+0+0008 <_rcall\+0x8> beq 0+000d <_rcall\+0xd>
+0+000a <_rcall\+0xa> jmp 0+011b <toto>
+0+000d <_rcall\+0xd> bne 0+0012 <_rcall\+0x12>
+0+000f <_rcall\+0xf> jmp 0+011b <toto>
+0+0012 <_rcall\+0x12> bcc 0+0017 <_rcall\+0x17>
+0+0014 <_rcall\+0x14> jmp 0+011b <toto>
+0+0017 <_rcall\+0x17> bcs 0+001c <_rcall\+0x1c>
+0+0019 <_rcall\+0x19> jmp 0+011b <toto>
+0+001c <_rcall\+0x1c> xgdx
+0+001d <_rcall\+0x1d> xgdx
+0+001e <_rcall\+0x1e> bne 0+0023 <_rcall\+0x23>
+0+0020 <_rcall\+0x20> jmp 0+0180 <bidule>
+0+0023 <_rcall\+0x23> bcc 0+0028 <_rcall\+0x28>
+0+0025 <_rcall\+0x25> jmp 0+0180 <bidule>
+0+0028 <_rcall\+0x28> bcs 0+002d <_rcall\+0x2d>
+0+002a <_rcall\+0x2a> jmp 0+0180 <bidule>
+0+002d <_rcall\+0x2d> xgdx
+0+002e <_rcall\+0x2e> jmp 0+00c8 <_rcall\+0xc8>
+0+0031 <_rcall\+0x31> jsr 0+0783 <bidule\+0x603>
+0+0034 <_rcall\+0x34> beq 0+0039 <_rcall\+0x39>
+0+0036 <_rcall\+0x36> jmp 0+010b <Lend>
+0+0039 <_rcall\+0x39> jsr 0+011b <toto>
+0+003c <_rcall\+0x3c> bne 0+0041 <_rcall\+0x41>
+0+003e <_rcall\+0x3e> jmp 0+011b <toto>
+[ ]*\.\.\.
+0+0109 <_rcall\+0x109> ldaa \*0+0000 <_rcall>
+0+010b <Lend> bls 0+0110 <Lend\+0x5>
+0+010d <Lend\+0x2> jmp 0+0000 <_rcall>
+0+0110 <Lend\+0x5> bhi 0+0115 <Lend\+0xa>
+0+0112 <Lend\+0x7> jmp 0+0000 <_rcall>
+0+0115 <Lend\+0xa> jsr 0+0000 <_rcall>
+0+0118 <Lend\+0xd> ldx #0+000c <_rcall\+0xc>
+0+011b <toto> rts
+[ ]*\.\.\.
+0+0180 <bidule> rts
diff --git a/gas/testsuite/gas/m68hc11/lbranch.s b/gas/testsuite/gas/m68hc11/lbranch.s
new file mode 100644
index 0000000..568d8a7
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/lbranch.s
@@ -0,0 +1,41 @@
+# Test for the 68HC11 long branch switch
+ .text
+ .globl _rcall
+ .globl _start
+_start:
+_rcall:
+ ldaa #0x10 ;86 10
+ jbra Lend ; Must be switched to a jmp
+ jbsr toto ; -> to a jsr
+ jbne toto ; -> to a beq+jmp
+ jbeq toto ; -> to a bne+jmp
+ jbcs toto ; -> to a bcc+jmp
+ jbcc toto ; -> to a bcs+jmp
+ xgdx
+ xgdx
+ beq bidule ; -> to a bne+jmp
+ bcs bidule ; -> to a bcc+jmp
+ bcc bidule ; -> to a bcs+jmp
+ xgdx
+ jbra 200
+ jbsr 1923
+ bne Lend ; -> to a beq+jmp
+ jbsr toto
+ jbeq toto
+ .skip 200
+ ldaa *dir ;96 33
+Lend:
+ bhi external_op
+ bls external_op
+ bsr out
+ ldx #12
+toto:
+ rts
+ .skip 100
+bidule:
+ rts
+ .sect ".page0"
+dir:
+ .long 0
+
+ ; END
diff --git a/gas/testsuite/gas/m68hc11/opers12.d b/gas/testsuite/gas/m68hc11/opers12.d
new file mode 100644
index 0000000..fec02eb
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/opers12.d
@@ -0,0 +1,70 @@
+#objdump: -d --prefix-addresses
+#as: -m68hc12
+#name: opers
+
+.*: +file format elf32\-m68hc12
+
+Disassembly of section .text:
+0+000 <start> anda \[12,X\]
+0+004 <start\+0x4> ldaa #10
+0+006 <start\+0x6> ldx 0+009 <L1>
+0+009 <L1> ldy 0,X
+0+00b <L1\+0x2> addd 1,Y
+0+00d <L1\+0x4> subd -1,Y
+0+00f <L1\+0x6> eora 15,Y
+0+011 <L1\+0x8> eora -16,Y
+0+013 <L1\+0xa> eorb 16,Y
+0+016 <L1\+0xd> eorb -17,Y
+0+019 <L1\+0x10> oraa 128,SP
+0+01c <L1\+0x13> orab -128,SP
+0+01f <L1\+0x16> orab 255,X
+0+022 <L1\+0x19> orab -256,X
+0+025 <L1\+0x1c> anda 256,X
+0+029 <L1\+0x20> andb -257,X
+0+02d <L1\+0x24> anda \[12,X\]
+0+031 <L1\+0x28> ldaa \[257,Y\]
+0+035 <L1\+0x2c> ldab \[32767,SP\]
+0+039 <L1\+0x30> ldd \[32768,PC\]
+0+03d <L1\+0x34> ldd 0,PC
+0+040 <L1\+0x37> std A,X
+0+042 <L1\+0x39> ldx B,X
+0+044 <L1\+0x3b> stx D,Y
+0+046 <L1\+0x3d> addd 1,\+X
+0+048 <L1\+0x3f> addd 2,\+X
+0+04a <L1\+0x41> addd 8,\+X
+0+04c <L1\+0x43> addd 1,SP\+
+0+04e <L1\+0x45> addd 2,SP\+
+0+050 <L1\+0x47> addd 8,SP\+
+0+052 <L1\+0x49> subd 1,\-Y
+0+054 <L1\+0x4b> subd 2,\-Y
+0+056 <L1\+0x4d> subd 8,\-Y
+0+058 <L1\+0x4f> addd 1,Y\-
+0+05a <L1\+0x51> addd 2,Y\-
+0+05c <L1\+0x53> addd 8,Y\-
+0+05e <L1\+0x55> std \[D,X\]
+0+060 <L1\+0x57> std \[D,Y\]
+0+062 <L1\+0x59> std \[D,SP\]
+0+064 <L1\+0x5b> std \[D,PC\]
+0+066 <L1\+0x5d> beq 0+009 <L1>
+0+068 <L1\+0x5f> lbeq 0+000 <start>
+0+06c <L1\+0x63> lbcc 0+0bc <L2>
+0+070 <L1\+0x67> movb 0+000 <start>, 1,X
+0+075 <L1\+0x6c> movw 1,X, 0+000 <start>
+0+07a <L1\+0x71> movb 0+000 <start>, 1,\+X
+0+07f <L1\+0x76> movb 0+000 <start>, 1,\-X
+0+084 <L1\+0x7b> movb #23, 1,\-SP
+0+088 <L1\+0x7f> movb 0+009 <L1>, 0+0bc <L2>
+0+08e <L1\+0x85> movb 0+009 <L1>, A,X
+0+093 <L1\+0x8a> movw 0+009 <L1>, B,X
+0+098 <L1\+0x8f> movw 0+009 <L1>, D,X
+0+09d <L1\+0x94> movw D,X, A,X
+0+0a1 <L1\+0x98> movw B,SP, D,PC
+0+0a5 <L1\+0x9c> movw B,SP, 0+009 <L1>
+0+0aa <L1\+0xa1> movw B,SP, 1,X
+0+0ae <L1\+0xa5> movw D,X, A,Y
+0+0b2 <L1\+0xa9> trap #48
+0+0b4 <L1\+0xab> trap #57
+0+0b6 <L1\+0xad> trap #64
+0+0b8 <L1\+0xaf> trap #128
+0+0ba <L1\+0xb1> trap #255
+0+0bc <L2> rts
diff --git a/gas/testsuite/gas/m68hc11/opers12.s b/gas/testsuite/gas/m68hc11/opers12.s
new file mode 100644
index 0000000..dcf53d1
--- /dev/null
+++ b/gas/testsuite/gas/m68hc11/opers12.s
@@ -0,0 +1,72 @@
+
+#
+# Try to verify all operand modes for 68HC12
+#
+ sect .text
+ globl start
+
+start:
+ anda [12,x]
+ ldaa #10
+ ldx L1
+L1: ldy ,x
+ addd 1,y
+ subd -1,y
+ eora 15,y
+ eora -16,y
+ eorb 16,y
+ eorb -17,y
+ oraa 128,sp
+ orab -128,sp
+ orab 255,x
+ orab -256,x
+ anda 256,x
+ andb -257,x
+ anda [12,x]
+ ldaa [257,y]
+ ldab [32767,sp]
+ ldd [32768,pc]
+ ldd L1,pc
+ std a,x
+ ldx b,x
+ stx d,y
+ addd 1,+x
+ addd 2,+x
+ addd 8,+x
+ addd 1,sp+
+ addd 2,sp+
+ addd 8,sp+
+ subd 1,-y
+ subd 2,-y
+ subd 8,-y
+ addd 1,y-
+ addd 2,y-
+ addd 8,y-
+ std [d,x]
+ std [d,y]
+ std [d,sp]
+ std [d,pc]
+ beq L1
+ lbeq start
+ lbcc L2
+ movb start, 1,x
+ movw 1,x, start
+ movb start, 1,+x
+ movb start, 1,-x
+ movb #23, 1,-sp
+ movb L1, L2
+ movb L1, a,x
+ movw L1, b,x
+ movw L1, d,x
+ movw d,x, a,x
+ movw b,sp, d,pc
+ movw b,sp, L1
+ movw b,sp, 1,x
+ movw d,x, a,y
+ trap #0x30
+ trap #0x39
+ trap #0x40
+ trap #0x80
+ trap #255
+L2:
+ rts
diff --git a/gas/testsuite/gas/m68k/all.exp b/gas/testsuite/gas/m68k/all.exp
index 88ab2a0..d526170 100644
--- a/gas/testsuite/gas/m68k/all.exp
+++ b/gas/testsuite/gas/m68k/all.exp
@@ -1,6 +1,18 @@
#
# Some generic m68k tests
#
+if [istarget "m68hc11-*-*"] then {
+ return
+}
+if [istarget "m68hc12-*-*"] then {
+ return
+}
+if [istarget "m6811-*-*"] then {
+ return
+}
+if [istarget "m6812-*-*"] then {
+ return
+}
if [istarget m68*-*-*] then {
gas_test "t2.s" "" "" "cross-section branch"
if [istarget m68*-motorola-sysv] then {
@@ -36,4 +48,4 @@ if [istarget m68*-*-*] then {
}
if [info exists errorInfo] then {
unset errorInfo
- }
+}
diff --git a/gprof/Makefile.in b/gprof/Makefile.in
index ac7ab19..3258251 100644
--- a/gprof/Makefile.in
+++ b/gprof/Makefile.in
@@ -178,7 +178,7 @@ aclocal.m4 configure configure.in gconfig.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
SOURCES = $(gprof_SOURCES)
OBJECTS = $(gprof_OBJECTS)
diff --git a/gprof/po/gprof.pot b/gprof/po/gprof.pot
index 9936964..47f6fda 100644
--- a/gprof/po/gprof.pot
+++ b/gprof/po/gprof.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-04-04 23:21+0930\n"
+"POT-Creation-Date: 2000-06-18 16:58-0700\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"
@@ -250,81 +250,75 @@ msgstr ""
msgid "%s: bfd_vma has unexpected size of %ld bytes\n"
msgstr ""
-#: gmon_io.c:87 gmon_io.c:182
+#: gmon_io.c:90 gmon_io.c:185
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr ""
-#: gmon_io.c:97 gmon_io.c:215
+#: gmon_io.c:100 gmon_io.c:218
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr ""
-#: gmon_io.c:108
+#: gmon_io.c:111
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr ""
-#: gmon_io.c:138
+#: gmon_io.c:141
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr ""
-#: gmon_io.c:203
+#: gmon_io.c:206
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr ""
-#: gmon_io.c:232
+#: gmon_io.c:235
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr ""
-#: gmon_io.c:258
+#: gmon_io.c:261
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr ""
-#: gmon_io.c:280
+#: gmon_io.c:283
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr ""
-#: gmon_io.c:315
+#: gmon_io.c:318
msgid "time is in ticks, not seconds\n"
msgstr ""
-#: gmon_io.c:321 gmon_io.c:461
+#: gmon_io.c:324 gmon_io.c:464
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr ""
-#: gmon_io.c:328
+#: gmon_io.c:331
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr ""
-#: gmon_io.c:330
+#: gmon_io.c:333
#, c-format
msgid "\t%d histogram record%s\n"
msgstr ""
-#: gmon_io.c:332
+#: gmon_io.c:335
#, c-format
msgid "\t%d call-graph record%s\n"
msgstr ""
-#: gmon_io.c:334
+#: gmon_io.c:337
#, c-format
msgid "\t%d basic-block count record%s\n"
msgstr ""
-#: gprof.c:59
-msgid ""
-"@(#) Copyright (c) 1983 Regents of the University of California.\n"
-" All rights reserved.\n"
-msgstr ""
-
#: gprof.c:144
#, c-format
msgid ""
@@ -461,12 +455,12 @@ msgstr ""
msgid "Flat profile:\n"
msgstr ""
-#: source.c:140
+#: source.c:155
#, c-format
msgid "%s: could not locate `%s'\n"
msgstr ""
-#: source.c:200
+#: source.c:242
#, c-format
msgid "*** File %s:\n"
msgstr ""
diff --git a/include/ChangeLog b/include/ChangeLog
index 5d3b6c4..2440179 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
+
+ * dis-asm.h (print_insn_m68hc12): Define.
+ (print_insn_m68hc11): Likewise.
+
2000-06-18 Nick Clifton <nickc@redhat.com>
* os9k.h: Change values of MODSYNC and CRCCON due to bug report
diff --git a/include/dis-asm.h b/include/dis-asm.h
index 7efd4e0..c34ce5c 100644
--- a/include/dis-asm.h
+++ b/include/dis-asm.h
@@ -159,6 +159,8 @@ extern int print_insn_i386_att PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_i386_intel PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_ia64 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_i370 PARAMS ((bfd_vma, disassemble_info*));
+extern int print_insn_m68hc11 PARAMS ((bfd_vma, disassemble_info*));
+extern int print_insn_m68hc12 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_m68k PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_z8001 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_z8002 PARAMS ((bfd_vma, disassemble_info*));
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index 8783be8..0a103ae 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,7 @@
+2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
+
+ * m68hc11.h: New file, definitions for the Motorola 68hc11.
+
2000-06-06 Alan Modra <alan@linuxcare.com.au>
* reloc-macros.h (START_RELOC_NUMBERS): Don't define initial dummy
@@ -120,6 +124,12 @@ Thu Feb 17 00:18:33 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
(EF_SH3, EF_SH_HAS_DSP, EF_SH_DSP, EF_SH3_DSP): Likewise.
(EF_SH_HAS_FP, EF_SH3E, EF_SH4, EF_SH_MERGE_MACH): Likewise.
+2000-03-10 Geoffrey Keating <geoffk@cygnus.com>
+
+ * mips.h: Add R_MIPS_GNU_REL_HI16, R_MIPS_GNU_REL_LO16,
+ R_MIPS_GNU_REL16_S2, R_MIPS_PC64 and R_MIPS_PC32 relocation
+ numbers.
+
2000-02-03 H.J. Lu <hjl@gnu.org>
* arm-oabi.h: Duplicate changes made to arm.h on Jan. 27,
@@ -245,6 +255,20 @@ Mon Oct 4 17:42:38 1999 Doug Evans <devans@canuck.cygnus.com>
* pj.h: New file.
* common.h (EM_PJ): Define.
+Wed Dec 1 03:02:15 1999 Jeffrey A Law (law@cygnus.com)
+
+ * mn10300.h (E_MN10300_MACH_AM33): Define.
+
+Mon Oct 11 22:42:37 1999 Jeffrey A Law (law@cygnus.com)
+
+ * hppa.h (PF_HP_PAGE_SIZE): Define.
+ (PF_HP_FAR_SHARED, PF_HP_NEAR_SHARED, PF_HP_CODE): Likewise.
+ (PF_HP_MODIFY, PF_HP_LAZYSWAP, PF_HP_SBP): Likewise.
+
+1999-09-15 Ulrich Drepper <drepper@cygnus.com>
+
+ * hppa.h: Add DT_HP_GST_SIZE, DT_HP_GST_VERSION, and DT_HP_GST_HASHVAL.
+
1999-09-02 Ulrich Drepper <drepper@cygnus.com>
* hppa.h: Add HPUX specific symbol type definitions.
diff --git a/include/elf/m68hc11.h b/include/elf/m68hc11.h
new file mode 100644
index 0000000..30e0556
--- /dev/null
+++ b/include/elf/m68hc11.h
@@ -0,0 +1,42 @@
+/* m68hc11 & m68hc12 ELF support for BFD.
+ Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+
+ This file is part of BFD, the Binary File Descriptor library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef _ELF_M68HC11_H
+#define _ELF_M68HC11_H
+
+#include "elf/reloc-macros.h"
+
+/* Relocation types. */
+START_RELOC_NUMBERS (elf_m68hc11_reloc_type)
+ RELOC_NUMBER (R_M68HC11_NONE, 0)
+ RELOC_NUMBER (R_M68HC11_8, 1)
+ RELOC_NUMBER (R_M68HC11_HI8, 2)
+ RELOC_NUMBER (R_M68HC11_LO8, 3)
+ RELOC_NUMBER (R_M68HC11_PCREL_8, 4)
+ RELOC_NUMBER (R_M68HC11_16, 5)
+ RELOC_NUMBER (R_M68HC11_32, 6)
+ RELOC_NUMBER (R_M68HC11_3B, 7)
+ RELOC_NUMBER (R_M68HC11_PCREL_16, 8)
+
+ /* These are GNU extensions to enable C++ vtable garbage collection. */
+ RELOC_NUMBER (R_M68HC11_GNU_VTINHERIT, 9)
+ RELOC_NUMBER (R_M68HC11_GNU_VTENTRY, 10)
+END_RELOC_NUMBERS (R_M68HC11_max)
+
+#endif
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index e3605e4..73504e2 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,3 +1,7 @@
+2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
+
+ * m68hc11.h: New file for support of Motorola 68hc11.
+
Fri Jun 9 21:51:50 2000 Denis Chertykov <denisc@overta.ru>
* avr.h: clr,lsl,rol, ... moved after add,adc, ...
diff --git a/include/opcode/cgen.h b/include/opcode/cgen.h
index 1db272b..ff89785 100644
--- a/include/opcode/cgen.h
+++ b/include/opcode/cgen.h
@@ -736,7 +736,7 @@ typedef struct
the data is recorded in the parse/insert/extract/print switch statements. */
/* This should be at least as large as necessary for any target. */
-#define CGEN_MAX_SYNTAX_BYTES 32
+#define CGEN_MAX_SYNTAX_BYTES 40
/* A target may know its own precise maximum. Assert that it falls below
the above limit. */
diff --git a/include/opcode/m68hc11.h b/include/opcode/m68hc11.h
new file mode 100644
index 0000000..52a2461
--- /dev/null
+++ b/include/opcode/m68hc11.h
@@ -0,0 +1,418 @@
+/* m68hc11.h -- Header file for Motorola 68HC11 & 68HC12 opcode table
+ Copyright 1999, 2000 Free Software Foundation, Inc.
+ Written by Stephane Carrez (stcarrez@worldnet.fr)
+
+This file is part of GDB, GAS, and the GNU binutils.
+
+GDB, GAS, and the GNU binutils are free software; you can redistribute
+them and/or modify them under the terms of the GNU General Public
+License as published by the Free Software Foundation; either version
+1, or (at your option) any later version.
+
+GDB, GAS, and the GNU binutils are distributed in the hope that they
+will be useful, but WITHOUT ANY WARRANTY; without even the implied
+warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this file; see the file COPYING. If not, write to the Free
+Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#ifndef _OPCODE_M68HC11_H
+#define _OPCODE_M68HC11_H
+
+/* Flags for the definition of the 68HC11 & 68HC12 CCR. */
+#define M6811_S_BIT 0x80 /* Stop disable */
+#define M6811_X_BIT 0x40 /* X-interrupt mask */
+#define M6811_H_BIT 0x20 /* Half carry flag */
+#define M6811_I_BIT 0x10 /* I-interrupt mask */
+#define M6811_N_BIT 0x08 /* Negative */
+#define M6811_Z_BIT 0x04 /* Zero */
+#define M6811_V_BIT 0x02 /* Overflow */
+#define M6811_C_BIT 0x01 /* Carry */
+
+/* 68HC11 register address offsets (range 0..0x3F or 0..64).
+ The absolute address of the I/O register depends on the setting
+ of the M6811_INIT register. At init time, the I/O registers are
+ mapped at 0x1000. Address of registers is then:
+
+ 0x1000 + M6811_xxx
+*/
+#define M6811_PORTA 0x00 /* Port A register */
+#define M6811__RES1 0x01 /* Unused/Reserved */
+#define M6811_PIOC 0x02 /* Parallel I/O Control register */
+#define M6811_PORTC 0x03 /* Port C register */
+#define M6811_PORTB 0x04 /* Port B register */
+#define M6811_PORTCL 0x05 /* Alternate latched port C */
+#define M6811__RES6 0x06 /* Unused/Reserved */
+#define M6811_DDRC 0x07 /* Data direction register for port C */
+#define M6811_PORTD 0x08 /* Port D register */
+#define M6811_DDRD 0x09 /* Data direction register for port D */
+#define M6811_PORTE 0x0A /* Port E input register */
+#define M6811_CFORC 0x0B /* Compare Force Register */
+#define M6811_OC1M 0x0C /* OC1 Action Mask register */
+#define M6811_OC1D 0x0D /* OC1 Action Data register */
+#define M6811_TCTN 0x0E /* Timer Counter Register */
+#define M6811_TCTN_H 0x0E /* " " " High part */
+#define M6811_TCTN_L 0x0F /* " " " Low part */
+#define M6811_TIC1 0x10 /* Input capture 1 register */
+#define M6811_TIC1_H 0x10 /* " " " High part */
+#define M6811_TIC1_L 0x11 /* " " " Low part */
+#define M6811_TIC2 0x12 /* Input capture 2 register */
+#define M6811_TIC2_H 0x12 /* " " " High part */
+#define M6811_TIC2_L 0x13 /* " " " Low part */
+#define M6811_TIC3 0x14 /* Input capture 3 register */
+#define M6811_TIC3_H 0x14 /* " " " High part */
+#define M6811_TIC3_L 0x15 /* " " " Low part */
+#define M6811_TOC1 0x16 /* Output Compare 1 register */
+#define M6811_TOC1_H 0x16 /* " " " High part */
+#define M6811_TOC1_L 0x17 /* " " " Low part */
+#define M6811_TOC2 0x18 /* Output Compare 2 register */
+#define M6811_TOC2_H 0x18 /* " " " High part */
+#define M6811_TOC2_L 0x19 /* " " " Low part */
+#define M6811_TOC3 0x1A /* Output Compare 3 register */
+#define M6811_TOC3_H 0x1A /* " " " High part */
+#define M6811_TOC3_L 0x1B /* " " " Low part */
+#define M6811_TOC4 0x1C /* Output Compare 4 register */
+#define M6811_TOC4_H 0x1C /* " " " High part */
+#define M6811_TOC4_L 0x1D /* " " " Low part */
+#define M6811_TOC5 0x1E /* Output Compare 5 register */
+#define M6811_TOC5_H 0x1E /* " " " High part */
+#define M6811_TOC5_L 0x1F /* " " " Low part */
+#define M6811_TCTL1 0x20 /* Timer Control register 1 */
+#define M6811_TCTL2 0x21 /* Timer Control register 2 */
+#define M6811_TMSK1 0x22 /* Timer Interrupt Mask Register 1 */
+#define M6811_TFLG1 0x23 /* Timer Interrupt Flag Register 1 */
+#define M6811_TMSK2 0x24 /* Timer Interrupt Mask Register 2 */
+#define M6811_TFLG2 0x25 /* Timer Interrupt Flag Register 2 */
+#define M6811_PACTL 0x26 /* Pulse Accumulator Control Register */
+#define M6811_PACNT 0x27 /* Pulse Accumulator Count Register */
+#define M6811_SPCR 0x28 /* SPI Control register */
+#define M6811_SPSR 0x29 /* SPI Status register */
+#define M6811_SPDR 0x2A /* SPI Data register */
+#define M6811_BAUD 0x2B /* SCI Baud register */
+#define M6811_SCCR1 0x2C /* SCI Control register 1 */
+#define M6811_SCCR2 0x2D /* SCI Control register 2 */
+#define M6811_SCSR 0x2E /* SCI Status register */
+#define M6811_SCDR 0x2F /* SCI Data (Read => RDR, Write => TDR) */
+#define M6811_ADCTL 0x30 /* A/D Control register */
+#define M6811_ADR1 0x31 /* A/D, Analog Result register 1 */
+#define M6811_ADR2 0x32 /* A/D, Analog Result register 2 */
+#define M6811_ADR3 0x33 /* A/D, Analog Result register 3 */
+#define M6811_ADR4 0x34 /* A/D, Analog Result register 4 */
+#define M6811__RES35 0x35
+#define M6811__RES36 0x36
+#define M6811__RES37 0x37
+#define M6811__RES38 0x38
+#define M6811_OPTION 0x39 /* System Configuration Options */
+#define M6811_COPRST 0x3A /* Arm/Reset COP Timer Circuitry */
+#define M6811_PPROG 0x3B /* EEPROM Programming Control Register */
+#define M6811_HPRIO 0x3C /* Highest priority I-Bit int and misc */
+#define M6811_INIT 0x3D /* Ram and I/O mapping register */
+#define M6811_TEST1 0x3E /* Factory test control register */
+#define M6811_CONFIG 0x3F /* COP, ROM and EEPROM enables */
+
+
+/* Flags of the CONFIG register (in EEPROM). */
+#define M6811_NOSEC 0x08 /* Security mode disable */
+#define M6811_NOCOP 0x04 /* COP system disable */
+#define M6811_ROMON 0x02 /* Enable on-chip rom */
+#define M6811_EEON 0x01 /* Enable on-chip eeprom */
+
+/* Flags of the PPROG register. */
+#define M6811_BYTE 0x10 /* Byte mode */
+#define M6811_ROW 0x08 /* Row mode */
+#define M6811_ERASE 0x04 /* Erase mode select (1 = erase, 0 = read) */
+#define M6811_EELAT 0x02 /* EEPROM Latch Control */
+#define M6811_EEPGM 0x01 /* EEPROM Programming Voltage Enable */
+
+/* Flags of the PIOC register. */
+#define M6811_STAF 0x80 /* Strobe A Interrupt Status Flag */
+#define M6811_STAI 0x40 /* Strobe A Interrupt Enable Mask */
+#define M6811_CWOM 0x20 /* Port C Wire OR mode */
+#define M6811_HNDS 0x10 /* Handshake mode */
+#define M6811_OIN 0x08 /* Output or Input handshaking */
+#define M6811_PLS 0x04 /* Pulse/Interlocked Handshake Operation */
+#define M6811_EGA 0x02 /* Active Edge for Strobe A */
+#define M6811_INVB 0x01 /* Invert Strobe B */
+
+/* Flags of the SCCR1 register. */
+#define M6811_R8 0x80 /* Receive Data bit 8 */
+#define M6811_T8 0x40 /* Transmit data bit 8 */
+#define M6811__SCCR1_5 0x20 /* Unused */
+#define M6811_M 0x10 /* SCI Character length */
+#define M6811_WAKE 0x08 /* Wake up method select (0=idle, 1=addr mark) */
+
+/* Flags of the SCCR2 register. */
+#define M6811_TIE 0x80 /* Transmit Interrupt enable */
+#define M6811_TCIE 0x40 /* Transmit Complete Interrupt Enable */
+#define M6811_RIE 0x20 /* Receive Interrupt Enable */
+#define M6811_ILIE 0x10 /* Idle Line Interrupt Enable */
+#define M6811_TE 0x08 /* Transmit Enable */
+#define M6811_RE 0x04 /* Receive Enable */
+#define M6811_RWU 0x02 /* Receiver Wake Up */
+#define M6811_SBK 0x01 /* Send Break */
+
+/* Flags of the SCSR register. */
+#define M6811_TDRE 0x80 /* Transmit Data Register Empty */
+#define M6811_TC 0x40 /* Transmit Complete */
+#define M6811_RDRF 0x20 /* Receive Data Register Full */
+#define M6811_IDLE 0x10 /* Idle Line Detect */
+#define M6811_OR 0x08 /* Overrun Error */
+#define M6811_NF 0x04 /* Noise Flag */
+#define M6811_FE 0x02 /* Framing Error */
+#define M6811__SCSR_0 0x01 /* Unused */
+
+/* Flags of the BAUD register. */
+#define M6811_TCLR 0x80 /* Clear Baud Rate (TEST mode) */
+#define M6811__BAUD_6 0x40 /* Not used */
+#define M6811_SCP1 0x20 /* SCI Baud rate prescaler select */
+#define M6811_SCP0 0x10
+#define M6811_RCKB 0x08 /* Baud Rate Clock Check (TEST mode) */
+#define M6811_SCR2 0x04 /* SCI Baud rate select */
+#define M6811_SCR1 0x02
+#define M6811_SCR0 0x01
+
+#define M6811_BAUD_DIV_1 (0)
+#define M6811_BAUD_DIV_3 (M6811_SCP0)
+#define M6811_BAUD_DIV_4 (M6811_SCP1)
+#define M6811_BAUD_DIV_13 (M6811_SCP1|M6811_SCP0)
+
+/* Flags of the SPCR register. */
+#define M6811_SPIE 0x80 /* Serial Peripheral Interrupt Enable */
+#define M6811_SPE 0x40 /* Serial Peripheral System Enable */
+#define M6811_DWOM 0x20 /* Port D Wire-OR mode option */
+#define M6811_MSTR 0x10 /* Master Mode Select */
+#define M6811_CPOL 0x08 /* Clock Polarity */
+#define M6811_CPHA 0x04 /* Clock Phase */
+#define M6811_SPR1 0x02 /* SPI Clock Rate Select */
+#define M6811_SPR0 0x01
+
+/* Flags of the SPSR register. */
+#define M6811_SPIF 0x80 /* SPI Transfer Complete flag */
+#define M6811_WCOL 0x40 /* Write Collision */
+#define M6811_MODF 0x20 /* Mode Fault */
+
+/* Flags of the ADCTL register. */
+#define M6811_CCF 0x80 /* Conversions Complete Flag */
+#define M6811_SCAN 0x20 /* Continuous Scan Control */
+#define M6811_MULT 0x10 /* Multiple Channel/Single Channel Control */
+#define M6811_CD 0x08 /* Channel Select D */
+#define M6811_CC 0x04 /* C */
+#define M6811_CB 0x02 /* B */
+#define M6811_CA 0x01 /* A */
+
+/* Flags of the CFORC register. */
+#define M6811_FOC1 0x80 /* Force Output Compare 1 */
+#define M6811_FOC2 0x40 /* 2 */
+#define M6811_FOC3 0x20 /* 3 */
+#define M6811_FOC4 0x10 /* 4 */
+#define M6811_FOC5 0x08 /* 5 */
+
+/* Flags of the OC1M register. */
+#define M6811_OC1M7 0x80 /* Output Compare 7 */
+#define M6811_OC1M6 0x40 /* 6 */
+#define M6811_OC1M5 0x40 /* 5 */
+#define M6811_OC1M4 0x40 /* 4 */
+#define M6811_OC1M3 0x08 /* 3 */
+
+/* Flags of the OC1D register. */
+#define M6811_OC1D7 0x80
+#define M6811_OC1D6 0x40
+#define M6811_OC1D5 0x20
+#define M6811_OC1D4 0x10
+#define M6811_OC1D3 0x08
+
+/* Flags of the TCTL1 register. */
+#define M6811_OM2 0x80 /* Output Mode 2 */
+#define M6811_OL2 0x40 /* Output Level 2 */
+#define M6811_OM3 0x20
+#define M6811_OL3 0x10
+#define M6811_OM4 0x08
+#define M6811_OL4 0x04
+#define M6811_OM5 0x02
+#define M6811_OL5 0x01
+
+/* Flags of the TCTL2 register. */
+#define M6811_EDG1B 0x20 /* Input Edge Capture Control 1 */
+#define M6811_EDG1A 0x10
+#define M6811_EDG2B 0x08 /* Input 2 */
+#define M6811_EDG2A 0x04
+#define M6811_EDG3B 0x02 /* Input 3 */
+#define M6811_EDG3A 0x01
+
+/* Flags of the TMSK1 register. */
+#define M6811_OC1I 0x80 /* Output Compare 1 Interrupt */
+#define M6811_OC2I 0x40 /* 2 */
+#define M6811_OC3I 0x20 /* 3 */
+#define M6811_OC4I 0x10 /* 4 */
+#define M6811_OC5I 0x08 /* 5 */
+#define M6811_IC1I 0x04 /* Input Capture 1 Interrupt */
+#define M6811_IC2I 0x02 /* 2 */
+#define M6811_IC3I 0x01 /* 3 */
+
+/* Flags of the TFLG1 register. */
+#define M6811_OC1F 0x80 /* Output Compare 1 Flag */
+#define M6811_OC2F 0x40 /* 2 */
+#define M6811_OC3F 0x20 /* 3 */
+#define M6811_OC4F 0x10 /* 4 */
+#define M6811_OC5F 0x08 /* 5 */
+#define M6811_IC1F 0x04 /* Input Capture 1 Flag */
+#define M6811_IC2F 0x02 /* 2 */
+#define M6811_IC3F 0x01 /* 3 */
+
+/* Flags of Timer Interrupt Mask Register 2 (TMSK2). */
+#define M6811_TOI 0x80 /* Timer Overflow Interrupt Enable */
+#define M6811_RTII 0x40 /* RTI Interrupt Enable */
+#define M6811_PAOVI 0x20 /* Pulse Accumulator Overflow Interrupt En. */
+#define M6811_PAII 0x10 /* Pulse Accumulator Interrupt Enable */
+#define M6811_PR1 0x02 /* Timer prescaler */
+#define M6811_PR0 0x01 /* Timer prescaler */
+#define M6811_TPR_1 0x00 /* " " prescale div 1 */
+#define M6811_TPR_4 0x01 /* " " prescale div 4 */
+#define M6811_TPR_8 0x02 /* " " prescale div 8 */
+#define M6811_TPR_16 0x03 /* " " prescale div 16 */
+
+/* Flags of Timer Interrupt Flag Register 2 (M6811_TFLG2). */
+#define M6811_TOF 0x80 /* Timer overflow bit */
+#define M6811_RTIF 0x40 /* Read time interrupt flag */
+#define M6811_PAOVF 0x20 /* Pulse accumulator overflow Interrupt flag */
+#define M6811_PAIF 0x10 /* Pulse accumulator Input Edge " " " */
+
+/* Flags of Pulse Accumulator Control Register (PACTL). */
+#define M6811_DDRA7 0x80 /* Data direction for port A bit 7 */
+#define M6811_PAEN 0x40 /* Pulse accumulator system enable */
+#define M6811_PAMOD 0x20 /* Pulse accumulator mode */
+#define M6811_PEDGE 0x10 /* Pulse accumulator edge control */
+#define M6811_RTR1 0x02 /* RTI Interrupt rates select */
+#define M6811_RTR0 0x01 /* " " " " */
+
+/* Flags of the Options register. */
+#define M6811_ADPU 0x80 /* A/D Powerup */
+#define M6811_CSEL 0x40 /* A/D/EE Charge pump clock source select */
+#define M6811_IRQE 0x20 /* IRQ Edge/Level sensitive */
+#define M6811_DLY 0x10 /* Stop exit turn on delay */
+#define M6811_CME 0x08 /* Clock Monitor enable */
+#define M6811_CR1 0x02 /* COP timer rate select */
+#define M6811_CR0 0x01 /* COP timer rate select */
+
+/* Flags of the HPRIO register. */
+#define M6811_RBOOT 0x80 /* Read Bootstrap ROM */
+#define M6811_SMOD 0x40 /* Special Mode */
+#define M6811_MDA 0x20 /* Mode Select A */
+#define M6811_IRV 0x10 /* Internal Read Visibility */
+#define M6811_PSEL3 0x08 /* Priority Select */
+#define M6811_PSEL2 0x04
+#define M6811_PSEL1 0x02
+#define M6811_PSEL0 0x01
+
+/* Some insns used by gas to turn relative branches into absolute ones. */
+#define M6811_BRA 0x20
+#define M6811_JMP 0x7e
+#define M6811_BSR 0x8d
+#define M6811_JSR 0xbd
+#define M6812_JMP 0x06
+#define M6812_BSR 0x07
+#define M6812_JSR 0x16
+
+/* Instruction code pages. Code page 1 is the default. */
+/*#define M6811_OPCODE_PAGE1 0x00*/
+#define M6811_OPCODE_PAGE2 0x18
+#define M6811_OPCODE_PAGE3 0x1A
+#define M6811_OPCODE_PAGE4 0xCD
+
+
+/* 68HC11 operands formats as stored in the m6811_opcode table. These
+ flags do not correspond to anything in the 68HC11 or 68HC12.
+ They are only used by GAS to recognize operands. */
+#define M6811_OP_NONE 0 /* No operand */
+#define M6811_OP_DIRECT 0x0001 /* Page 0 addressing: *<val-8bits> */
+#define M6811_OP_IMM8 0x0002 /* 8 bits immediat: #<val-8bits> */
+#define M6811_OP_IMM16 0x0004 /* 16 bits immediat: #<val-16bits> */
+#define M6811_OP_IND16 0x0008 /* Indirect abs: <val-16> */
+#define M6812_OP_IND16_P2 0x0010 /* Second parameter indirect abs. */
+#define M6812_OP_REG 0x0020 /* Register operand 1 */
+#define M6812_OP_REG_2 0x0040 /* Register operand 2 */
+
+#define M6811_OP_IX 0x0080 /* Indirect IX: <val-8>,x */
+#define M6811_OP_IY 0x0100 /* Indirect IY: <val-8>,y */
+#define M6812_OP_IDX 0x0200 /* Indirect: N,r N,[+-]r[+-] N:5-bits */
+#define M6812_OP_IDX_1 0x0400 /* N,r N:9-bits */
+#define M6812_OP_IDX_2 0x0800 /* N,r N:16-bits */
+#define M6812_OP_D_IDX 0x1000 /* Indirect indexed: [D,r] */
+#define M6812_OP_D_IDX_2 0x2000 /* [N,r] N:16-bits */
+#define M6811_OP_MASK 0x0FFFF
+#define M6811_OP_BITMASK 0x00010000 /* Bitmask: #<val-8> */
+#define M6811_OP_JUMP_REL 0x00020000 /* Pc-Relative: <val-8> */
+#define M6812_OP_JUMP_REL16 0x00040000 /* Pc-relative: <val-16> */
+#define M6811_OP_PAGE1 0x0000
+#define M6811_OP_PAGE2 0x00080000 /* Need a page2 opcode before */
+#define M6811_OP_PAGE3 0x00100000 /* Need a page3 opcode before */
+#define M6811_OP_PAGE4 0x00200000 /* Need a page4 opcode before */
+#define M6811_MAX_OPERANDS 3 /* Max operands: brset <dst> <mask> <b> */
+
+#define M6812_ACC_OFFSET 0x00400000 /* A,r B,r D,r */
+#define M6812_ACC_IND 0x00800000 /* [D,r] */
+#define M6812_PRE_INC 0x01000000 /* n,+r n = -8..8 */
+#define M6812_PRE_DEC 0x02000000 /* n,-r */
+#define M6812_POST_INC 0x04000000 /* n,r+ */
+#define M6812_POST_DEC 0x08000000 /* n,r- */
+#define M6812_INDEXED_IND 0x10000000 /* [n,r] n = 16-bits */
+#define M6812_INDEXED 0x20000000 /* n,r n = 5, 9 or 16-bits */
+#define M6812_OP_IDX_P2 0x40000000
+
+/* Markers to identify some instructions. */
+#define M6812_OP_EXG_MARKER 0x01000000 /* exg r1,r2 */
+#define M6812_OP_TFR_MARKER 0x02000000 /* tfr r1,r2 */
+#define M6812_OP_SEX_MARKER 0x04000000 /* sex r1,r2 */
+
+#define M6812_OP_EQ_MARKER 0x80000000 /* dbeq/ibeq/tbeq */
+#define M6812_OP_DBCC_MARKER 0x04000000 /* dbeq/dbne */
+#define M6812_OP_IBCC_MARKER 0x02000000 /* ibeq/ibne */
+#define M6812_OP_TBCC_MARKER 0x01000000
+
+#define M6812_OP_TRAP_ID 0x80000000 /* trap #N */
+
+#define M6811_OP_HIGH_ADDR 0x01000000 /* Used internally by gas. */
+#define M6811_OP_LOW_ADDR 0x02000000
+
+/* CPU identification. */
+#define cpu6811 0x01
+#define cpu6812 0x02
+
+/* The opcode table is an array of struct m68hc11_opcode. */
+struct m68hc11_opcode {
+ const char* name; /* Op-code name */
+ long format;
+ unsigned char size;
+ unsigned char opcode;
+ unsigned char cycles_low;
+ unsigned char cycles_high;
+ unsigned char set_flags_mask;
+ unsigned char clr_flags_mask;
+ unsigned char chg_flags_mask;
+ unsigned char arch;
+};
+
+/* Alias definition for 68HC12. */
+struct m68hc12_opcode_alias
+{
+ const char* name;
+ const char* translation;
+ unsigned char size;
+ unsigned char code1;
+ unsigned char code2;
+};
+
+/* The opcode table. The table contains all the opcodes (all pages).
+ You can't rely on the order. */
+extern const struct m68hc11_opcode m68hc11_opcodes[];
+extern const int m68hc11_num_opcodes;
+
+/* Alias table for 68HC12. It translates some 68HC11 insn which are not
+ implemented in 68HC12 but have equivalent translations. */
+extern const struct m68hc12_opcode_alias m68hc12_alias[];
+extern const int m68hc12_num_alias;
+
+#endif /* _OPCODE_M68HC11_H */
+
diff --git a/ld/ChangeLog b/ld/ChangeLog
index bcbc7e0..2e0b963 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,17 @@
+2000-06-18 Stephane Carrez <stcarrez@worldnet.fr>
+
+ * Makefile.am (ALL_EMULATIONS): Added new emulation for m68hc12
+ and m68hc11 (elf).
+ * Makefile.in: Rebuild.
+ * configure.tgt: Recognize m68hc12 and m68hc11.
+ * scripttempl/elfm68hc12.sc: New file.
+ * emulparams/m68hc12elfb: New emulation.
+ * emulparams/m68hc12elf: New emulation.
+ * emulparams/m68hc11elfb.sh: New file. User configurable emulation
+ (includes a memory.x script to define the ROM and RAM banks).
+ * scripttempl/elfm68hc11.sc, emulparams/m68hc11elf.sh:
+ New configuration files for support of Motorola 68hc11
+
2000-06-15 Alan Modra <alan@linuxcare.com.au>
* ldmain.c (main): Only change SEC_READONLY for final link.
diff --git a/ld/Makefile.am b/ld/Makefile.am
index dea25b4..814bb9a 100644
--- a/ld/Makefile.am
+++ b/ld/Makefile.am
@@ -175,6 +175,10 @@ ALL_EMULATIONS = \
ei386pe.o \
ei386pe_posix.o \
elnk960.o \
+ em68hc11elf.o \
+ em68hc11elfb.o \
+ em68hc12elf.o \
+ em68hc12elfb.o \
em68k4knbsd.o \
em68kaout.o \
em68kaux.o \
@@ -557,6 +561,18 @@ ei386pe_posix.c: $(srcdir)/emulparams/i386pe_posix.sh \
elnk960.c: $(srcdir)/emulparams/lnk960.sh \
$(srcdir)/emultempl/lnk960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS}
${GENSCRIPTS} lnk960 "$(tdir_lnk960)"
+em68hc11elf.c: $(srcdir)/emulparams/m68hc11elf.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} m68hc11elf "$(tdir_m68hc11)"
+em68hc11elfb.c: $(srcdir)/emulparams/m68hc11elfb.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} m68hc11elfb "$(tdir_m68hc11b)"
+em68hc12elf.c: $(srcdir)/emulparams/m68hc12elf.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfm68hc12.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} m68hc12elf "$(tdir_m68hc12)"
+em68hc12elfb.c: $(srcdir)/emulparams/m68hc12elfb.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfm68hc12.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} m68hc12elfb "$(tdir_m68hc12b)"
em68k4knbsd.c: $(srcdir)/emulparams/m68k4knbsd.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} m68k4knbsd "$(tdir_m68k4knbsd)"
diff --git a/ld/Makefile.in b/ld/Makefile.in
index 694d162..b6f9bc1 100644
--- a/ld/Makefile.in
+++ b/ld/Makefile.in
@@ -278,6 +278,10 @@ ALL_EMULATIONS = \
ei386pe.o \
ei386pe_posix.o \
elnk960.o \
+ em68hc11elf.o \
+ em68hc11elfb.o \
+ em68hc12elf.o \
+ em68hc12elfb.o \
em68k4knbsd.o \
em68kaout.o \
em68kaux.o \
@@ -436,7 +440,7 @@ ldgram.c ldlex.c
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
SOURCES = $(ld_new_SOURCES)
OBJECTS = $(ld_new_OBJECTS)
@@ -1256,6 +1260,18 @@ ei386pe_posix.c: $(srcdir)/emulparams/i386pe_posix.sh \
elnk960.c: $(srcdir)/emulparams/lnk960.sh \
$(srcdir)/emultempl/lnk960.em $(srcdir)/scripttempl/i960.sc ${GEN_DEPENDS}
${GENSCRIPTS} lnk960 "$(tdir_lnk960)"
+em68hc11elf.c: $(srcdir)/emulparams/m68hc11elf.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} m68hc11elf "$(tdir_m68hc11)"
+em68hc11elfb.c: $(srcdir)/emulparams/m68hc11elfb.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfm68hc11.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} m68hc11elfb "$(tdir_m68hc11b)"
+em68hc12elf.c: $(srcdir)/emulparams/m68hc12elf.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfm68hc12.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} m68hc12elf "$(tdir_m68hc12)"
+em68hc12elfb.c: $(srcdir)/emulparams/m68hc12elfb.sh \
+ $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elfm68hc12.sc ${GEN_DEPENDS}
+ ${GENSCRIPTS} m68hc12elfb "$(tdir_m68hc12b)"
em68k4knbsd.c: $(srcdir)/emulparams/m68k4knbsd.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} m68k4knbsd "$(tdir_m68k4knbsd)"
diff --git a/ld/configure.tgt b/ld/configure.tgt
index b567b87..7fa41b5 100644
--- a/ld/configure.tgt
+++ b/ld/configure.tgt
@@ -84,6 +84,10 @@ i960-*-elf*) targ_emul=elf32_i960 ;;
ia64-*-elf*) targ_emul=elf64_ia64 ;;
ia64-*-linux*) targ_emul=elf64_ia64 ;;
m32r-*-*) targ_emul=m32relf ;;
+m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf
+ targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
+m68hc12-*-*|m6812-*-*) targ_emul=m68hc12elf
+ targ_extra_emuls="m68hc12elfb m68hc11elf m68hc11elfb" ;;
m68*-sun-sunos[34]*) targ_emul=sun3 ;;
m68*-wrs-vxworks*) targ_emul=sun3 ;;
m68*-ericsson-ose) targ_emul=sun3 ;;
@@ -257,7 +261,7 @@ alpha*-*-netbsd*) targ_emul=elf64alpha ;;
z8k-*-coff) targ_emul=z8002; targ_extra_emuls=z8001 ;;
ns32k-pc532-mach* | ns32k-pc532-ux*) targ_emul=pc532macha ;;
ns32k-pc532-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd ;;
-powerpc-*-linux-gnu*) targ_emul=elf32ppclinux;
+powerpc-*-linux-gnu*) targ_emul=elf32ppclinux;
targ_extra_emuls="elf32ppc elf32ppcsim";
targ_extra_libpath=elf32ppc ;;
pjl*-*-*) targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
diff --git a/ld/emulparams/m68hc11elf.sh b/ld/emulparams/m68hc11elf.sh
new file mode 100644
index 0000000..2f6713e
--- /dev/null
+++ b/ld/emulparams/m68hc11elf.sh
@@ -0,0 +1,13 @@
+MACHINE=
+SCRIPT_NAME=elfm68hc11
+OUTPUT_FORMAT="elf32-m68hc11"
+ROM_START_ADDR=0x08000
+ROM_SIZE=0x8000
+RAM_START_ADDR=0x01100
+RAM_SIZE=0x6F00
+TEXT_MEMORY=text
+DATA_MEMORY=data
+ARCH=m68hc11
+MAXPAGESIZE=32
+EMBEDDED=yes
+GENERIC_BOARD=no
diff --git a/ld/emulparams/m68hc11elfb.sh b/ld/emulparams/m68hc11elfb.sh
new file mode 100644
index 0000000..0f3016e
--- /dev/null
+++ b/ld/emulparams/m68hc11elfb.sh
@@ -0,0 +1,9 @@
+MACHINE=
+SCRIPT_NAME=elfm68hc11
+OUTPUT_FORMAT="elf32-m68hc11"
+TEXT_MEMORY=text
+DATA_MEMORY=data
+ARCH=m68hc11
+MAXPAGESIZE=32
+GENERIC_BOARD=yes
+
diff --git a/ld/emulparams/m68hc12elf.sh b/ld/emulparams/m68hc12elf.sh
new file mode 100644
index 0000000..1d9134c
--- /dev/null
+++ b/ld/emulparams/m68hc12elf.sh
@@ -0,0 +1,13 @@
+MACHINE=
+SCRIPT_NAME=elfm68hc12
+OUTPUT_FORMAT="elf32-m68hc12"
+ROM_START_ADDR=0x08000
+ROM_SIZE=0x8000
+RAM_START_ADDR=0x01100
+RAM_SIZE=0x6F00
+TEXT_MEMORY=text
+DATA_MEMORY=data
+ARCH=m68hc12
+MAXPAGESIZE=32
+EMBEDDED=yes
+GENERIC_BOARD=no
diff --git a/ld/emulparams/m68hc12elfb.sh b/ld/emulparams/m68hc12elfb.sh
new file mode 100644
index 0000000..211978a
--- /dev/null
+++ b/ld/emulparams/m68hc12elfb.sh
@@ -0,0 +1,9 @@
+MACHINE=
+SCRIPT_NAME=elfm68hc12
+OUTPUT_FORMAT="elf32-m68hc12"
+TEXT_MEMORY=text
+DATA_MEMORY=data
+ARCH=m68hc12
+MAXPAGESIZE=32
+GENERIC_BOARD=yes
+
diff --git a/ld/emulparams/shpe.sh b/ld/emulparams/shpe.sh
index 2f8664c..44aeef3 100644
--- a/ld/emulparams/shpe.sh
+++ b/ld/emulparams/shpe.sh
@@ -4,3 +4,6 @@ OUTPUT_FORMAT="pei-shl"
TEMPLATE_NAME=pe
SUBSYSTEM=PE_DEF_SUBSYSTEM
INITIAL_SYMBOL_CHAR=\"_\"
+ENTRY="_mainCRTStartup"
+SUBSYSTEM=PE_DEF_SUBSYSTEM
+INITIAL_SYMBOL_CHAR=\"_\"
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index 9615285..0d55780 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -423,7 +423,7 @@ gld${EMULATION_NAME}_search_needed (path, name, force)
path = s + 1;
}
- return false;
+ return false;
}
/* This function is called for each possible name for a dynamic object
@@ -1125,7 +1125,7 @@ then
sc="-f stringify.sed"
cat >>e${EMULATION_NAME}.c <<EOF
-{
+{
*isfile = 0;
if (link_info.relocateable == true && config.build_constructors == true)
@@ -1152,7 +1152,7 @@ else
# Scripts read from the filesystem.
cat >>e${EMULATION_NAME}.c <<EOF
-{
+{
*isfile = 1;
if (link_info.relocateable == true && config.build_constructors == true)
@@ -1190,7 +1190,7 @@ fi
cat >>e${EMULATION_NAME}.c <<EOF
-struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
+struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
{
gld${EMULATION_NAME}_before_parse,
syslib_default,
diff --git a/ld/po/POTFILES.in b/ld/po/POTFILES.in
index f7a614d..55ae6ff 100644
--- a/ld/po/POTFILES.in
+++ b/ld/po/POTFILES.in
@@ -1,7 +1,6 @@
deffile.h
emultempl/armcoff.em
emultempl/pe.em
-ld.h
ldcref.c
ldctor.c
ldctor.h
@@ -11,6 +10,7 @@ ldexp.c
ldexp.h
ldfile.c
ldfile.h
+ld.h
ldlang.c
ldlang.h
ldlex.h
diff --git a/ld/po/ld.pot b/ld/po/ld.pot
index 433095b..fbcd94e 100644
--- a/ld/po/ld.pot
+++ b/ld/po/ld.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-04-04 23:21+0930\n"
+"POT-Creation-Date: 2000-06-18 18:12-0700\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"
@@ -217,7 +217,7 @@ msgstr ""
msgid "Errors encountered processing file %s for interworking"
msgstr ""
-#: emultempl/pe.em:918 ldlang.c:1961 ldlang.c:4333 ldlang.c:4367 ldmain.c:996
+#: emultempl/pe.em:918 ldlang.c:1963 ldlang.c:4336 ldlang.c:4370 ldmain.c:1008
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
msgstr ""
@@ -256,11 +256,11 @@ msgstr ""
msgid "%B%F: could not read symbols; %E\n"
msgstr ""
-#: ldcref.c:445 ldmain.c:1064 ldmain.c:1068
+#: ldcref.c:445 ldmain.c:1076 ldmain.c:1080
msgid "%B%F: could not read symbols: %E\n"
msgstr ""
-#: ldcref.c:517 ldcref.c:524 ldmain.c:1114 ldmain.c:1121
+#: ldcref.c:517 ldcref.c:524 ldmain.c:1126 ldmain.c:1133
msgid "%B%F: could not read relocs: %E\n"
msgstr ""
@@ -522,101 +522,101 @@ msgstr ""
msgid "%P%F: can not create link hash table: %E\n"
msgstr ""
-#: ldlang.c:2084
+#: ldlang.c:2086
msgid " load address 0x%V"
msgstr ""
-#: ldlang.c:2214
+#: ldlang.c:2216
msgid "%W (size before relaxing)\n"
msgstr ""
-#: ldlang.c:2296
+#: ldlang.c:2298
#, c-format
msgid "Address of section %s set to "
msgstr ""
-#: ldlang.c:2445
+#: ldlang.c:2447
#, c-format
msgid "Fail with %d\n"
msgstr ""
-#: ldlang.c:2684
+#: ldlang.c:2686
msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n"
msgstr ""
-#: ldlang.c:2718
+#: ldlang.c:2720
msgid "%X%P: address 0x%v of %B section %s is not within region %s\n"
msgstr ""
-#: ldlang.c:2726
+#: ldlang.c:2728
msgid "%X%P: region %s is full (%B section %s)\n"
msgstr ""
-#: ldlang.c:2775
+#: ldlang.c:2777
msgid "%P%X: Internal error on COFF shared library section %s\n"
msgstr ""
-#: ldlang.c:2816
+#: ldlang.c:2818
msgid "%P: warning: no memory region specified for section `%s'\n"
msgstr ""
-#: ldlang.c:2829
+#: ldlang.c:2831
msgid "%P: warning: changing start of section %s by %u bytes\n"
msgstr ""
-#: ldlang.c:2843
+#: ldlang.c:2845
msgid "%F%S: non constant address expression for section %s\n"
msgstr ""
-#: ldlang.c:2907
+#: ldlang.c:2909
msgid "%X%P: use an absolute load address or a load memory region, not both\n"
msgstr ""
-#: ldlang.c:3020
+#: ldlang.c:3022
msgid "%P%F: can't relax section: %E\n"
msgstr ""
-#: ldlang.c:3185
+#: ldlang.c:3187
msgid "%F%P: invalid data statement\n"
msgstr ""
-#: ldlang.c:3222
+#: ldlang.c:3224
msgid "%F%P: invalid reloc statement\n"
msgstr ""
-#: ldlang.c:3358
+#: ldlang.c:3360
msgid "%P%F:%s: can't set start address\n"
msgstr ""
-#: ldlang.c:3371 ldlang.c:3388
+#: ldlang.c:3373 ldlang.c:3390
msgid "%P%F: can't set start address\n"
msgstr ""
-#: ldlang.c:3383
+#: ldlang.c:3385
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr ""
-#: ldlang.c:3393
+#: ldlang.c:3395
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr ""
-#: ldlang.c:3435
+#: ldlang.c:3437
msgid ""
"%P: warning: %s architecture of input file `%B' is incompatible with %s "
"output\n"
msgstr ""
-#: ldlang.c:3453
+#: ldlang.c:3455
msgid "%E%X: failed to merge target specific data of file %B\n"
msgstr ""
-#: ldlang.c:3540
+#: ldlang.c:3542
msgid ""
"\n"
"Allocating common symbols\n"
msgstr ""
-#: ldlang.c:3541
+#: ldlang.c:3543
msgid ""
"Common symbol size file\n"
"\n"
@@ -625,239 +625,239 @@ msgstr ""
#. This message happens when using the
#. svr3.ifile linker script, so I have
#. disabled it.
-#: ldlang.c:3626
+#: ldlang.c:3628
msgid "%P: no [COMMON] command, defaulting to .bss\n"
msgstr ""
-#: ldlang.c:3686
+#: ldlang.c:3688
msgid "%P%F: invalid syntax in flags\n"
msgstr ""
-#: ldlang.c:4281
+#: ldlang.c:4284
msgid "%P%Fmultiple STARTUP files\n"
msgstr ""
-#: ldlang.c:4553
+#: ldlang.c:4556
msgid "%F%P: bfd_record_phdr failed: %E\n"
msgstr ""
-#: ldlang.c:4572
+#: ldlang.c:4575
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr ""
-#: ldlang.c:4881
+#: ldlang.c:4884
msgid "%X%P: unknown language `%s' in version information\n"
msgstr ""
-#: ldlang.c:4930
+#: ldlang.c:4933
msgid "%X%P: duplicate version tag `%s'\n"
msgstr ""
-#: ldlang.c:4943 ldlang.c:4956
+#: ldlang.c:4946 ldlang.c:4959
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr ""
-#: ldlang.c:4993
+#: ldlang.c:4996
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr ""
-#: ldlang.c:5015
+#: ldlang.c:5018
msgid "%X%P: unable to read .exports section contents"
msgstr ""
-#: ldmain.c:192
+#: ldmain.c:193
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr ""
-#: ldmain.c:262
+#: ldmain.c:264
msgid "%P%F: -r and --mpc860c0 may not be used together\n"
msgstr ""
-#: ldmain.c:264
+#: ldmain.c:266
msgid "%P%F: --relax and -r may not be used together\n"
msgstr ""
-#: ldmain.c:266
+#: ldmain.c:268
msgid "%P%F: -r and -shared may not be used together\n"
msgstr ""
-#: ldmain.c:295
+#: ldmain.c:297
msgid "using internal linker script:\n"
msgstr ""
-#: ldmain.c:314
+#: ldmain.c:316
msgid "%P%F: no input files\n"
msgstr ""
-#: ldmain.c:319
+#: ldmain.c:321
msgid "%P: mode %s\n"
msgstr ""
-#: ldmain.c:337
+#: ldmain.c:339
msgid "%P%F: cannot open map file %s: %E\n"
msgstr ""
-#: ldmain.c:383
+#: ldmain.c:387
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr ""
-#: ldmain.c:394
+#: ldmain.c:398
msgid "%F%B: final close failed: %E\n"
msgstr ""
-#: ldmain.c:418
+#: ldmain.c:422
msgid "%X%P: unable to open for source of copy `%s'\n"
msgstr ""
-#: ldmain.c:420
+#: ldmain.c:424
msgid "%X%P: unable to open for destination of copy `%s'\n"
msgstr ""
-#: ldmain.c:426
+#: ldmain.c:430
msgid "%P: Error writing file `%s'\n"
msgstr ""
-#: ldmain.c:432 pe-dll.c:1082
+#: ldmain.c:436 pe-dll.c:1082
#, c-format
msgid "%P: Error closing file `%s'\n"
msgstr ""
-#: ldmain.c:449
+#: ldmain.c:453
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr ""
-#: ldmain.c:452
+#: ldmain.c:456
#, c-format
msgid "%s: data size %ld\n"
msgstr ""
-#: ldmain.c:493
+#: ldmain.c:497
msgid "%P%F: missing argument to -m\n"
msgstr ""
-#: ldmain.c:607 ldmain.c:628 ldmain.c:659
+#: ldmain.c:619 ldmain.c:640 ldmain.c:671
msgid "%P%F: bfd_hash_table_init failed: %E\n"
msgstr ""
-#: ldmain.c:612 ldmain.c:631
+#: ldmain.c:624 ldmain.c:643
msgid "%P%F: bfd_hash_lookup failed: %E\n"
msgstr ""
-#: ldmain.c:646
+#: ldmain.c:658
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr ""
-#: ldmain.c:690
+#: ldmain.c:702
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
msgstr ""
-#: ldmain.c:695
+#: ldmain.c:707
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr ""
-#: ldmain.c:772
+#: ldmain.c:784
msgid "Archive member included"
msgstr ""
-#: ldmain.c:773
+#: ldmain.c:785
msgid "because of file (symbol)"
msgstr ""
-#: ldmain.c:845
+#: ldmain.c:857
msgid "%X%C: multiple definition of `%T'\n"
msgstr ""
-#: ldmain.c:848
+#: ldmain.c:860
msgid "%D: first defined here\n"
msgstr ""
-#: ldmain.c:877
+#: ldmain.c:889
msgid "%B: warning: definition of `%T' overriding common\n"
msgstr ""
-#: ldmain.c:880
+#: ldmain.c:892
msgid "%B: warning: common is here\n"
msgstr ""
-#: ldmain.c:887
+#: ldmain.c:899
msgid "%B: warning: common of `%T' overridden by definition\n"
msgstr ""
-#: ldmain.c:890
+#: ldmain.c:902
msgid "%B: warning: defined here\n"
msgstr ""
-#: ldmain.c:897
+#: ldmain.c:909
msgid "%B: warning: common of `%T' overridden by larger common\n"
msgstr ""
-#: ldmain.c:900
+#: ldmain.c:912
msgid "%B: warning: larger common is here\n"
msgstr ""
-#: ldmain.c:904
+#: ldmain.c:916
msgid "%B: warning: common of `%T' overriding smaller common\n"
msgstr ""
-#: ldmain.c:907
+#: ldmain.c:919
msgid "%B: warning: smaller common is here\n"
msgstr ""
-#: ldmain.c:911
+#: ldmain.c:923
msgid "%B: warning: multiple common of `%T'\n"
msgstr ""
-#: ldmain.c:913
+#: ldmain.c:925
msgid "%B: warning: previous common is here\n"
msgstr ""
-#: ldmain.c:935 ldmain.c:974
+#: ldmain.c:947 ldmain.c:986
msgid "%P: warning: global constructor %s used\n"
msgstr ""
-#: ldmain.c:984
+#: ldmain.c:996
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr ""
-#: ldmain.c:1171
+#: ldmain.c:1183
msgid "%F%P: bfd_hash_table_init failed: %E\n"
msgstr ""
-#: ldmain.c:1178
+#: ldmain.c:1190
msgid "%F%P: bfd_hash_lookup failed: %E\n"
msgstr ""
-#: ldmain.c:1198
+#: ldmain.c:1210
msgid "%C: undefined reference to `%T'\n"
msgstr ""
-#: ldmain.c:1204
+#: ldmain.c:1216
msgid "%D: more undefined references to `%T' follow\n"
msgstr ""
-#: ldmain.c:1211
+#: ldmain.c:1223
msgid "%B: undefined reference to `%T'\n"
msgstr ""
-#: ldmain.c:1217
+#: ldmain.c:1229
msgid "%B: more undefined references to `%T' follow\n"
msgstr ""
-#: ldmain.c:1238 ldmain.c:1260 ldmain.c:1280
+#: ldmain.c:1250 ldmain.c:1272 ldmain.c:1292
msgid "%P%X: generated"
msgstr ""
-#: ldmain.c:1241
+#: ldmain.c:1253
msgid " relocation truncated to fit: %s %T"
msgstr ""
-#: ldmain.c:1263
+#: ldmain.c:1275
#, c-format
msgid "dangerous relocation: %s\n"
msgstr ""
-#: ldmain.c:1283
+#: ldmain.c:1295
msgid " reloc refers to symbol `%T' which is not being output\n"
msgstr ""
@@ -902,7 +902,7 @@ msgstr ""
msgid "GNU ld version %s (with BFD %s)\n"
msgstr ""
-#: ldver.c:42 lexsup.c:887
+#: ldver.c:42 lexsup.c:928
msgid " Supported emulations:\n"
msgstr ""
@@ -919,521 +919,539 @@ msgstr ""
msgid "%F%P: final link failed: %E\n"
msgstr ""
-#: lexsup.c:155 lexsup.c:238 lexsup.c:244
+#: lexsup.c:156 lexsup.c:241 lexsup.c:247
msgid "KEYWORD"
msgstr ""
-#: lexsup.c:155
+#: lexsup.c:156
msgid "Shared library control for HP/UX compatibility"
msgstr ""
-#: lexsup.c:158
+#: lexsup.c:159
msgid "ARCH"
msgstr ""
-#: lexsup.c:158
+#: lexsup.c:159
msgid "Set architecture"
msgstr ""
-#: lexsup.c:160 lexsup.c:307
+#: lexsup.c:161 lexsup.c:310
msgid "TARGET"
msgstr ""
-#: lexsup.c:160
+#: lexsup.c:161
msgid "Specify target for following input files"
msgstr ""
-#: lexsup.c:162 lexsup.c:201 lexsup.c:211 lexsup.c:220 lexsup.c:291
-#: lexsup.c:314 lexsup.c:348
+#: lexsup.c:163 lexsup.c:202 lexsup.c:214 lexsup.c:223 lexsup.c:294
+#: lexsup.c:317 lexsup.c:353
msgid "FILE"
msgstr ""
-#: lexsup.c:162
+#: lexsup.c:163
msgid "Read MRI format linker script"
msgstr ""
-#: lexsup.c:164
+#: lexsup.c:165
msgid "Force common symbols to be defined"
msgstr ""
-#: lexsup.c:168 lexsup.c:338 lexsup.c:340 lexsup.c:342
+#: lexsup.c:169 lexsup.c:343 lexsup.c:345 lexsup.c:347
msgid "ADDRESS"
msgstr ""
-#: lexsup.c:168
+#: lexsup.c:169
msgid "Set start address"
msgstr ""
-#: lexsup.c:170
+#: lexsup.c:171
msgid "Export all dynamic symbols"
msgstr ""
-#: lexsup.c:172
+#: lexsup.c:173
msgid "Link big-endian objects"
msgstr ""
-#: lexsup.c:174
+#: lexsup.c:175
msgid "Link little-endian objects"
msgstr ""
-#: lexsup.c:176 lexsup.c:179
+#: lexsup.c:177 lexsup.c:180
msgid "SHLIB"
msgstr ""
-#: lexsup.c:176
+#: lexsup.c:177
msgid "Auxiliary filter for shared object symbol table"
msgstr ""
-#: lexsup.c:179
+#: lexsup.c:180
msgid "Filter for shared object symbol table"
msgstr ""
-#: lexsup.c:181
+#: lexsup.c:182
msgid "Ignored"
msgstr ""
-#: lexsup.c:183
+#: lexsup.c:184
msgid "SIZE"
msgstr ""
-#: lexsup.c:183
+#: lexsup.c:184
msgid "Small data size (if no size, same as --shared)"
msgstr ""
-#: lexsup.c:186
+#: lexsup.c:187
msgid "FILENAME"
msgstr ""
-#: lexsup.c:186
+#: lexsup.c:187
msgid "Set internal name of shared library"
msgstr ""
-#: lexsup.c:188
+#: lexsup.c:189
msgid "LIBNAME"
msgstr ""
-#: lexsup.c:188
+#: lexsup.c:189
msgid "Search for library LIBNAME"
msgstr ""
-#: lexsup.c:190
+#: lexsup.c:191
msgid "DIRECTORY"
msgstr ""
-#: lexsup.c:190
+#: lexsup.c:191
msgid "Add DIRECTORY to library search path"
msgstr ""
-#: lexsup.c:192
+#: lexsup.c:193
msgid "EMULATION"
msgstr ""
-#: lexsup.c:192
+#: lexsup.c:193
msgid "Set emulation"
msgstr ""
-#: lexsup.c:194
+#: lexsup.c:195
msgid "Print map file on standard output"
msgstr ""
-#: lexsup.c:196
+#: lexsup.c:197
msgid "Do not page align data"
msgstr ""
-#: lexsup.c:198
+#: lexsup.c:199
msgid "Do not page align data, do not make text readonly"
msgstr ""
-#: lexsup.c:201
+#: lexsup.c:202
msgid "Set output file name"
msgstr ""
-#: lexsup.c:203
+#: lexsup.c:204
msgid "Optimize output file"
msgstr ""
-#: lexsup.c:205
+#: lexsup.c:206
msgid "Ignored for SVR4 compatibility"
msgstr ""
-#: lexsup.c:207
+#: lexsup.c:210
msgid "Generate relocateable output"
msgstr ""
-#: lexsup.c:211
+#: lexsup.c:214
msgid "Just link symbols (if directory, same as --rpath)"
msgstr ""
-#: lexsup.c:214
+#: lexsup.c:217
msgid "Strip all symbols"
msgstr ""
-#: lexsup.c:216
+#: lexsup.c:219
msgid "Strip debugging symbols"
msgstr ""
-#: lexsup.c:218
+#: lexsup.c:221
msgid "Trace file opens"
msgstr ""
-#: lexsup.c:220
+#: lexsup.c:223
msgid "Read linker script"
msgstr ""
-#: lexsup.c:222 lexsup.c:234 lexsup.c:277 lexsup.c:289 lexsup.c:334
-#: lexsup.c:351 lexsup.c:368
+#: lexsup.c:225 lexsup.c:237 lexsup.c:280 lexsup.c:292 lexsup.c:337
+#: lexsup.c:356 lexsup.c:373
msgid "SYMBOL"
msgstr ""
-#: lexsup.c:222
+#: lexsup.c:225
msgid "Start with undefined reference to SYMBOL"
msgstr ""
-#: lexsup.c:224
+#: lexsup.c:227
msgid "Build global constructor/destructor tables"
msgstr ""
-#: lexsup.c:226
+#: lexsup.c:229
msgid "Print version information"
msgstr ""
-#: lexsup.c:228
+#: lexsup.c:231
msgid "Print version and emulation information"
msgstr ""
-#: lexsup.c:230
+#: lexsup.c:233
msgid "Discard all local symbols"
msgstr ""
-#: lexsup.c:232
+#: lexsup.c:235
msgid "Discard temporary local symbols"
msgstr ""
-#: lexsup.c:234
+#: lexsup.c:237
msgid "Trace mentions of SYMBOL"
msgstr ""
-#: lexsup.c:236 lexsup.c:316 lexsup.c:318
+#: lexsup.c:239 lexsup.c:319 lexsup.c:321
msgid "PATH"
msgstr ""
-#: lexsup.c:236
+#: lexsup.c:239
msgid "Default search path for Solaris compatibility"
msgstr ""
-#: lexsup.c:238
+#: lexsup.c:241
msgid "Ignored for Solaris compatibility"
msgstr ""
-#: lexsup.c:240
+#: lexsup.c:243
msgid "Start a group"
msgstr ""
-#: lexsup.c:242
+#: lexsup.c:245
msgid "End a group"
msgstr ""
-#: lexsup.c:244
+#: lexsup.c:247
msgid "Ignored for SunOS compatibility"
msgstr ""
-#: lexsup.c:246
+#: lexsup.c:249
msgid "Link against shared libraries"
msgstr ""
-#: lexsup.c:252
+#: lexsup.c:255
msgid "Do not link against shared libraries"
msgstr ""
-#: lexsup.c:260
+#: lexsup.c:263
msgid "Bind global references locally"
msgstr ""
-#: lexsup.c:262
+#: lexsup.c:265
msgid "Check section addresses for overlaps (default)"
msgstr ""
-#: lexsup.c:264
+#: lexsup.c:267
msgid "Do not check section addresses for overlaps"
msgstr ""
-#: lexsup.c:267
+#: lexsup.c:270
msgid "Output cross reference table"
msgstr ""
-#: lexsup.c:269
+#: lexsup.c:272
msgid "SYMBOL=EXPRESSION"
msgstr ""
-#: lexsup.c:269
+#: lexsup.c:272
msgid "Define a symbol"
msgstr ""
-#: lexsup.c:271
+#: lexsup.c:274
msgid "Demangle symbol names"
msgstr ""
-#: lexsup.c:273
+#: lexsup.c:276
msgid "PROGRAM"
msgstr ""
-#: lexsup.c:273
+#: lexsup.c:276
msgid "Set the dynamic linker to use"
msgstr ""
-#: lexsup.c:275
+#: lexsup.c:278
msgid "Generate embedded relocs"
msgstr ""
-#: lexsup.c:277
+#: lexsup.c:280
msgid "Call SYMBOL at unload-time"
msgstr ""
-#: lexsup.c:279
+#: lexsup.c:282
msgid "Force generation of file with .exe suffix"
msgstr ""
-#: lexsup.c:281
+#: lexsup.c:284
msgid "Remove unused sections (on some targets)"
msgstr ""
-#: lexsup.c:284
+#: lexsup.c:287
msgid "Don't remove unused sections (default)"
msgstr ""
-#: lexsup.c:287
+#: lexsup.c:290
msgid "Print option help"
msgstr ""
-#: lexsup.c:289
+#: lexsup.c:292
msgid "Call SYMBOL at load-time"
msgstr ""
-#: lexsup.c:291
+#: lexsup.c:294
msgid "Write a map file"
msgstr ""
-#: lexsup.c:293
+#: lexsup.c:296
msgid "Do not demangle symbol names"
msgstr ""
-#: lexsup.c:295
+#: lexsup.c:298
msgid "Use less memory and more disk I/O"
msgstr ""
-#: lexsup.c:297
+#: lexsup.c:300
msgid "Allow no undefined symbols"
msgstr ""
-#: lexsup.c:299
+#: lexsup.c:302
msgid "Don't warn about mismatched input files"
msgstr ""
-#: lexsup.c:301
+#: lexsup.c:304
msgid "Turn off --whole-archive"
msgstr ""
-#: lexsup.c:303
+#: lexsup.c:306
msgid "Create an output file even if errors occur"
msgstr ""
-#: lexsup.c:307
+#: lexsup.c:310
msgid "Specify target of output file"
msgstr ""
-#: lexsup.c:309
+#: lexsup.c:312
msgid "Ignored for Linux compatibility"
msgstr ""
-#: lexsup.c:311
+#: lexsup.c:314
msgid "Relax branches on certain targets"
msgstr ""
-#: lexsup.c:314
+#: lexsup.c:317
msgid "Keep only symbols listed in FILE"
msgstr ""
-#: lexsup.c:316
+#: lexsup.c:319
msgid "Set runtime shared library search path"
msgstr ""
-#: lexsup.c:318
+#: lexsup.c:321
msgid "Set link time shared library search path"
msgstr ""
-#: lexsup.c:320
+#: lexsup.c:323
msgid "Create a shared library"
msgstr ""
-#: lexsup.c:324
+#: lexsup.c:327
msgid "Sort common symbols by size"
msgstr ""
-#: lexsup.c:328
+#: lexsup.c:331
msgid "Split output sections for each file"
msgstr ""
-#: lexsup.c:330
+#: lexsup.c:333
msgid "COUNT"
msgstr ""
-#: lexsup.c:330
+#: lexsup.c:333
msgid "Split output sections every COUNT relocs"
msgstr ""
-#: lexsup.c:332
+#: lexsup.c:335
msgid "Print memory usage statistics"
msgstr ""
-#: lexsup.c:334
+#: lexsup.c:337
msgid "Do task level linking"
msgstr ""
-#: lexsup.c:336
+#: lexsup.c:339
msgid "Use same format as native linker"
msgstr ""
-#: lexsup.c:338
+#: lexsup.c:341
+msgid "SECTION=ADDRESS"
+msgstr ""
+
+#: lexsup.c:341
+msgid "Set address of named section"
+msgstr ""
+
+#: lexsup.c:343
msgid "Set address of .bss section"
msgstr ""
-#: lexsup.c:340
+#: lexsup.c:345
msgid "Set address of .data section"
msgstr ""
-#: lexsup.c:342
+#: lexsup.c:347
msgid "Set address of .text section"
msgstr ""
-#: lexsup.c:344
+#: lexsup.c:349
msgid "Output lots of information during link"
msgstr ""
-#: lexsup.c:348
+#: lexsup.c:353
msgid "Read version information script"
msgstr ""
-#: lexsup.c:351
+#: lexsup.c:356
msgid ""
"Take export symbols list from .exports, using\n"
"\t\t\t\tSYMBOL as the version."
msgstr ""
-#: lexsup.c:354
+#: lexsup.c:359
msgid "Warn about duplicate common symbols"
msgstr ""
-#: lexsup.c:356
+#: lexsup.c:361
msgid "Warn if global constructors/destructors are seen"
msgstr ""
-#: lexsup.c:359
+#: lexsup.c:364
msgid "Warn if the multiple GP values are used"
msgstr ""
-#: lexsup.c:361
+#: lexsup.c:366
msgid "Warn only once per undefined symbol"
msgstr ""
-#: lexsup.c:363
+#: lexsup.c:368
msgid "Warn if start of section changes due to alignment"
msgstr ""
-#: lexsup.c:366
+#: lexsup.c:371
msgid "Include all objects from following archives"
msgstr ""
-#: lexsup.c:368
+#: lexsup.c:373
msgid "Use wrapper functions for SYMBOL"
msgstr ""
-#: lexsup.c:370
+#: lexsup.c:375
msgid "[=WORDS]"
msgstr ""
-#: lexsup.c:370
+#: lexsup.c:375
msgid ""
"Modify problematic branches in last WORDS (1-10,\n"
"\t\t\t\tdefault 5) words of a page"
msgstr ""
-#: lexsup.c:520
+#: lexsup.c:525
#, c-format
msgid "%s: use the --help option for usage information\n"
msgstr ""
-#: lexsup.c:540
+#: lexsup.c:545
msgid "%P%F: unrecognized -a option `%s'\n"
msgstr ""
-#: lexsup.c:553
+#: lexsup.c:558
msgid "%P%F: unrecognized -assert option `%s'\n"
msgstr ""
-#: lexsup.c:644
+#: lexsup.c:649
msgid "%P%F: invalid number `%s'\n"
msgstr ""
-#: lexsup.c:816
+#: lexsup.c:824
msgid "%P%F: -shared not supported\n"
msgstr ""
-#: lexsup.c:880
-msgid "Copyright 1997 Free Software Foundation, Inc.\n"
+#: lexsup.c:856
+#, c-format
+msgid "%s: Invalid argument to option \"--section-start\"\n"
+msgstr ""
+
+#: lexsup.c:867
+#, c-format
+msgid "%s: Missing argument(s) to option \"--section-start\"\n"
+msgstr ""
+
+#: lexsup.c:921
+msgid "Copyright 2000 Free Software Foundation, Inc.\n"
msgstr ""
-#: lexsup.c:881
+#: lexsup.c:922
msgid ""
"This program is free software; you may redistribute it under the terms of\n"
"the GNU General Public License. This program has absolutely no warranty.\n"
msgstr ""
-#: lexsup.c:972
+#: lexsup.c:1013
#, c-format
msgid "%s: may not nest groups (--help for usage)\n"
msgstr ""
-#: lexsup.c:983
+#: lexsup.c:1024
#, c-format
msgid "%s: group ended before it began (--help for usage)\n"
msgstr ""
-#: lexsup.c:1000
+#: lexsup.c:1041
#, c-format
msgid "%s: Invalid argument to option \"mpc860c0\"\n"
msgstr ""
-#: lexsup.c:1056
+#: lexsup.c:1097
msgid "%P%F: invalid hex number `%s'\n"
msgstr ""
-#: lexsup.c:1068
+#: lexsup.c:1109
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr ""
-#: lexsup.c:1070
+#: lexsup.c:1111
msgid "Options:\n"
msgstr ""
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:1149
+#: lexsup.c:1190
#, c-format
msgid "%s: supported targets:"
msgstr ""
-#: lexsup.c:1157
+#: lexsup.c:1198
#, c-format
msgid "%s: supported emulations: "
msgstr ""
-#: lexsup.c:1162
+#: lexsup.c:1203
#, c-format
msgid "%s: emulation specific options:\n"
msgstr ""
-#: lexsup.c:1166
+#: lexsup.c:1207
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
diff --git a/ld/scripttempl/elfm68hc11.sc b/ld/scripttempl/elfm68hc11.sc
new file mode 100644
index 0000000..668fc0a
--- /dev/null
+++ b/ld/scripttempl/elfm68hc11.sc
@@ -0,0 +1,359 @@
+#
+# Unusual variables checked by this code:
+# NOP - two byte opcode for no-op (defaults to 0)
+# DATA_ADDR - if end-of-text-plus-one-page isn't right for data start
+# OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
+# (e.g., .PARISC.global)
+# OTHER_SECTIONS - at the end
+# EXECUTABLE_SYMBOLS - symbols that must be defined for an
+# executable (e.g., _DYNAMIC_LINK)
+# TEXT_START_SYMBOLS - symbols that appear at the start of the
+# .text section.
+# DATA_START_SYMBOLS - symbols that appear at the start of the
+# .data section.
+# OTHER_BSS_SYMBOLS - symbols that appear at the start of the
+# .bss section besides __bss_start.
+# EMBEDDED - whether this is for an embedded system.
+#
+# When adding sections, do note that the names of some sections are used
+# when specifying the start address of the next.
+#
+test -z "$ENTRY" && ENTRY=_start
+test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT}
+test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
+if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi
+test "$LD_FLAG" = "N" && DATA_ADDR=.
+
+CTOR=".ctors ${CONSTRUCTING-0} :
+ {
+ ${CONSTRUCTING+ __CTOR_LIST__ = .; }
+ ${CONSTRUCTING+${CTOR_START}}
+ *(.ctors)
+ /* We don't want to include the .ctor section from
+ from the crtend.o file until after the sorted ctors.
+ The .ctor section from the crtend file contains the
+ end of ctors marker and it must be last
+
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors)) */
+
+ ${CONSTRUCTING+${CTOR_END}}
+ ${CONSTRUCTING+ __CTOR_END__ = .; }
+ } ${RELOCATING+ > ${DATA_MEMORY}}"
+
+DTOR=" .dtors ${CONSTRUCTING-0} :
+ {
+ ${CONSTRUCTING+ __DTOR_LIST__ = .; }
+ *(.dtors)
+ /*
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors)) */
+ ${CONSTRUCTING+ __DTOR_END__ = .; }
+ } ${RELOCATING+ > ${DATA_MEMORY}}"
+
+
+VECTORS="
+ /* If the 'vectors_addr' symbol is defined, it indicates the start address
+ of interrupt vectors. This depends on the 68HC11 operating mode:
+
+ Addr
+ Single chip 0xffc0
+ Extended mode 0xffc0
+ Bootstrap 0x00c0
+ Test 0xbfc0
+
+ In general, the vectors address is 0xffc0. This can be overriden
+ with the '-defsym vectors_addr=0xbfc0' ld option.
+
+ Note: for the bootstrap mode, the interrupt vectors are at 0xbfc0 but
+ they are redirected to 0x00c0 by the internal PROM. Application's vectors
+ must also consist of jump instructions (see Motorola's manual). */
+
+ PROVIDE (_vectors_addr = DEFINED (vectors_addr) ? vectors_addr : 0xffc0);
+ .vectors DEFINED (vectors_addr) ? vectors_addr : 0xffc0 :
+ {
+ *(.vectors)
+ }"
+
+#
+# We provide two emulations: a fixed on that defines some memory banks
+# and a configurable one that includes a user provided memory definition.
+#
+case $GENERIC_BOARD in
+ yes|1|YES)
+ MEMORY_DEF="
+/* Get memory banks definition from some user configuration file.
+ This file must be located in some linker directory (search path
+ with -L<dir>). See fixed memory banks emulation script. */
+INCLUDE memory.x;
+"
+ ;;
+ *)
+MEMORY_DEF="
+/* Fixed definition of the available memory banks.
+ See generic emulation script for a user defined configuration. */
+MEMORY
+{
+ page0 (rwx) : ORIGIN = 0x0, LENGTH = 256
+ text (rx) : ORIGIN = ${ROM_START_ADDR}, LENGTH = ${ROM_SIZE}
+ data : ORIGIN = ${RAM_START_ADDR}, LENGTH = ${RAM_SIZE}
+}
+
+/* Setup the stack on the top of the data memory bank. */
+PROVIDE (_stack = ${RAM_START_ADDR} + ${RAM_SIZE} - 1);
+"
+ ;;
+esac
+
+STARTUP_CODE="
+ /* Startup code. */
+ *(.install0) /* Section should setup the stack pointer. */
+ *(.install1) /* Place holder for applications. */
+ *(.install2) /* Optional installation of data sections in RAM. */
+ *(.install3) /* Place holder for applications. */
+ *(.install4) /* Section that calls the main. */
+"
+
+PRE_COMPUTE_DATA_SIZE="
+/* SCz: this does not work yet... This is supposed to force the loading
+ of _map_data.o (from libgcc.a) when the .data section is not empty.
+ By doing so, this should bring the code that copies the .data section
+ from ROM to RAM at init time.
+
+ ___pre_comp_data_size = SIZEOF(.data);
+ __install_data_sections = ___pre_comp_data_size > 0 ?
+ __map_data_sections : 0;
+*/
+"
+
+INSTALL_RELOC="
+ .install0 0 : { *(.install0) }
+ .install1 0 : { *(.install1) }
+ .install2 0 : { *(.install2) }
+ .install3 0 : { *(.install3) }
+ .install4 0 : { *(.install4) }
+"
+
+BSS_DATA_RELOC="
+ .data1 0 : { *(.data1) }
+
+ /* We want the small data sections together, so single-instruction offsets
+ can access them all, and initialized data all before uninitialized, so
+ we can shorten the on-disk segment size. */
+ .sdata 0 : { *(.sdata) }
+ .sbss 0 : { *(.sbss) }
+ .scommon 0 : { *(.scommon) }
+"
+
+cat <<EOF
+${RELOCATING+/* Linker script for 68HC11 executable (PROM). */}
+${RELOCATING-/* Linker script for 68HC11 object file (ld -r). */}
+
+OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
+ "${LITTLE_OUTPUT_FORMAT}")
+OUTPUT_ARCH(${OUTPUT_ARCH})
+ENTRY(${ENTRY})
+
+${RELOCATING+${LIB_SEARCH_DIRS}}
+${RELOCATING+${EXECUTABLE_SYMBOLS}}
+${RELOCATING+${MEMORY_DEF}}
+
+SECTIONS
+{
+ .hash ${RELOCATING-0} : { *(.hash) }
+ .dynsym ${RELOCATING-0} : { *(.dynsym) }
+ .dynstr ${RELOCATING-0} : { *(.dynstr) }
+ .gnu.version ${RELOCATING-0} : { *(.gnu.version) }
+ .gnu.version_d ${RELOCATING-0} : { *(.gnu.version_d) }
+ .gnu.version_r ${RELOCATING-0} : { *(.gnu.version_r) }
+
+ .rela.text ${RELOCATING-0} : { *(.rela.text) *(.rela.gnu.linkonce.t*) }
+ .rela.data ${RELOCATING-0} : { *(.rela.data) *(.rela.gnu.linkonce.d*) }
+ .rela.rodata ${RELOCATING-0} : { *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
+ .rela.stext ${RELOCATING-0} : { *(.rela.stest) }
+ .rela.etext ${RELOCATING-0} : { *(.rela.etest) }
+ .rela.sdata ${RELOCATING-0} : { *(.rela.sdata) }
+ .rela.edata ${RELOCATING-0} : { *(.rela.edata) }
+ .rela.eit_v ${RELOCATING-0} : { *(.rela.eit_v) }
+ .rela.sbss ${RELOCATING-0} : { *(.rela.sbss) }
+ .rela.ebss ${RELOCATING-0} : { *(.rela.ebss) }
+ .rela.srodata ${RELOCATING-0} : { *(.rela.srodata) }
+ .rela.erodata ${RELOCATING-0} : { *(.rela.erodata) }
+ .rela.got ${RELOCATING-0} : { *(.rela.got) }
+ .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) }
+ .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) }
+ .rela.init ${RELOCATING-0} : { *(.rela.init) }
+ .rela.fini ${RELOCATING-0} : { *(.rela.fini) }
+ .rela.bss ${RELOCATING-0} : { *(.rela.bss) }
+ .rela.plt ${RELOCATING-0} : { *(.rela.plt) }
+
+ .rel.data ${RELOCATING-0} : { *(.rel.data) *(.rel.gnu.linkonce.d*) }
+ .rel.rodata ${RELOCATING-0} : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
+ .rel.stext ${RELOCATING-0} : { *(.rel.stest) }
+ .rel.etext ${RELOCATING-0} : { *(.rel.etest) }
+ .rel.sdata ${RELOCATING-0} : { *(.rel.sdata) }
+ .rel.edata ${RELOCATING-0} : { *(.rel.edata) }
+ .rel.sbss ${RELOCATING-0} : { *(.rel.sbss) }
+ .rel.ebss ${RELOCATING-0} : { *(.rel.ebss) }
+ .rel.eit_v ${RELOCATING-0} : { *(.rel.eit_v) }
+ .rel.srodata ${RELOCATING-0} : { *(.rel.srodata) }
+ .rel.erodata ${RELOCATING-0} : { *(.rel.erodata) }
+ .rel.got ${RELOCATING-0} : { *(.rel.got) }
+ .rel.ctors ${RELOCATING-0} : { *(.rel.ctors) }
+ .rel.dtors ${RELOCATING-0} : { *(.rel.dtors) }
+ .rel.init ${RELOCATING-0} : { *(.rel.init) }
+ .rel.fini ${RELOCATING-0} : { *(.rel.fini) }
+ .rel.bss ${RELOCATING-0} : { *(.rel.bss) }
+ .rel.plt ${RELOCATING-0} : { *(.rel.plt) }
+
+ /* Concatenate .page0 sections. Put them in the page0 memory bank
+ unless we are creating a relocatable file. */
+ .page0 :
+ {
+ *(.page0)
+ } ${RELOCATING+ > page0}
+
+ /* Start of text section. */
+ .stext ${RELOCATING-0} :
+ {
+ *(.stext)
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
+ .init ${RELOCATING-0} :
+ {
+ *(.init)
+ } ${RELOCATING+=${NOP-0}}
+
+ ${RELOCATING-${INSTALL_RELOC}}
+
+ .text ${RELOCATING-0}:
+ {
+ /* Put startup code at beginning so that _start keeps same address. */
+ ${RELOCATING+${STARTUP_CODE}}
+
+ ${RELOCATING+*(.init)}
+ *(.text)
+ *(.fini)
+ /* .gnu.warning sections are handled specially by elf32.em. */
+ *(.gnu.warning)
+ *(.gnu.linkonce.t*)
+
+ ${RELOCATING+_etext = .;}
+ ${RELOCATING+PROVIDE (etext = .);}
+
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
+ .eh_frame ${RELOCATING-0} :
+ {
+ *(.eh_frame)
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
+ .rodata ${RELOCATING-0} :
+ {
+ *(.rodata)
+ *(.gnu.linkonce.r*)
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
+ .rodata1 ${RELOCATING-0} :
+ {
+ *(.rodata1)
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
+ /* Start of the data section image in ROM. */
+ ${RELOCATING+__data_image = .;}
+ ${RELOCATING+PROVIDE (__data_image = .);}
+
+ /* All read-only sections that normally go in PROM must be above.
+ We construct the DATA image section in PROM at end of all these
+ read-only sections. The data image must be copied at init time.
+ Refer to GNU ld, Section 3.6.8.2 Output Section LMA. */
+ .data ${RELOCATING-0} : ${RELOCATING+AT (__data_image)}
+ {
+ ${RELOCATING+__data_section_start = .;}
+ ${RELOCATING+PROVIDE (__data_section_start = .);}
+
+ ${RELOCATING+${DATA_START_SYMBOLS}}
+ ${RELOCATING+*(.sdata)}
+ *(.data)
+ ${RELOCATING+*(.data1)}
+ *(.gnu.linkonce.d*)
+ ${CONSTRUCTING+CONSTRUCTORS}
+
+ ${RELOCATING+_edata = .;}
+ ${RELOCATING+PROVIDE (edata = .);}
+ } ${RELOCATING+ > ${DATA_MEMORY}}
+
+ ${RELOCATING+__data_section_size = SIZEOF(.data);}
+ ${RELOCATING+PROVIDE (__data_section_size = SIZEOF(.data));}
+ ${RELOCATING+__data_image_end = __data_image + __data_section_size;}
+
+ ${RELOCATING+${PRE_COMPUTE_DATA_SIZE}}
+
+ /* .install ${RELOCATING-0}:
+ {
+ . = _data_image_end;
+ } ${RELOCATING+ > ${TEXT_MEMORY}} */
+
+ /* Relocation for some bss and data sections. */
+ ${RELOCATING-${BSS_DATA_RELOC}}
+
+ .bss ${RELOCATING-0} :
+ {
+ ${RELOCATING+__bss_start = .;}
+ ${RELOCATING+*(.sbss)}
+ ${RELOCATING+*(.scommon)}
+
+ *(.dynbss)
+ *(.bss)
+ *(COMMON)
+ ${RELOCATING+PROVIDE (_end = .);}
+ } ${RELOCATING+ > ${DATA_MEMORY}}
+
+ ${RELOCATING+${CTOR}}
+ ${RELOCATING+${DTOR}}
+
+ ${RELOCATING+${VECTORS}}
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+
+ .comment 0 : { *(.comment) }
+
+ /* DWARF debug sections.
+ Symbols in the DWARF debugging sections are relative to the beginning
+ of the section so we begin them at 0.
+ Treatment of DWARF debug section must be at end of the linker
+ script to avoid problems when there are undefined symbols. It's necessary
+ to avoid that the DWARF section is relocated before such undefined
+ symbols are found. */
+
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+
+ /* DWARF 2 */
+ .debug_info 0 : { *(.debug_info) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+}
+EOF
diff --git a/ld/scripttempl/elfm68hc12.sc b/ld/scripttempl/elfm68hc12.sc
new file mode 100644
index 0000000..8a4eb44
--- /dev/null
+++ b/ld/scripttempl/elfm68hc12.sc
@@ -0,0 +1,359 @@
+#
+# Unusual variables checked by this code:
+# NOP - two byte opcode for no-op (defaults to 0)
+# DATA_ADDR - if end-of-text-plus-one-page isn't right for data start
+# OTHER_READWRITE_SECTIONS - other than .data .bss .ctors .sdata ...
+# (e.g., .PARISC.global)
+# OTHER_SECTIONS - at the end
+# EXECUTABLE_SYMBOLS - symbols that must be defined for an
+# executable (e.g., _DYNAMIC_LINK)
+# TEXT_START_SYMBOLS - symbols that appear at the start of the
+# .text section.
+# DATA_START_SYMBOLS - symbols that appear at the start of the
+# .data section.
+# OTHER_BSS_SYMBOLS - symbols that appear at the start of the
+# .bss section besides __bss_start.
+# EMBEDDED - whether this is for an embedded system.
+#
+# When adding sections, do note that the names of some sections are used
+# when specifying the start address of the next.
+#
+test -z "$ENTRY" && ENTRY=_start
+test -z "${BIG_OUTPUT_FORMAT}" && BIG_OUTPUT_FORMAT=${OUTPUT_FORMAT}
+test -z "${LITTLE_OUTPUT_FORMAT}" && LITTLE_OUTPUT_FORMAT=${OUTPUT_FORMAT}
+if [ -z "$MACHINE" ]; then OUTPUT_ARCH=${ARCH}; else OUTPUT_ARCH=${ARCH}:${MACHINE}; fi
+test "$LD_FLAG" = "N" && DATA_ADDR=.
+
+CTOR=".ctors ${CONSTRUCTING-0} :
+ {
+ ${CONSTRUCTING+ __CTOR_LIST__ = .; }
+ ${CONSTRUCTING+${CTOR_START}}
+ *(.ctors)
+ /* We don't want to include the .ctor section from
+ from the crtend.o file until after the sorted ctors.
+ The .ctor section from the crtend file contains the
+ end of ctors marker and it must be last
+
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+ KEEP (*(SORT(.ctors.*)))
+ KEEP (*(.ctors)) */
+
+ ${CONSTRUCTING+${CTOR_END}}
+ ${CONSTRUCTING+ __CTOR_END__ = .; }
+ } ${RELOCATING+ > ${DATA_MEMORY}}"
+
+DTOR=" .dtors ${CONSTRUCTING-0} :
+ {
+ ${CONSTRUCTING+ __DTOR_LIST__ = .; }
+ *(.dtors)
+ /*
+ KEEP (*crtbegin.o(.dtors))
+ KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+ KEEP (*(SORT(.dtors.*)))
+ KEEP (*(.dtors)) */
+ ${CONSTRUCTING+ __DTOR_END__ = .; }
+ } ${RELOCATING+ > ${DATA_MEMORY}}"
+
+
+VECTORS="
+ /* If the 'vectors_addr' symbol is defined, it indicates the start address
+ of interrupt vectors. This depends on the 68HC11 operating mode:
+
+ Addr
+ Single chip 0xffc0
+ Extended mode 0xffc0
+ Bootstrap 0x00c0
+ Test 0xbfc0
+
+ In general, the vectors address is 0xffc0. This can be overriden
+ with the '-defsym vectors_addr=0xbfc0' ld option.
+
+ Note: for the bootstrap mode, the interrupt vectors are at 0xbfc0 but
+ they are redirected to 0x00c0 by the internal PROM. Application's vectors
+ must also consist of jump instructions (see Motorola's manual). */
+
+ PROVIDE (_vectors_addr = DEFINED (vectors_addr) ? vectors_addr : 0xffc0);
+ .vectors DEFINED (vectors_addr) ? vectors_addr : 0xffc0 :
+ {
+ *(.vectors)
+ }"
+
+#
+# We provide two emulations: a fixed on that defines some memory banks
+# and a configurable one that includes a user provided memory definition.
+#
+case $GENERIC_BOARD in
+ yes|1|YES)
+ MEMORY_DEF="
+/* Get memory banks definition from some user configuration file.
+ This file must be located in some linker directory (search path
+ with -L<dir>). See fixed memory banks emulation script. */
+INCLUDE memory.x;
+"
+ ;;
+ *)
+MEMORY_DEF="
+/* Fixed definition of the available memory banks.
+ See generic emulation script for a user defined configuration. */
+MEMORY
+{
+ page0 (rwx) : ORIGIN = 0x0, LENGTH = 256
+ text (rx) : ORIGIN = ${ROM_START_ADDR}, LENGTH = ${ROM_SIZE}
+ data : ORIGIN = ${RAM_START_ADDR}, LENGTH = ${RAM_SIZE}
+}
+
+/* Setup the stack on the top of the data memory bank. */
+PROVIDE (_stack = ${RAM_START_ADDR} + ${RAM_SIZE} - 1);
+"
+ ;;
+esac
+
+STARTUP_CODE="
+ /* Startup code. */
+ *(.install0) /* Section should setup the stack pointer. */
+ *(.install1) /* Place holder for applications. */
+ *(.install2) /* Optional installation of data sections in RAM. */
+ *(.install3) /* Place holder for applications. */
+ *(.install4) /* Section that calls the main. */
+"
+
+PRE_COMPUTE_DATA_SIZE="
+/* SCz: this does not work yet... This is supposed to force the loading
+ of _map_data.o (from libgcc.a) when the .data section is not empty.
+ By doing so, this should bring the code that copies the .data section
+ from ROM to RAM at init time.
+
+ ___pre_comp_data_size = SIZEOF(.data);
+ __install_data_sections = ___pre_comp_data_size > 0 ?
+ __map_data_sections : 0;
+*/
+"
+
+INSTALL_RELOC="
+ .install0 0 : { *(.install0) }
+ .install1 0 : { *(.install1) }
+ .install2 0 : { *(.install2) }
+ .install3 0 : { *(.install3) }
+ .install4 0 : { *(.install4) }
+"
+
+BSS_DATA_RELOC="
+ .data1 0 : { *(.data1) }
+
+ /* We want the small data sections together, so single-instruction offsets
+ can access them all, and initialized data all before uninitialized, so
+ we can shorten the on-disk segment size. */
+ .sdata 0 : { *(.sdata) }
+ .sbss 0 : { *(.sbss) }
+ .scommon 0 : { *(.scommon) }
+"
+
+cat <<EOF
+${RELOCATING+/* Linker script for 68HC12 executable (PROM). */}
+${RELOCATING-/* Linker script for 68HC12 object file (ld -r). */}
+
+OUTPUT_FORMAT("${OUTPUT_FORMAT}", "${BIG_OUTPUT_FORMAT}",
+ "${LITTLE_OUTPUT_FORMAT}")
+OUTPUT_ARCH(${OUTPUT_ARCH})
+ENTRY(${ENTRY})
+
+${RELOCATING+${LIB_SEARCH_DIRS}}
+${RELOCATING+${EXECUTABLE_SYMBOLS}}
+${RELOCATING+${MEMORY_DEF}}
+
+SECTIONS
+{
+ .hash ${RELOCATING-0} : { *(.hash) }
+ .dynsym ${RELOCATING-0} : { *(.dynsym) }
+ .dynstr ${RELOCATING-0} : { *(.dynstr) }
+ .gnu.version ${RELOCATING-0} : { *(.gnu.version) }
+ .gnu.version_d ${RELOCATING-0} : { *(.gnu.version_d) }
+ .gnu.version_r ${RELOCATING-0} : { *(.gnu.version_r) }
+
+ .rela.text ${RELOCATING-0} : { *(.rela.text) *(.rela.gnu.linkonce.t*) }
+ .rela.data ${RELOCATING-0} : { *(.rela.data) *(.rela.gnu.linkonce.d*) }
+ .rela.rodata ${RELOCATING-0} : { *(.rela.rodata) *(.rela.gnu.linkonce.r*) }
+ .rela.stext ${RELOCATING-0} : { *(.rela.stest) }
+ .rela.etext ${RELOCATING-0} : { *(.rela.etest) }
+ .rela.sdata ${RELOCATING-0} : { *(.rela.sdata) }
+ .rela.edata ${RELOCATING-0} : { *(.rela.edata) }
+ .rela.eit_v ${RELOCATING-0} : { *(.rela.eit_v) }
+ .rela.sbss ${RELOCATING-0} : { *(.rela.sbss) }
+ .rela.ebss ${RELOCATING-0} : { *(.rela.ebss) }
+ .rela.srodata ${RELOCATING-0} : { *(.rela.srodata) }
+ .rela.erodata ${RELOCATING-0} : { *(.rela.erodata) }
+ .rela.got ${RELOCATING-0} : { *(.rela.got) }
+ .rela.ctors ${RELOCATING-0} : { *(.rela.ctors) }
+ .rela.dtors ${RELOCATING-0} : { *(.rela.dtors) }
+ .rela.init ${RELOCATING-0} : { *(.rela.init) }
+ .rela.fini ${RELOCATING-0} : { *(.rela.fini) }
+ .rela.bss ${RELOCATING-0} : { *(.rela.bss) }
+ .rela.plt ${RELOCATING-0} : { *(.rela.plt) }
+
+ .rel.data ${RELOCATING-0} : { *(.rel.data) *(.rel.gnu.linkonce.d*) }
+ .rel.rodata ${RELOCATING-0} : { *(.rel.rodata) *(.rel.gnu.linkonce.r*) }
+ .rel.stext ${RELOCATING-0} : { *(.rel.stest) }
+ .rel.etext ${RELOCATING-0} : { *(.rel.etest) }
+ .rel.sdata ${RELOCATING-0} : { *(.rel.sdata) }
+ .rel.edata ${RELOCATING-0} : { *(.rel.edata) }
+ .rel.sbss ${RELOCATING-0} : { *(.rel.sbss) }
+ .rel.ebss ${RELOCATING-0} : { *(.rel.ebss) }
+ .rel.eit_v ${RELOCATING-0} : { *(.rel.eit_v) }
+ .rel.srodata ${RELOCATING-0} : { *(.rel.srodata) }
+ .rel.erodata ${RELOCATING-0} : { *(.rel.erodata) }
+ .rel.got ${RELOCATING-0} : { *(.rel.got) }
+ .rel.ctors ${RELOCATING-0} : { *(.rel.ctors) }
+ .rel.dtors ${RELOCATING-0} : { *(.rel.dtors) }
+ .rel.init ${RELOCATING-0} : { *(.rel.init) }
+ .rel.fini ${RELOCATING-0} : { *(.rel.fini) }
+ .rel.bss ${RELOCATING-0} : { *(.rel.bss) }
+ .rel.plt ${RELOCATING-0} : { *(.rel.plt) }
+
+ /* Concatenate .page0 sections. Put them in the page0 memory bank
+ unless we are creating a relocatable file. */
+ .page0 :
+ {
+ *(.page0)
+ } ${RELOCATING+ > page0}
+
+ /* Start of text section. */
+ .stext ${RELOCATING-0} :
+ {
+ *(.stext)
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
+ .init ${RELOCATING-0} :
+ {
+ *(.init)
+ } ${RELOCATING+=${NOP-0}}
+
+ ${RELOCATING-${INSTALL_RELOC}}
+
+ .text ${RELOCATING-0}:
+ {
+ /* Put startup code at beginning so that _start keeps same address. */
+ ${RELOCATING+${STARTUP_CODE}}
+
+ ${RELOCATING+*(.init)}
+ *(.text)
+ *(.fini)
+ /* .gnu.warning sections are handled specially by elf32.em. */
+ *(.gnu.warning)
+ *(.gnu.linkonce.t*)
+
+ ${RELOCATING+_etext = .;}
+ ${RELOCATING+PROVIDE (etext = .);}
+
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
+ .eh_frame ${RELOCATING-0} :
+ {
+ *(.eh_frame)
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
+ .rodata ${RELOCATING-0} :
+ {
+ *(.rodata)
+ *(.gnu.linkonce.r*)
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
+ .rodata1 ${RELOCATING-0} :
+ {
+ *(.rodata1)
+ } ${RELOCATING+ > ${TEXT_MEMORY}}
+
+ /* Start of the data section image in ROM. */
+ ${RELOCATING+__data_image = .;}
+ ${RELOCATING+PROVIDE (__data_image = .);}
+
+ /* All read-only sections that normally go in PROM must be above.
+ We construct the DATA image section in PROM at end of all these
+ read-only sections. The data image must be copied at init time.
+ Refer to GNU ld, Section 3.6.8.2 Output Section LMA. */
+ .data ${RELOCATING-0} : ${RELOCATING+AT (__data_image)}
+ {
+ ${RELOCATING+__data_section_start = .;}
+ ${RELOCATING+PROVIDE (__data_section_start = .);}
+
+ ${RELOCATING+${DATA_START_SYMBOLS}}
+ ${RELOCATING+*(.sdata)}
+ *(.data)
+ ${RELOCATING+*(.data1)}
+ *(.gnu.linkonce.d*)
+ ${CONSTRUCTING+CONSTRUCTORS}
+
+ ${RELOCATING+_edata = .;}
+ ${RELOCATING+PROVIDE (edata = .);}
+ } ${RELOCATING+ > ${DATA_MEMORY}}
+
+ ${RELOCATING+__data_section_size = SIZEOF(.data);}
+ ${RELOCATING+PROVIDE (__data_section_size = SIZEOF(.data));}
+ ${RELOCATING+__data_image_end = __data_image + __data_section_size;}
+
+ ${RELOCATING+${PRE_COMPUTE_DATA_SIZE}}
+
+ /* .install ${RELOCATING-0}:
+ {
+ . = _data_image_end;
+ } ${RELOCATING+ > ${TEXT_MEMORY}} */
+
+ /* Relocation for some bss and data sections. */
+ ${RELOCATING-${BSS_DATA_RELOC}}
+
+ .bss ${RELOCATING-0} :
+ {
+ ${RELOCATING+__bss_start = .;}
+ ${RELOCATING+*(.sbss)}
+ ${RELOCATING+*(.scommon)}
+
+ *(.dynbss)
+ *(.bss)
+ *(COMMON)
+ ${RELOCATING+PROVIDE (_end = .);}
+ } ${RELOCATING+ > ${DATA_MEMORY}}
+
+ ${RELOCATING+${CTOR}}
+ ${RELOCATING+${DTOR}}
+
+ ${RELOCATING+${VECTORS}}
+
+ /* Stabs debugging sections. */
+ .stab 0 : { *(.stab) }
+ .stabstr 0 : { *(.stabstr) }
+ .stab.excl 0 : { *(.stab.excl) }
+ .stab.exclstr 0 : { *(.stab.exclstr) }
+ .stab.index 0 : { *(.stab.index) }
+ .stab.indexstr 0 : { *(.stab.indexstr) }
+
+ .comment 0 : { *(.comment) }
+
+ /* DWARF debug sections.
+ Symbols in the DWARF debugging sections are relative to the beginning
+ of the section so we begin them at 0.
+ Treatment of DWARF debug section must be at end of the linker
+ script to avoid problems when there are undefined symbols. It's necessary
+ to avoid that the DWARF section is relocated before such undefined
+ symbols are found. */
+
+ /* DWARF 1 */
+ .debug 0 : { *(.debug) }
+ .line 0 : { *(.line) }
+
+ /* GNU DWARF 1 extensions */
+ .debug_srcinfo 0 : { *(.debug_srcinfo) }
+ .debug_sfnames 0 : { *(.debug_sfnames) }
+
+ /* DWARF 1.1 and DWARF 2 */
+ .debug_aranges 0 : { *(.debug_aranges) }
+ .debug_pubnames 0 : { *(.debug_pubnames) }
+
+ /* DWARF 2 */
+ .debug_info 0 : { *(.debug_info) }
+ .debug_abbrev 0 : { *(.debug_abbrev) }
+ .debug_line 0 : { *(.debug_line) }
+ .debug_frame 0 : { *(.debug_frame) }
+ .debug_str 0 : { *(.debug_str) }
+ .debug_loc 0 : { *(.debug_loc) }
+ .debug_macinfo 0 : { *(.debug_macinfo) }
+}
+EOF
diff --git a/ltconfig b/ltconfig
index a01334f..e57dd54 100755
--- a/ltconfig
+++ b/ltconfig
@@ -1183,7 +1183,7 @@ EOF
$DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~
$CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts'
- old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
+ old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a'
;;
netbsd*)
diff --git a/opcodes/Makefile.am b/opcodes/Makefile.am
index 9b2385c..14ce424 100644
--- a/opcodes/Makefile.am
+++ b/opcodes/Makefile.am
@@ -79,6 +79,8 @@ CFILES = \
m32r-ibld.c \
m32r-opc.c \
m32r-opinst.c \
+ m68hc11-dis.c \
+ m68hc11-opc.c \
m68k-dis.c \
m68k-opc.c \
m88k-dis.c \
@@ -145,6 +147,8 @@ ALL_MACHINES = \
m32r-ibld.lo \
m32r-opc.lo \
m32r-opinst.lo \
+ m68hc11-dis.lo \
+ m68hc11-opc.lo \
m68k-dis.lo \
m68k-opc.lo \
m88k-dis.lo \
@@ -387,6 +391,10 @@ m32r-opc.lo: m32r-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
m32r-opinst.lo: m32r-opinst.c sysdep.h config.h $(INCDIR)/ansidecl.h \
$(BFD_H) $(INCDIR)/symcat.h m32r-desc.h $(INCDIR)/opcode/cgen.h \
m32r-opc.h
+m68hc11-dis.lo: m68hc11-dis.c $(INCDIR)/dis-asm.h $(BFD_H) \
+ $(INCDIR)/ansidecl.h $(INCDIR)/floatformat.h \
+ $(INCDIR)/opcode/m68hc11.h
+m68hc11-opc.lo: m68hc11-opc.c $(INCDIR)/ansidecl.h $(INCDIR)/opcode/m68hc11.h
m68k-dis.lo: m68k-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
$(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/floatformat.h \
opintl.h $(INCDIR)/opcode/m68k.h
diff --git a/opcodes/Makefile.in b/opcodes/Makefile.in
index c5c1d01..3391d77 100644
--- a/opcodes/Makefile.in
+++ b/opcodes/Makefile.in
@@ -183,6 +183,8 @@ CFILES = \
m32r-ibld.c \
m32r-opc.c \
m32r-opinst.c \
+ m68hc11-dis.c \
+ m68hc11-opc.c \
m68k-dis.c \
m68k-opc.c \
m88k-dis.c \
@@ -250,6 +252,8 @@ ALL_MACHINES = \
m32r-ibld.lo \
m32r-opc.lo \
m32r-opinst.lo \
+ m68hc11-dis.lo \
+ m68hc11-opc.lo \
m68k-dis.lo \
m68k-opc.lo \
m88k-dis.lo \
@@ -330,7 +334,7 @@ acinclude.m4 aclocal.m4 config.in configure configure.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
-TAR = tar
+TAR = gtar
GZIP_ENV = --best
SOURCES = libopcodes.a.c $(libopcodes_la_SOURCES)
OBJECTS = libopcodes.a.o $(libopcodes_la_OBJECTS)
@@ -885,6 +889,10 @@ m32r-opc.lo: m32r-opc.c sysdep.h config.h $(INCDIR)/ansidecl.h \
m32r-opinst.lo: m32r-opinst.c sysdep.h config.h $(INCDIR)/ansidecl.h \
$(BFD_H) $(INCDIR)/symcat.h m32r-desc.h $(INCDIR)/opcode/cgen.h \
m32r-opc.h
+m68hc11-dis.lo: m68hc11-dis.c $(INCDIR)/dis-asm.h $(BFD_H) \
+ $(INCDIR)/ansidecl.h $(INCDIR)/floatformat.h \
+ $(INCDIR)/opcode/m68hc11.h
+m68hc11-opc.lo: m68hc11-opc.c $(INCDIR)/ansidecl.h $(INCDIR)/opcode/m68hc11.h
m68k-dis.lo: m68k-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
$(INCDIR)/dis-asm.h $(BFD_H) $(INCDIR)/floatformat.h \
opintl.h $(INCDIR)/opcode/m68k.h
diff --git a/opcodes/configure b/opcodes/configure
index 1655fe7..5c8f609 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -3957,6 +3957,8 @@ if test x${all_targets} = xfalse ; then
bfd_i960_arch) ta="$ta i960-dis.lo" ;;
bfd_ia64_arch) ta="$ta ia64-dis.lo ia64-opc.lo" ;;
bfd_m32r_arch) ta="$ta m32r-asm.lo m32r-desc.lo m32r-dis.lo m32r-ibld.lo m32r-opc.lo m32r-opinst.lo" using_cgen=yes ;;
+ bfd_m68hc11_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;;
+ bfd_m68hc12_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;;
bfd_m68k_arch) ta="$ta m68k-dis.lo m68k-opc.lo" ;;
bfd_m88k_arch) ta="$ta m88k-dis.lo" ;;
bfd_mcore_arch) ta="$ta mcore-dis.lo" ;;
diff --git a/opcodes/configure.in b/opcodes/configure.in
index 6f94bfc..0e947fb 100644
--- a/opcodes/configure.in
+++ b/opcodes/configure.in
@@ -168,6 +168,8 @@ if test x${all_targets} = xfalse ; then
bfd_i960_arch) ta="$ta i960-dis.lo" ;;
bfd_ia64_arch) ta="$ta ia64-dis.lo ia64-opc.lo" ;;
bfd_m32r_arch) ta="$ta m32r-asm.lo m32r-desc.lo m32r-dis.lo m32r-ibld.lo m32r-opc.lo m32r-opinst.lo" using_cgen=yes ;;
+ bfd_m68hc11_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;;
+ bfd_m68hc12_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;;
bfd_m68k_arch) ta="$ta m68k-dis.lo m68k-opc.lo" ;;
bfd_m88k_arch) ta="$ta m88k-dis.lo" ;;
bfd_mcore_arch) ta="$ta mcore-dis.lo" ;;
diff --git a/opcodes/disassemble.c b/opcodes/disassemble.c
index 3f463c9..a9b62e8 100644
--- a/opcodes/disassemble.c
+++ b/opcodes/disassemble.c
@@ -37,6 +37,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define ARCH_fr30
#define ARCH_m32r
#define ARCH_m68k
+#define ARCH_m68hc11
+#define ARCH_m68hc12
#define ARCH_m88k
#define ARCH_mcore
#define ARCH_mips
@@ -164,6 +166,14 @@ disassembler (abfd)
disassemble = print_insn_m32r;
break;
#endif
+#if defined(ARCH_m68hc11) || defined(ARCH_m68hc12)
+ case bfd_arch_m68hc11:
+ disassemble = print_insn_m68hc11;
+ break;
+ case bfd_arch_m68hc12:
+ disassemble = print_insn_m68hc12;
+ break;
+#endif
#ifdef ARCH_m68k
case bfd_arch_m68k:
disassemble = print_insn_m68k;
diff --git a/opcodes/m68hc11-dis.c b/opcodes/m68hc11-dis.c
new file mode 100644
index 0000000..2ef241c
--- /dev/null
+++ b/opcodes/m68hc11-dis.c
@@ -0,0 +1,608 @@
+/* m68hc11-dis.c -- Motorola 68HC11 & 68HC12 disassembly
+ Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Written by Stephane Carrez (stcarrez@worldnet.fr)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+#include <stdio.h>
+
+#include "ansidecl.h"
+#include "opcode/m68hc11.h"
+#include "dis-asm.h"
+
+static const char *const reg_name[] = {
+ "X", "Y", "SP", "PC"
+};
+
+static const char *const reg_src_table[] = {
+ "A", "B", "CCR", "TMP3", "D", "X", "Y", "SP"
+};
+
+static const char *const reg_dst_table[] = {
+ "A", "B", "CCR", "TMP2", "D", "X", "Y", "SP"
+};
+
+#define OP_PAGE_MASK (M6811_OP_PAGE2|M6811_OP_PAGE3|M6811_OP_PAGE4)
+
+static int
+read_memory (memaddr, buffer, size, info)
+ bfd_vma memaddr;
+ bfd_byte *buffer;
+ int size;
+ struct disassemble_info *info;
+{
+ int status;
+
+ /* Get first byte. Only one at a time because we don't know the
+ size of the insn. */
+ status = (*info->read_memory_func) (memaddr, buffer, size, info);
+ if (status != 0)
+ {
+ (*info->memory_error_func) (status, memaddr, info);
+ return -1;
+ }
+ return 0;
+}
+
+
+/* Read the 68HC12 indexed operand byte and print the corresponding mode.
+ Returns the number of bytes read or -1 if failure. */
+static int
+print_indexed_operand (memaddr, info, mov_insn)
+ bfd_vma memaddr;
+ struct disassemble_info *info;
+ int mov_insn;
+{
+ bfd_byte buffer[4];
+ int reg;
+ int status;
+ short sval;
+ int pos = 1;
+
+ status = read_memory (memaddr, &buffer[0], 1, info);
+ if (status != 0)
+ {
+ return status;
+ }
+
+ /* n,r with 5-bits signed constant. */
+ if ((buffer[0] & 0x20) == 0)
+ {
+ reg = (buffer[0] >> 6) & 3;
+ sval = (buffer[0] & 0x1f);
+ if (sval & 0x10)
+ sval |= 0xfff0;
+ (*info->fprintf_func) (info->stream, "%d,%s",
+ (int) sval, reg_name[reg]);
+ }
+
+ /* Auto pre/post increment/decrement. */
+ else if ((buffer[0] & 0xc0) != 0xc0)
+ {
+ const char *mode;
+
+ reg = (buffer[0] >> 6) & 3;
+ sval = (buffer[0] & 0x0f);
+ if (sval & 0x8)
+ {
+ sval |= 0xfff0;
+ sval = -sval;
+ mode = "-";
+ }
+ else
+ {
+ sval = sval + 1;
+ mode = "+";
+ }
+ (*info->fprintf_func) (info->stream, "%d,%s%s%s",
+ (int) sval,
+ (buffer[0] & 0x10 ? "" : mode),
+ reg_name[reg], (buffer[0] & 0x10 ? mode : ""));
+ }
+
+ /* [n,r] 16-bits offset indexed indirect. */
+ else if ((buffer[0] & 0x07) == 3)
+ {
+ if (mov_insn)
+ {
+ (*info->fprintf_func) (info->stream, "<invalid op: 0x%x>",
+ buffer[0] & 0x0ff);
+ return 0;
+ }
+ reg = (buffer[0] >> 3) & 0x03;
+ status = read_memory (memaddr + pos, &buffer[0], 2, info);
+ if (status != 0)
+ {
+ return status;
+ }
+
+ pos += 2;
+ sval = ((buffer[0] << 8) | (buffer[1] & 0x0FF));
+ (*info->fprintf_func) (info->stream, "[%u,%s]",
+ sval & 0x0ffff, reg_name[reg]);
+ }
+ else if ((buffer[0] & 0x4) == 0)
+ {
+ if (mov_insn)
+ {
+ (*info->fprintf_func) (info->stream, "<invalid op: 0x%x>",
+ buffer[0] & 0x0ff);
+ return 0;
+ }
+ reg = (buffer[0] >> 3) & 0x03;
+ status = read_memory (memaddr + pos,
+ &buffer[1], (buffer[0] & 0x2 ? 2 : 1), info);
+ if (status != 0)
+ {
+ return status;
+ }
+ if (buffer[0] & 2)
+ {
+ sval = ((buffer[1] << 8) | (buffer[2] & 0x0FF));
+ sval &= 0x0FFFF;
+ pos += 2;
+ }
+ else
+ {
+ sval = buffer[1] & 0x00ff;
+ if (buffer[0] & 0x01)
+ sval |= 0xff00;
+ pos++;
+ }
+ (*info->fprintf_func) (info->stream, "%d,%s",
+ (int) sval, reg_name[reg]);
+ }
+ else
+ {
+ reg = (buffer[0] >> 3) & 0x03;
+ switch (buffer[0] & 3)
+ {
+ case 0:
+ (*info->fprintf_func) (info->stream, "A,%s", reg_name[reg]);
+ break;
+ case 1:
+ (*info->fprintf_func) (info->stream, "B,%s", reg_name[reg]);
+ break;
+ case 2:
+ (*info->fprintf_func) (info->stream, "D,%s", reg_name[reg]);
+ break;
+ case 3:
+ default:
+ (*info->fprintf_func) (info->stream, "[D,%s]", reg_name[reg]);
+ break;
+ }
+ }
+
+ return pos;
+}
+
+/* Disassemble one instruction at address 'memaddr'. Returns the number
+ of bytes used by that instruction. */
+static int
+print_insn (memaddr, info, arch)
+ bfd_vma memaddr;
+ struct disassemble_info *info;
+ int arch;
+{
+ int status;
+ bfd_byte buffer[4];
+ unsigned char code;
+ long format, pos, i;
+ short sval;
+ const struct m68hc11_opcode *opcode;
+
+ /* Get first byte. Only one at a time because we don't know the
+ size of the insn. */
+ status = read_memory (memaddr, buffer, 1, info);
+ if (status != 0)
+ {
+ return status;
+ }
+
+ format = 0;
+ code = buffer[0];
+ pos = 0;
+
+ /* Look for page2,3,4 opcodes. */
+ if (code == M6811_OPCODE_PAGE2)
+ {
+ pos++;
+ format = M6811_OP_PAGE2;
+ }
+ else if (code == M6811_OPCODE_PAGE3 && arch == cpu6811)
+ {
+ pos++;
+ format = M6811_OP_PAGE3;
+ }
+ else if (code == M6811_OPCODE_PAGE4 && arch == cpu6811)
+ {
+ pos++;
+ format = M6811_OP_PAGE4;
+ }
+
+ /* We are in page2,3,4; get the real opcode. */
+ if (pos == 1)
+ {
+ status = read_memory (memaddr + pos, &buffer[1], 1, info);
+ if (status != 0)
+ {
+ return status;
+ }
+ code = buffer[1];
+ }
+
+
+ /* Look first for a 68HC12 alias. All of them are 2-bytes long and
+ in page 1. There is no operand to print. We read the second byte
+ only when we have a possible match. */
+ if ((arch & cpu6812) && format == 0)
+ {
+ int must_read = 1;
+
+ /* Walk the alias table to find a code1+code2 match. */
+ for (i = 0; i < m68hc12_num_alias; i++)
+ {
+ if (m68hc12_alias[i].code1 == code)
+ {
+ if (must_read)
+ {
+ status = read_memory (memaddr + pos + 1,
+ &buffer[1], 1, info);
+ if (status != 0)
+ break;
+
+ must_read = 1;
+ }
+ if (m68hc12_alias[i].code2 == (unsigned char) buffer[1])
+ {
+ (*info->fprintf_func) (info->stream, "%s",
+ m68hc12_alias[i].name);
+ return 2;
+ }
+ }
+ }
+ }
+
+ pos++;
+
+ /* Scan the opcode table until we find the opcode
+ with the corresponding page. */
+ opcode = m68hc11_opcodes;
+ for (i = 0; i < m68hc11_num_opcodes; i++, opcode++)
+ {
+ int offset;
+
+ if ((opcode->arch & arch) == 0)
+ continue;
+ if (opcode->opcode != code)
+ continue;
+ if ((opcode->format & OP_PAGE_MASK) != format)
+ continue;
+
+ if (opcode->format & M6812_OP_REG)
+ {
+ int j;
+ int is_jump;
+
+ if (opcode->format & M6811_OP_JUMP_REL)
+ is_jump = 1;
+ else
+ is_jump = 0;
+
+ status = read_memory (memaddr + pos, &buffer[0], 1, info);
+ if (status != 0)
+ {
+ return status;
+ }
+ for (j = 0; i + j < m68hc11_num_opcodes; j++)
+ {
+ if ((opcode[j].arch & arch) == 0)
+ continue;
+ if (opcode[j].opcode != code)
+ continue;
+ if (is_jump)
+ {
+ if (!(opcode[j].format & M6811_OP_JUMP_REL))
+ continue;
+
+ if ((opcode[j].format & M6812_OP_IBCC_MARKER)
+ && (buffer[0] & 0xc0) != 0x80)
+ continue;
+ if ((opcode[j].format & M6812_OP_TBCC_MARKER)
+ && (buffer[0] & 0xc0) != 0x40)
+ continue;
+ if ((opcode[j].format & M6812_OP_DBCC_MARKER)
+ && (buffer[0] & 0xc0) != 0)
+ continue;
+ if ((opcode[j].format & M6812_OP_EQ_MARKER)
+ && (buffer[0] & 0x20) == 0)
+ break;
+ if (!(opcode[j].format & M6812_OP_EQ_MARKER)
+ && (buffer[0] & 0x20) != 0)
+ break;
+ continue;
+ }
+ if (opcode[j].format & M6812_OP_EXG_MARKER && buffer[0] & 0x80)
+ break;
+ if ((opcode[j].format & M6812_OP_SEX_MARKER)
+ && (((buffer[0] & 0x07) >= 3 && (buffer[0] & 7) <= 7))
+ && ((buffer[0] & 0x0f0) <= 0x20))
+ break;
+ if (opcode[j].format & M6812_OP_TFR_MARKER
+ && !(buffer[0] & 0x80))
+ break;
+ }
+ if (i + j < m68hc11_num_opcodes)
+ opcode = &opcode[j];
+ }
+
+ /* We have found the opcode. Extract the operand and print it. */
+ (*info->fprintf_func) (info->stream, "%s", opcode->name);
+
+ format = opcode->format;
+ if (format & (M6811_OP_MASK | M6811_OP_BITMASK
+ | M6811_OP_JUMP_REL | M6812_OP_JUMP_REL16))
+ {
+ (*info->fprintf_func) (info->stream, "\t");
+ }
+
+ /* The movb and movw must be handled in a special way... */
+ offset = 0;
+ if (format & (M6812_OP_IDX_P2 | M6812_OP_IND16_P2))
+ {
+ if ((format & M6812_OP_IDX_P2)
+ && (format & (M6811_OP_IMM8 | M6811_OP_IMM16 | M6811_OP_IND16)))
+ offset = 1;
+ }
+
+ /* Operand with one more byte: - immediate, offset,
+ direct-low address. */
+ if (format &
+ (M6811_OP_IMM8 | M6811_OP_IX | M6811_OP_IY | M6811_OP_DIRECT))
+ {
+ status = read_memory (memaddr + pos + offset, &buffer[0], 1, info);
+ if (status != 0)
+ {
+ return status;
+ }
+
+ pos++;
+ offset = -1;
+ if (format & M6811_OP_IMM8)
+ {
+ (*info->fprintf_func) (info->stream, "#%d", (int) buffer[0]);
+ format &= ~M6811_OP_IMM8;
+ }
+ else if (format & M6811_OP_IX)
+ {
+ /* Offsets are in range 0..255, print them unsigned. */
+ (*info->fprintf_func) (info->stream, "%u,x", buffer[0] & 0x0FF);
+ format &= ~M6811_OP_IX;
+ }
+ else if (format & M6811_OP_IY)
+ {
+ (*info->fprintf_func) (info->stream, "%u,y", buffer[0] & 0x0FF);
+ format &= ~M6811_OP_IY;
+ }
+ else if (format & M6811_OP_DIRECT)
+ {
+ (*info->fprintf_func) (info->stream, "*");
+ (*info->print_address_func) (buffer[0] & 0x0FF, info);
+ format &= ~M6811_OP_DIRECT;
+ }
+ }
+
+#define M6812_INDEXED_FLAGS (M6812_OP_IDX|M6812_OP_IDX_1|M6812_OP_IDX_2)
+ /* Analyze the 68HC12 indexed byte. */
+ if (format & M6812_INDEXED_FLAGS)
+ {
+ status = print_indexed_operand (memaddr + pos, info, 0);
+ if (status < 0)
+ {
+ return status;
+ }
+ pos += status;
+ }
+
+ /* 68HC12 dbcc/ibcc/tbcc operands. */
+ if ((format & M6812_OP_REG) && (format & M6811_OP_JUMP_REL))
+ {
+ status = read_memory (memaddr + pos, &buffer[0], 2, info);
+ if (status != 0)
+ {
+ return status;
+ }
+ (*info->fprintf_func) (info->stream, "%s,",
+ reg_src_table[buffer[0] & 0x07]);
+ sval = buffer[1] & 0x0ff;
+ if (buffer[0] & 0x10)
+ sval |= 0xff00;
+
+ pos += 2;
+ (*info->print_address_func) (memaddr + pos + sval, info);
+ format &= ~(M6812_OP_REG | M6811_OP_JUMP_REL);
+ }
+ else if (format & (M6812_OP_REG | M6812_OP_REG_2))
+ {
+ status = read_memory (memaddr + pos, &buffer[0], 1, info);
+ if (status != 0)
+ {
+ return status;
+ }
+
+ pos++;
+ (*info->fprintf_func) (info->stream, "%s,%s",
+ reg_src_table[(buffer[0] >> 4) & 7],
+ reg_dst_table[(buffer[0] & 7)]);
+ }
+
+ /* M6811_OP_BITMASK and M6811_OP_JUMP_REL must be treated separately
+ and in that order. The brset/brclr insn have a bitmask and then
+ a relative branch offset. */
+ if (format & M6811_OP_BITMASK)
+ {
+ status = read_memory (memaddr + pos, &buffer[0], 1, info);
+ if (status != 0)
+ {
+ return status;
+ }
+ pos++;
+ (*info->fprintf_func) (info->stream, " #$%02x%s",
+ buffer[0] & 0x0FF,
+ (format & M6811_OP_JUMP_REL ? " " : ""));
+ format &= ~M6811_OP_BITMASK;
+ }
+ if (format & M6811_OP_JUMP_REL)
+ {
+ int val;
+
+ status = read_memory (memaddr + pos, &buffer[0], 1, info);
+ if (status != 0)
+ {
+ return status;
+ }
+
+ pos++;
+ val = (buffer[0] & 0x80) ? buffer[0] | 0xFFFFFF00 : buffer[0];
+ (*info->print_address_func) (memaddr + pos + val, info);
+ format &= ~M6811_OP_JUMP_REL;
+ }
+ else if (format & M6812_OP_JUMP_REL16)
+ {
+ int val;
+
+ status = read_memory (memaddr + pos, &buffer[0], 2, info);
+ if (status != 0)
+ {
+ return status;
+ }
+
+ pos += 2;
+ val = ((buffer[0] << 8) | (buffer[1] & 0x0FF));
+ if (val & 0x8000)
+ val |= 0xffff0000;
+
+ (*info->print_address_func) (memaddr + pos + val, info);
+ format &= ~M6812_OP_JUMP_REL16;
+ }
+ if (format & (M6811_OP_IMM16 | M6811_OP_IND16))
+ {
+ int val;
+
+ status = read_memory (memaddr + pos + offset, &buffer[0], 2, info);
+ if (status != 0)
+ {
+ return status;
+ }
+ if (format & M6812_OP_IDX_P2)
+ offset = -2;
+ else
+ offset = 0;
+ pos += 2;
+
+ val = ((buffer[0] << 8) | (buffer[1] & 0x0FF));
+ val &= 0x0FFFF;
+ if (format & M6811_OP_IMM16)
+ {
+ format &= ~M6811_OP_IMM16;
+ (*info->fprintf_func) (info->stream, "#");
+ }
+ else
+ format &= ~M6811_OP_IND16;
+
+ (*info->print_address_func) (val, info);
+ }
+
+ if (format & M6812_OP_IDX_P2)
+ {
+ (*info->fprintf_func) (info->stream, ", ");
+ status = print_indexed_operand (memaddr + pos + offset, info, 1);
+ if (status < 0)
+ return status;
+ pos += status;
+ }
+
+ if (format & M6812_OP_IND16_P2)
+ {
+ int val;
+
+ (*info->fprintf_func) (info->stream, ", ");
+
+ status = read_memory (memaddr + pos + offset, &buffer[0], 2, info);
+ if (status != 0)
+ {
+ return status;
+ }
+ pos += 2;
+
+ val = ((buffer[0] << 8) | (buffer[1] & 0x0FF));
+ val &= 0x0FFFF;
+ (*info->print_address_func) (val, info);
+ }
+
+#ifdef DEBUG
+ /* Consistency check. 'format' must be 0, so that we have handled
+ all formats; and the computed size of the insn must match the
+ opcode table content. */
+ if (format & ~(M6811_OP_PAGE4 | M6811_OP_PAGE3 | M6811_OP_PAGE2))
+ {
+ (*info->fprintf_func) (info->stream, "; Error, format: %x", format);
+ }
+ if (pos != opcode->size)
+ {
+ (*info->fprintf_func) (info->stream, "; Error, size: %d expect %d",
+ pos, opcode->size);
+ }
+#endif
+ return pos;
+ }
+
+ /* Opcode not recognized. */
+ if (format == M6811_OP_PAGE2 && arch & cpu6812
+ && ((code >= 0x30 && code <= 0x39) || (code >= 0x40 && code <= 0xff)))
+ (*info->fprintf_func) (info->stream, "trap\t#%d", code & 0x0ff);
+
+ else if (format == M6811_OP_PAGE2)
+ (*info->fprintf_func) (info->stream, ".byte\t0x%02x, 0x%02x",
+ M6811_OPCODE_PAGE2, code);
+ else if (format == M6811_OP_PAGE3)
+ (*info->fprintf_func) (info->stream, ".byte\t0x%02x, 0x%02x",
+ M6811_OPCODE_PAGE3, code);
+ else if (format == M6811_OP_PAGE4)
+ (*info->fprintf_func) (info->stream, ".byte\t0x%02x, 0x%02x",
+ M6811_OPCODE_PAGE4, code);
+ else
+ (*info->fprintf_func) (info->stream, ".byte\t0x%02x", code);
+
+ return pos;
+}
+
+/* Disassemble one instruction at address 'memaddr'. Returns the number
+ of bytes used by that instruction. */
+int
+print_insn_m68hc11 (memaddr, info)
+ bfd_vma memaddr;
+ struct disassemble_info *info;
+{
+ return print_insn (memaddr, info, cpu6811);
+}
+
+int
+print_insn_m68hc12 (memaddr, info)
+ bfd_vma memaddr;
+ struct disassemble_info *info;
+{
+ return print_insn (memaddr, info, cpu6812);
+}
diff --git a/opcodes/m68hc11-opc.c b/opcodes/m68hc11-opc.c
new file mode 100644
index 0000000..1e37971
--- /dev/null
+++ b/opcodes/m68hc11-opc.c
@@ -0,0 +1,1074 @@
+/* m68hc11-opc.c -- Motorola 68HC11 & 68HC12 opcode list
+ Copyright 1999, 2000 Free Software Foundation, Inc.
+ Written by Stephane Carrez (stcarrez@worldnet.fr)
+
+This file is part of GDB, GAS, and the GNU binutils.
+
+GDB, GAS, and the GNU binutils are free software; you can redistribute
+them and/or modify them 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.
+
+GDB, GAS, and the GNU binutils are distributed in the hope that they
+will be useful, but WITHOUT ANY WARRANTY; without even the implied
+warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
+the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this file; 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 "ansidecl.h"
+#include "opcode/m68hc11.h"
+
+#define TABLE_SIZE(X) (sizeof(X) / sizeof(X[0]))
+
+/* Combination of CCR flags. */
+#define M6811_ZC_BIT M6811_Z_BIT|M6811_C_BIT
+#define M6811_NZ_BIT M6811_N_BIT|M6811_Z_BIT
+#define M6811_NZV_BIT M6811_N_BIT|M6811_Z_BIT|M6811_V_BIT
+#define M6811_NZC_BIT M6811_N_BIT|M6811_Z_BIT|M6811_C_BIT
+#define M6811_NVC_BIT M6811_N_BIT|M6811_V_BIT|M6811_C_BIT
+#define M6811_ZVC_BIT M6811_Z_BIT|M6811_V_BIT|M6811_C_BIT
+#define M6811_NZVC_BIT M6811_ZVC_BIT|M6811_N_BIT
+#define M6811_HNZVC_BIT M6811_NZVC_BIT|M6811_H_BIT
+#define M6811_HNVC_BIT M6811_NVC_BIT|M6811_H_BIT
+#define M6811_VC_BIT M6811_V_BIT|M6811_C_BIT
+
+/* Flags when the insn only changes some CCR flags. */
+#define CHG_NONE 0,0,0
+#define CHG_Z 0,0,M6811_Z_BIT
+#define CHG_C 0,0,M6811_C_BIT
+#define CHG_ZVC 0,0,M6811_ZVC_BIT
+#define CHG_NZC 0,0,M6811_NZC_BIT
+#define CHG_NZV 0,0,M6811_NZV_BIT
+#define CHG_NZVC 0,0,M6811_NZVC_BIT
+#define CHG_HNZVC 0,0,M6811_HNZVC_BIT
+#define CHG_ALL 0,0,0xff
+
+/* The insn clears and changes some flags. */
+#define CLR_I 0,M6811_I_BIT,0
+#define CLR_C 0,M6811_C_BIT,0
+#define CLR_V 0,M6811_V_BIT,0
+#define CLR_V_CHG_ZC 0,M6811_V_BIT,M6811_ZC_BIT
+#define CLR_V_CHG_NZ 0,M6811_V_BIT,M6811_NZ_BIT
+#define CLR_V_CHG_ZVC 0,M6811_V_BIT,M6811_ZVC_BIT
+#define CLR_N_CHG_ZVC 0,M6811_N_BIT,M6811_ZVC_BIT /* Used by lsr */
+#define CLR_VC_CHG_NZ 0,M6811_VC_BIT,M6811_NZ_BIT
+
+/* The insn sets some flags. */
+#define SET_I M6811_I_BIT,0,0
+#define SET_C M6811_C_BIT,0,0
+#define SET_V M6811_V_BIT,0,0
+#define SET_Z_CLR_NVC M6811_Z_BIT,M6811_NVC_BIT,0
+#define SET_C_CLR_V_CHG_NZ M6811_C_BIT,M6811_V_BIT,M6811_NZ_BIT
+#define SET_Z_CHG_HNVC M6811_Z_BIT,0,M6811_HNVC_BIT
+
+#define _M 0xff
+#define OP_NONE M6811_OP_NONE
+#define OP_PAGE2 M6811_OP_PAGE2
+#define OP_PAGE3 M6811_OP_PAGE3
+#define OP_PAGE4 M6811_OP_PAGE4
+#define OP_IMM8 M6811_OP_IMM8
+#define OP_IMM16 M6811_OP_IMM16
+#define OP_IX M6811_OP_IX
+#define OP_IY M6811_OP_IY
+#define OP_IND16 M6811_OP_IND16
+#define OP_IDX M6812_OP_IDX
+#define OP_IDX_1 M6812_OP_IDX_1
+#define OP_IDX_2 M6812_OP_IDX_2
+#define OP_D_IDX M6812_OP_D_IDX
+#define OP_D_IDX_2 M6812_OP_D_IDX_2
+#define OP_DIRECT M6811_OP_DIRECT
+#define OP_BITMASK M6811_OP_BITMASK
+#define OP_JUMP_REL M6811_OP_JUMP_REL
+#define OP_JUMP_REL16 M6812_OP_JUMP_REL16
+#define OP_REG M6812_OP_REG
+#define OP_REG_1 M6812_OP_REG
+#define OP_REG_2 M6812_OP_REG_2
+#define OP_IDX_p2 M6812_OP_IDX_P2
+#define OP_IND16_p2 M6812_OP_IND16_P2
+#define OP_TRAP_ID M6812_OP_TRAP_ID
+#define OP_EXG_MARKER M6812_OP_EXG_MARKER
+#define OP_TFR_MARKER M6812_OP_TFR_MARKER
+#define OP_DBEQ_MARKER (M6812_OP_DBCC_MARKER|M6812_OP_EQ_MARKER)
+#define OP_DBNE_MARKER (M6812_OP_DBCC_MARKER)
+#define OP_TBEQ_MARKER (M6812_OP_TBCC_MARKER|M6812_OP_EQ_MARKER)
+#define OP_TBNE_MARKER (M6812_OP_TBCC_MARKER)
+#define OP_IBEQ_MARKER (M6812_OP_IBCC_MARKER|M6812_OP_EQ_MARKER)
+#define OP_IBNE_MARKER (M6812_OP_IBCC_MARKER)
+
+/*
+ { "test", OP_NONE, 1, 0x00, 5, _M, CHG_NONE, cpu6811 },
+ +-- cpu
+ Name -+ +------- Insn CCR changes
+ Format ------+ +----------- Max # cycles
+ Size --------------------+ +--------------- Min # cycles
+ +--------------------- Opcode
+*/
+const struct m68hc11_opcode m68hc11_opcodes[] = {
+ { "aba", OP_NONE, 1, 0x1b, 2, 2, CHG_HNZVC, cpu6811 },
+ { "aba", OP_NONE | OP_PAGE2,2, 0x06, 2, 2, CHG_HNZVC, cpu6812 },
+ { "abx", OP_NONE, 1, 0x3a, 3, 3, CHG_NONE, cpu6811 },
+ { "aby", OP_NONE | OP_PAGE2,2, 0x3a, 4, 4, CHG_NONE, cpu6811 },
+
+ { "adca", OP_IMM8, 2, 0x89, 1, 1, CHG_HNZVC, cpu6811|cpu6812 },
+ { "adca", OP_DIRECT, 2, 0x99, 3, 3, CHG_HNZVC, cpu6811|cpu6812 },
+ { "adca", OP_IND16, 3, 0xb9, 3, 3, CHG_HNZVC, cpu6811|cpu6812 },
+ { "adca", OP_IX, 2, 0xa9, 4, 4, CHG_HNZVC, cpu6811 },
+ { "adca", OP_IY | OP_PAGE2, 3, 0xa9, 5, 5, CHG_HNZVC, cpu6811 },
+ { "adca", OP_IDX, 2, 0xa9, 3, 3, CHG_HNZVC, cpu6812 },
+ { "adca", OP_IDX_1, 3, 0xa9, 3, 3, CHG_HNZVC, cpu6812 },
+ { "adca", OP_IDX_2, 4, 0xa9, 4, 4, CHG_HNZVC, cpu6812 },
+ { "adca", OP_D_IDX, 2, 0xa9, 6, 6, CHG_HNZVC, cpu6812 },
+ { "adca", OP_D_IDX_2, 4, 0xa9, 6, 6, CHG_HNZVC, cpu6812 },
+
+ { "adcb", OP_IMM8, 2, 0xc9, 1, 1, CHG_HNZVC, cpu6811|cpu6812 },
+ { "adcb", OP_DIRECT, 2, 0xd9, 3, 3, CHG_HNZVC, cpu6811|cpu6812 },
+ { "adcb", OP_IND16, 3, 0xf9, 3, 3, CHG_HNZVC, cpu6811|cpu6812 },
+ { "adcb", OP_IX, 2, 0xe9, 4, 4, CHG_HNZVC, cpu6811 },
+ { "adcb", OP_IY | OP_PAGE2, 3, 0xe9, 5, 5, CHG_HNZVC, cpu6811 },
+ { "adcb", OP_IDX, 2, 0xe9, 3, 3, CHG_HNZVC, cpu6812 },
+ { "adcb", OP_IDX_1, 3, 0xe9, 3, 3, CHG_HNZVC, cpu6812 },
+ { "adcb", OP_IDX_2, 4, 0xe9, 4, 4, CHG_HNZVC, cpu6812 },
+ { "adcb", OP_D_IDX, 2, 0xe9, 6, 6, CHG_HNZVC, cpu6812 },
+ { "adcb", OP_D_IDX_2, 4, 0xe9, 6, 6, CHG_HNZVC, cpu6812 },
+
+ { "adda", OP_IMM8, 2, 0x8b, 1, 1, CHG_HNZVC, cpu6811|cpu6812 },
+ { "adda", OP_DIRECT, 2, 0x9b, 3, 3, CHG_HNZVC, cpu6811|cpu6812 },
+ { "adda", OP_IND16, 3, 0xbb, 3, 3, CHG_HNZVC, cpu6811|cpu6812 },
+ { "adda", OP_IX, 2, 0xab, 4, 4, CHG_HNZVC, cpu6811 },
+ { "adda", OP_IY | OP_PAGE2, 3, 0xab, 5, 5, CHG_HNZVC, cpu6811 },
+ { "adda", OP_IDX, 2, 0xab, 3, 3, CHG_HNZVC, cpu6812 },
+ { "adda", OP_IDX_1, 3, 0xab, 3, 3, CHG_HNZVC, cpu6812 },
+ { "adda", OP_IDX_2, 4, 0xab, 4, 4, CHG_HNZVC, cpu6812 },
+ { "adda", OP_D_IDX, 2, 0xab, 6, 6, CHG_HNZVC, cpu6812 },
+ { "adda", OP_D_IDX_2, 4, 0xab, 6, 6, CHG_HNZVC, cpu6812 },
+
+ { "addb", OP_IMM8, 2, 0xcb, 1, 1, CHG_HNZVC, cpu6811|cpu6812 },
+ { "addb", OP_DIRECT, 2, 0xdb, 3, 3, CHG_HNZVC, cpu6811|cpu6812 },
+ { "addb", OP_IND16, 3, 0xfb, 3, 3, CHG_HNZVC, cpu6811|cpu6812 },
+ { "addb", OP_IX, 2, 0xeb, 4, 4, CHG_HNZVC, cpu6811 },
+ { "addb", OP_IY | OP_PAGE2, 3, 0xeb, 5, 5, CHG_HNZVC, cpu6811 },
+ { "addb", OP_IDX, 2, 0xeb, 3, 3, CHG_HNZVC, cpu6812 },
+ { "addb", OP_IDX_1, 3, 0xeb, 3, 3, CHG_HNZVC, cpu6812 },
+ { "addb", OP_IDX_2, 4, 0xeb, 4, 4, CHG_HNZVC, cpu6812 },
+ { "addb", OP_D_IDX, 2, 0xeb, 6, 6, CHG_HNZVC, cpu6812 },
+ { "addb", OP_D_IDX_2, 4, 0xeb, 6, 6, CHG_HNZVC, cpu6812 },
+
+ { "addd", OP_IMM16, 3, 0xc3, 2, 2, CHG_NZVC, cpu6811|cpu6812 },
+ { "addd", OP_DIRECT, 2, 0xd3, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "addd", OP_IND16, 3, 0xf3, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "addd", OP_IX, 2, 0xe3, 6, 6, CHG_NZVC, cpu6811 },
+ { "addd", OP_IY | OP_PAGE2, 3, 0xe3, 7, 7, CHG_NZVC, cpu6811 },
+ { "addd", OP_IDX, 2, 0xe3, 3, 3, CHG_NZVC, cpu6812 },
+ { "addd", OP_IDX_1, 3, 0xe3, 3, 3, CHG_NZVC, cpu6812 },
+ { "addd", OP_IDX_2, 4, 0xe3, 4, 4, CHG_NZVC, cpu6812 },
+ { "addd", OP_D_IDX, 2, 0xe3, 6, 6, CHG_NZVC, cpu6812 },
+ { "addd", OP_D_IDX_2, 4, 0xe3, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "anda", OP_IMM8, 2, 0x84, 1, 1, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "anda", OP_DIRECT, 2, 0x94, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "anda", OP_IND16, 3, 0xb4, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "anda", OP_IX, 2, 0xa4, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "anda", OP_IY | OP_PAGE2, 3, 0xa4, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "anda", OP_IDX, 2, 0xa4, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "anda", OP_IDX_1, 3, 0xa4, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "anda", OP_IDX_2, 4, 0xa4, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "anda", OP_D_IDX, 2, 0xa4, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "anda", OP_D_IDX_2, 4, 0xa4, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "andb", OP_IMM8, 2, 0xc4, 1, 1, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "andb", OP_DIRECT, 2, 0xd4, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "andb", OP_IND16, 3, 0xf4, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "andb", OP_IX, 2, 0xe4, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "andb", OP_IY | OP_PAGE2, 3, 0xe4, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "andb", OP_IDX, 2, 0xe4, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "andb", OP_IDX_1, 3, 0xe4, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "andb", OP_IDX_2, 4, 0xe4, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "andb", OP_D_IDX, 2, 0xe4, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "andb", OP_D_IDX_2, 4, 0xe4, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "andcc", OP_IMM8, 2, 0x10, 1, 1, CHG_ALL, cpu6812 },
+
+ { "asl", OP_IND16, 3, 0x78, 4, 4, CHG_NZVC, cpu6811|cpu6812 },
+ { "asl", OP_IX, 2, 0x68, 6, 6, CHG_NZVC, cpu6811 },
+ { "asl", OP_IY | OP_PAGE2, 3, 0x68, 7, 7, CHG_NZVC, cpu6811 },
+ { "asl", OP_IDX, 2, 0x68, 3, 3, CHG_NZVC, cpu6812 },
+ { "asl", OP_IDX_1, 3, 0x68, 4, 4, CHG_NZVC, cpu6812 },
+ { "asl", OP_IDX_2, 4, 0x68, 5, 5, CHG_NZVC, cpu6812 },
+ { "asl", OP_D_IDX, 2, 0x68, 6, 6, CHG_NZVC, cpu6812 },
+ { "asl", OP_D_IDX_2, 4, 0x68, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "asla", OP_NONE, 1, 0x48, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "aslb", OP_NONE, 1, 0x58, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "asld", OP_NONE, 1, 0x05, 3, 3, CHG_NZVC, cpu6811 },
+ { "asld", OP_NONE, 1, 0x59, 1, 1, CHG_NZVC, cpu6812 },
+
+ { "asr", OP_IND16, 3, 0x77, 4, 4, CHG_NZVC, cpu6811|cpu6812 },
+ { "asr", OP_IX, 2, 0x67, 6, 6, CHG_NZVC, cpu6811 },
+ { "asr", OP_IY | OP_PAGE2, 3, 0x67, 7, 7, CHG_NZVC, cpu6811 },
+ { "asr", OP_IDX, 2, 0x67, 3, 3, CHG_NZVC, cpu6812 },
+ { "asr", OP_IDX_1, 3, 0x67, 4, 4, CHG_NZVC, cpu6812 },
+ { "asr", OP_IDX_2, 4, 0x67, 5, 5, CHG_NZVC, cpu6812 },
+ { "asr", OP_D_IDX, 2, 0x67, 6, 6, CHG_NZVC, cpu6812 },
+ { "asr", OP_D_IDX_2, 4, 0x67, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "asra", OP_NONE, 1, 0x47, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "asrb", OP_NONE, 1, 0x57, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+
+ { "bcc", OP_JUMP_REL, 2, 0x24, 1, 3, CHG_NONE, cpu6811|cpu6812 },
+
+ { "bclr", OP_BITMASK|OP_DIRECT, 3, 0x15, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "bclr", OP_BITMASK|OP_IX, 3, 0x1d, 7, 7, CLR_V_CHG_NZ, cpu6811 },
+ { "bclr", OP_BITMASK|OP_IY|OP_PAGE2, 4, 0x1d, 8, 8, CLR_V_CHG_NZ, cpu6811},
+ { "bclr", OP_BITMASK|OP_DIRECT, 3, 0x4d, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "bclr", OP_BITMASK|OP_IND16, 4, 0x1d, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "bclr", OP_BITMASK|OP_IDX, 3, 0x0d, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "bclr", OP_BITMASK|OP_IDX_1, 4, 0x0d, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "bclr", OP_BITMASK|OP_IDX_2, 5, 0x0d, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "bcs", OP_JUMP_REL, 2, 0x25, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "beq", OP_JUMP_REL, 2, 0x27, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "bge", OP_JUMP_REL, 2, 0x2c, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+
+ { "bgnd", OP_NONE, 1, 0x00, 5, 5, CHG_NONE, cpu6811 | cpu6812 },
+
+ { "bgt", OP_JUMP_REL, 2, 0x2e, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "bhi", OP_JUMP_REL, 2, 0x22, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "bhs", OP_JUMP_REL, 2, 0x24, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+
+ { "bita", OP_IMM8, 2, 0x85, 1, 1, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "bita", OP_DIRECT, 2, 0x95, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "bita", OP_IND16, 3, 0xb5, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "bita", OP_IX, 2, 0xa5, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "bita", OP_IY | OP_PAGE2, 3, 0xa5, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "bita", OP_IDX, 2, 0xa5, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "bita", OP_IDX_1, 3, 0xa5, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "bita", OP_IDX_2, 4, 0xa5, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "bita", OP_D_IDX, 2, 0xa5, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "bita", OP_D_IDX_2, 4, 0xa5, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "bitb", OP_IMM8, 2, 0xc5, 1, 1, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "bitb", OP_DIRECT, 2, 0xd5, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "bitb", OP_IND16, 3, 0xf5, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "bitb", OP_IX, 2, 0xe5, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "bitb", OP_IY | OP_PAGE2, 3, 0xe5, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "bitb", OP_IDX, 2, 0xe5, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "bitb", OP_IDX_1, 3, 0xe5, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "bitb", OP_IDX_2, 4, 0xe5, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "bitb", OP_D_IDX, 2, 0xe5, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "bitb", OP_D_IDX_2, 4, 0xe5, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "ble", OP_JUMP_REL, 2, 0x2f, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "blo", OP_JUMP_REL, 2, 0x25, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "bls", OP_JUMP_REL, 2, 0x23, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "blt", OP_JUMP_REL, 2, 0x2d, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "bmi", OP_JUMP_REL, 2, 0x2b, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "bne", OP_JUMP_REL, 2, 0x26, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "bpl", OP_JUMP_REL, 2, 0x2a, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "bra", OP_JUMP_REL, 2, 0x20, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+
+ { "brclr", OP_BITMASK | OP_JUMP_REL
+ | OP_DIRECT, 4, 0x13, 6, 6, CHG_NONE, cpu6811 },
+ { "brclr", OP_BITMASK | OP_JUMP_REL
+ | OP_IX, 4, 0x1f, 7, 7, CHG_NONE, cpu6811 },
+ { "brclr", OP_BITMASK | OP_JUMP_REL
+ | OP_IY | OP_PAGE2, 5, 0x1f, 8, 8, CHG_NONE, cpu6811 },
+ { "brclr", OP_BITMASK | OP_JUMP_REL
+ | OP_DIRECT, 4, 0x4f, 4, 4, CHG_NONE, cpu6812 },
+ { "brclr", OP_BITMASK | OP_JUMP_REL
+ | OP_IND16, 5, 0x1f, 5, 5, CHG_NONE, cpu6812 },
+ { "brclr", OP_BITMASK | OP_JUMP_REL
+ | OP_IDX, 4, 0x0f, 4, 4, CHG_NONE, cpu6812 },
+ { "brclr", OP_BITMASK | OP_JUMP_REL
+ | OP_IDX_1, 5, 0x0f, 6, 6, CHG_NONE, cpu6812 },
+ { "brclr", OP_BITMASK
+ | OP_JUMP_REL
+ | OP_IDX_2, 6, 0x0f, 8, 8, CHG_NONE, cpu6812 },
+
+ { "brn", OP_JUMP_REL, 2, 0x21, 1, 3, CHG_NONE, cpu6811|cpu6812 },
+
+ { "brset", OP_BITMASK | OP_JUMP_REL
+ | OP_DIRECT, 4, 0x12, 6, 6, CHG_NONE, cpu6811 },
+ { "brset", OP_BITMASK
+ | OP_JUMP_REL
+ | OP_IX, 4, 0x1e, 7, 7, CHG_NONE, cpu6811 },
+ { "brset", OP_BITMASK | OP_JUMP_REL
+ | OP_IY | OP_PAGE2, 5, 0x1e, 8, 8, CHG_NONE, cpu6811 },
+ { "brset", OP_BITMASK | OP_JUMP_REL
+ | OP_DIRECT, 4, 0x4e, 4, 4, CHG_NONE, cpu6812 },
+ { "brset", OP_BITMASK | OP_JUMP_REL
+ | OP_IND16, 5, 0x1e, 5, 5, CHG_NONE, cpu6812 },
+ { "brset", OP_BITMASK | OP_JUMP_REL
+ | OP_IDX, 4, 0x0e, 4, 4, CHG_NONE, cpu6812 },
+ { "brset", OP_BITMASK | OP_JUMP_REL
+ | OP_IDX_1, 5, 0x0e, 6, 6, CHG_NONE, cpu6812 },
+ { "brset", OP_BITMASK | OP_JUMP_REL
+ | OP_IDX_2, 6, 0x0e, 8, 8, CHG_NONE, cpu6812 },
+
+
+ { "bset", OP_BITMASK | OP_DIRECT, 3, 0x14, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "bset", OP_BITMASK | OP_IX, 3, 0x1c, 7, 7, CLR_V_CHG_NZ, cpu6811 },
+ { "bset", OP_BITMASK|OP_IY|OP_PAGE2, 4, 0x1c, 8, 8, CLR_V_CHG_NZ, cpu6811 },
+ { "bset", OP_BITMASK|OP_DIRECT, 3, 0x4c, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "bset", OP_BITMASK|OP_IND16, 4, 0x1c, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "bset", OP_BITMASK|OP_IDX, 3, 0x0c, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "bset", OP_BITMASK|OP_IDX_1, 4, 0x0c, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "bset", OP_BITMASK|OP_IDX_2, 5, 0x0c, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "bsr", OP_JUMP_REL, 2, 0x8d, 6, 6, CHG_NONE, cpu6811 },
+ { "bsr", OP_JUMP_REL, 2, 0x07, 4, 4, CHG_NONE, cpu6812 },
+
+ { "bvc", OP_JUMP_REL, 2, 0x28, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+ { "bvs", OP_JUMP_REL, 2, 0x29, 1, 3, CHG_NONE, cpu6811 | cpu6812 },
+
+ { "call", OP_IND16, 4, 0x4a, 8, 8, CHG_NONE, cpu6812 },
+ { "call", OP_IDX, 3, 0x4b, 8, 8, CHG_NONE, cpu6812 },
+ { "call", OP_IDX_1, 4, 0x4b, 8, 8, CHG_NONE, cpu6812 },
+ { "call", OP_IDX_2, 5, 0x4b, 9, 9, CHG_NONE, cpu6812 },
+ { "call", OP_D_IDX, 2, 0x4b, 10, 10, CHG_NONE, cpu6812 },
+ { "call", OP_D_IDX_2, 4, 0x4b, 10, 10, CHG_NONE, cpu6812 },
+
+ { "cba", OP_NONE, 1, 0x11, 2, 2, CHG_NZVC, cpu6811 },
+ { "cba", OP_NONE | OP_PAGE2,2, 0x17, 2, 2, CHG_NZVC, cpu6812 },
+
+ { "clc", OP_NONE, 1, 0x0c, 2, 2, CLR_C, cpu6811 },
+ { "cli", OP_NONE, 1, 0x0e, 2, 2, CLR_I, cpu6811 },
+
+ { "clr", OP_IND16, 3, 0x7f, 6, 6, SET_Z_CLR_NVC, cpu6811 },
+ { "clr", OP_IX, 2, 0x6f, 6, 6, SET_Z_CLR_NVC, cpu6811 },
+ { "clr", OP_IY | OP_PAGE2, 3, 0x6f, 7, 7, SET_Z_CLR_NVC, cpu6811 },
+ { "clr", OP_IND16, 3, 0x79, 3, 3, SET_Z_CLR_NVC, cpu6812 },
+ { "clr", OP_IDX, 2, 0x69, 2, 2, SET_Z_CLR_NVC, cpu6812 },
+ { "clr", OP_IDX_1, 3, 0x69, 3, 3, SET_Z_CLR_NVC, cpu6812 },
+ { "clr", OP_IDX_2, 4, 0x69, 4, 4, SET_Z_CLR_NVC, cpu6812 },
+ { "clr", OP_D_IDX, 2, 0x69, 5, 5, SET_Z_CLR_NVC, cpu6812 },
+ { "clr", OP_D_IDX_2, 4, 0x69, 5, 5, SET_Z_CLR_NVC, cpu6812 },
+
+ { "clra", OP_NONE, 1, 0x4f, 2, 2, SET_Z_CLR_NVC, cpu6811 },
+ { "clrb", OP_NONE, 1, 0x5f, 2, 2, SET_Z_CLR_NVC, cpu6811 },
+ { "clra", OP_NONE, 1, 0x87, 1, 1, SET_Z_CLR_NVC, cpu6812 },
+ { "clrb", OP_NONE, 1, 0xc7, 1, 1, SET_Z_CLR_NVC, cpu6812 },
+
+ { "clv", OP_NONE, 1, 0x0a, 2, 2, CLR_V, cpu6811 },
+
+ { "cmpa", OP_IMM8, 2, 0x81, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "cmpa", OP_DIRECT, 2, 0x91, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "cmpa", OP_IND16, 3, 0xb1, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "cmpa", OP_IX, 2, 0xa1, 4, 4, CHG_NZVC, cpu6811 },
+ { "cmpa", OP_IY | OP_PAGE2, 3, 0xa1, 5, 5, CHG_NZVC, cpu6811 },
+ { "cmpa", OP_IDX, 2, 0xa1, 3, 3, CHG_NZVC, cpu6812 },
+ { "cmpa", OP_IDX_1, 3, 0xa1, 3, 3, CHG_NZVC, cpu6812 },
+ { "cmpa", OP_IDX_2, 4, 0xa1, 4, 4, CHG_NZVC, cpu6812 },
+ { "cmpa", OP_D_IDX, 2, 0xa1, 6, 6, CHG_NZVC, cpu6812 },
+ { "cmpa", OP_D_IDX_2, 4, 0xa1, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "cmpb", OP_IMM8, 2, 0xc1, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "cmpb", OP_DIRECT, 2, 0xd1, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "cmpb", OP_IND16, 3, 0xf1, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "cmpb", OP_IX, 2, 0xe1, 4, 4, CHG_NZVC, cpu6811 },
+ { "cmpb", OP_IY | OP_PAGE2, 3, 0xe1, 5, 5, CHG_NZVC, cpu6811 },
+ { "cmpb", OP_IDX, 2, 0xe1, 3, 3, CHG_NZVC, cpu6812 },
+ { "cmpb", OP_IDX_1, 3, 0xe1, 3, 3, CHG_NZVC, cpu6812 },
+ { "cmpb", OP_IDX_2, 4, 0xe1, 4, 4, CHG_NZVC, cpu6812 },
+ { "cmpb", OP_D_IDX, 2, 0xe1, 6, 6, CHG_NZVC, cpu6812 },
+ { "cmpb", OP_D_IDX_2, 4, 0xe1, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "com", OP_IND16, 3, 0x73, 6, 6, SET_C_CLR_V_CHG_NZ, cpu6811 },
+ { "com", OP_IX, 2, 0x63, 6, 6, SET_C_CLR_V_CHG_NZ, cpu6811 },
+ { "com", OP_IY | OP_PAGE2, 3, 0x63, 7, 7, SET_C_CLR_V_CHG_NZ, cpu6811 },
+ { "com", OP_IND16, 3, 0x71, 4, 4, SET_C_CLR_V_CHG_NZ, cpu6812 },
+ { "com", OP_IDX, 2, 0x61, 3, 3, SET_C_CLR_V_CHG_NZ, cpu6812 },
+ { "com", OP_IDX_1, 3, 0x61, 4, 4, SET_C_CLR_V_CHG_NZ, cpu6812 },
+ { "com", OP_IDX_2, 4, 0x61, 5, 5, SET_C_CLR_V_CHG_NZ, cpu6812 },
+ { "com", OP_D_IDX, 2, 0x61, 6, 6, SET_C_CLR_V_CHG_NZ, cpu6812 },
+ { "com", OP_D_IDX_2, 4, 0x61, 6, 6, SET_C_CLR_V_CHG_NZ, cpu6812 },
+
+ { "coma", OP_NONE, 1, 0x43, 2, 2, SET_C_CLR_V_CHG_NZ, cpu6811 },
+ { "coma", OP_NONE, 1, 0x41, 1, 1, SET_C_CLR_V_CHG_NZ, cpu6812 },
+ { "comb", OP_NONE, 1, 0x53, 2, 2, SET_C_CLR_V_CHG_NZ, cpu6811 },
+ { "comb", OP_NONE, 1, 0x51, 1, 1, SET_C_CLR_V_CHG_NZ, cpu6812 },
+
+ { "cpd", OP_IMM16 | OP_PAGE3, 4, 0x83, 5, 5, CHG_NZVC, cpu6811 },
+ { "cpd", OP_DIRECT | OP_PAGE3, 3, 0x93, 6, 6, CHG_NZVC, cpu6811 },
+ { "cpd", OP_IND16 | OP_PAGE3, 4, 0xb3, 7, 7, CHG_NZVC, cpu6811 },
+ { "cpd", OP_IX | OP_PAGE3, 3, 0xa3, 7, 7, CHG_NZVC, cpu6811 },
+ { "cpd", OP_IY | OP_PAGE4, 3, 0xa3, 7, 7, CHG_NZVC, cpu6811 },
+ { "cpd", OP_IMM16, 3, 0x8c, 2, 2, CHG_NZVC, cpu6812 },
+ { "cpd", OP_DIRECT, 2, 0x9c, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpd", OP_IND16, 3, 0xbc, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpd", OP_IDX, 2, 0xac, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpd", OP_IDX_1, 3, 0xac, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpd", OP_IDX_2, 4, 0xac, 4, 4, CHG_NZVC, cpu6812 },
+ { "cpd", OP_D_IDX, 2, 0xac, 6, 6, CHG_NZVC, cpu6812 },
+ { "cpd", OP_D_IDX_2, 4, 0xac, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "cps", OP_IMM16, 3, 0x8f, 2, 2, CHG_NZVC, cpu6812 },
+ { "cps", OP_DIRECT, 2, 0x9f, 3, 3, CHG_NZVC, cpu6812 },
+ { "cps", OP_IND16, 3, 0xbf, 3, 3, CHG_NZVC, cpu6812 },
+ { "cps", OP_IDX, 2, 0xaf, 3, 3, CHG_NZVC, cpu6812 },
+ { "cps", OP_IDX_1, 3, 0xaf, 3, 3, CHG_NZVC, cpu6812 },
+ { "cps", OP_IDX_2, 4, 0xaf, 4, 4, CHG_NZVC, cpu6812 },
+ { "cps", OP_D_IDX, 2, 0xaf, 6, 6, CHG_NZVC, cpu6812 },
+ { "cps", OP_D_IDX_2, 4, 0xaf, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "cpx", OP_IMM16, 3, 0x8c, 4, 4, CHG_NZVC, cpu6811 },
+ { "cpx", OP_DIRECT, 2, 0x9c, 5, 5, CHG_NZVC, cpu6811 },
+ { "cpx", OP_IND16, 3, 0xbc, 5, 5, CHG_NZVC, cpu6811 },
+ { "cpx", OP_IX, 2, 0xac, 6, 6, CHG_NZVC, cpu6811 },
+ { "cpx", OP_IY | OP_PAGE4, 3, 0xac, 7, 7, CHG_NZVC, cpu6811 },
+ { "cpx", OP_IMM16, 3, 0x8e, 2, 2, CHG_NZVC, cpu6812 },
+ { "cpx", OP_DIRECT, 2, 0x9e, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpx", OP_IND16, 3, 0xbe, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpx", OP_IDX, 2, 0xae, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpx", OP_IDX_1, 3, 0xae, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpx", OP_IDX_2, 4, 0xae, 4, 4, CHG_NZVC, cpu6812 },
+ { "cpx", OP_D_IDX, 2, 0xae, 6, 6, CHG_NZVC, cpu6812 },
+ { "cpx", OP_D_IDX_2, 4, 0xae, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "cpy", OP_PAGE2 | OP_IMM16, 4, 0x8c, 5, 5, CHG_NZVC, cpu6811 },
+ { "cpy", OP_PAGE2 | OP_DIRECT, 3, 0x9c, 6, 6, CHG_NZVC, cpu6811 },
+ { "cpy", OP_PAGE2 | OP_IY, 3, 0xac, 7, 7, CHG_NZVC, cpu6811 },
+ { "cpy", OP_PAGE2 | OP_IND16, 4, 0xbc, 7, 7, CHG_NZVC, cpu6811 },
+ { "cpy", OP_PAGE3 | OP_IX, 3, 0xac, 7, 7, CHG_NZVC, cpu6811 },
+ { "cpy", OP_IMM16, 3, 0x8d, 2, 2, CHG_NZVC, cpu6812 },
+ { "cpy", OP_DIRECT, 2, 0x9d, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpy", OP_IND16, 3, 0xbd, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpy", OP_IDX, 2, 0xad, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpy", OP_IDX_1, 3, 0xad, 3, 3, CHG_NZVC, cpu6812 },
+ { "cpy", OP_IDX_2, 4, 0xad, 4, 4, CHG_NZVC, cpu6812 },
+ { "cpy", OP_D_IDX, 2, 0xad, 6, 6, CHG_NZVC, cpu6812 },
+ { "cpy", OP_D_IDX_2, 4, 0xad, 6, 6, CHG_NZVC, cpu6812 },
+
+ /* After 'daa', the Z flag is undefined. Mark it as changed. */
+ { "daa", OP_NONE, 1, 0x19, 2, 2, CHG_NZVC, cpu6811 },
+ { "daa", OP_NONE | OP_PAGE2, 2, 0x07, 3, 3, CHG_NZVC, cpu6812 },
+
+ { "dbeq", OP_DBEQ_MARKER
+ | OP_REG | OP_JUMP_REL,3, 0x04, 3, 3, CHG_NONE, cpu6812 },
+ { "dbne", OP_DBNE_MARKER
+ | OP_REG | OP_JUMP_REL,3, 0x04, 3, 3, CHG_NONE, cpu6812 },
+
+ { "dec", OP_IX, 2, 0x6a, 6, 6, CHG_NZV, cpu6811 },
+ { "dec", OP_IND16, 3, 0x7a, 6, 6, CHG_NZV, cpu6811 },
+ { "dec", OP_IY | OP_PAGE2, 3, 0x6a, 7, 7, CHG_NZV, cpu6811 },
+ { "dec", OP_IND16, 3, 0x73, 4, 4, CHG_NZV, cpu6812 },
+ { "dec", OP_IDX, 2, 0x63, 3, 3, CHG_NZV, cpu6812 },
+ { "dec", OP_IDX_1, 3, 0x63, 4, 4, CHG_NZV, cpu6812 },
+ { "dec", OP_IDX_2, 4, 0x63, 5, 5, CHG_NZV, cpu6812 },
+ { "dec", OP_D_IDX, 2, 0x63, 6, 6, CHG_NZV, cpu6812 },
+ { "dec", OP_D_IDX_2, 4, 0x63, 6, 6, CHG_NZV, cpu6812 },
+
+ { "des", OP_NONE, 1, 0x34, 3, 3, CHG_NONE, cpu6811 },
+
+ { "deca", OP_NONE, 1, 0x4a, 2, 2, CHG_NZV, cpu6811 },
+ { "deca", OP_NONE, 1, 0x43, 1, 1, CHG_NZV, cpu6812 },
+ { "decb", OP_NONE, 1, 0x5a, 2, 2, CHG_NZV, cpu6811 },
+ { "decb", OP_NONE, 1, 0x53, 1, 1, CHG_NZV, cpu6812 },
+
+ { "dex", OP_NONE, 1, 0x09, 1, 1, CHG_Z, cpu6812|cpu6811 },
+ { "dey", OP_NONE | OP_PAGE2, 2, 0x09, 4, 4, CHG_Z, cpu6811 },
+ { "dey", OP_NONE, 1, 0x03, 1, 1, CHG_Z, cpu6812 },
+
+ { "ediv", OP_NONE, 1, 0x11, 11, 11, CHG_NZVC, cpu6812 },
+ { "edivs", OP_NONE | OP_PAGE2, 2, 0x14, 12, 12, CHG_NZVC, cpu6812 },
+ { "emacs", OP_IND16 | OP_PAGE2, 4, 0x12, 13, 13, CHG_NZVC, cpu6812 },
+
+ { "emaxd", OP_IDX | OP_PAGE2, 3, 0x1a, 4, 4, CHG_NZVC, cpu6812 },
+ { "emaxd", OP_IDX_1 | OP_PAGE2, 4, 0x1a, 4, 4, CHG_NZVC, cpu6812 },
+ { "emaxd", OP_IDX_2 | OP_PAGE2, 5, 0x1a, 5, 5, CHG_NZVC, cpu6812 },
+ { "emaxd", OP_D_IDX | OP_PAGE2, 3, 0x1a, 7, 7, CHG_NZVC, cpu6812 },
+ { "emaxd", OP_D_IDX_2 | OP_PAGE2, 5, 0x1a, 7, 7, CHG_NZVC, cpu6812 },
+
+ { "emaxm", OP_IDX | OP_PAGE2, 3, 0x1e, 4, 4, CHG_NZVC, cpu6812 },
+ { "emaxm", OP_IDX_1 | OP_PAGE2, 4, 0x1e, 5, 5, CHG_NZVC, cpu6812 },
+ { "emaxm", OP_IDX_2 | OP_PAGE2, 5, 0x1e, 6, 6, CHG_NZVC, cpu6812 },
+ { "emaxm", OP_D_IDX | OP_PAGE2, 3, 0x1e, 7, 7, CHG_NZVC, cpu6812 },
+ { "emaxm", OP_D_IDX_2 | OP_PAGE2, 5, 0x1e, 7, 7, CHG_NZVC, cpu6812 },
+
+ { "emind", OP_IDX | OP_PAGE2, 3, 0x1b, 4, 4, CHG_NZVC, cpu6812 },
+ { "emind", OP_IDX_1 | OP_PAGE2, 4, 0x1b, 4, 4, CHG_NZVC, cpu6812 },
+ { "emind", OP_IDX_2 | OP_PAGE2, 5, 0x1b, 5, 5, CHG_NZVC, cpu6812 },
+ { "emind", OP_D_IDX | OP_PAGE2, 3, 0x1b, 7, 7, CHG_NZVC, cpu6812 },
+ { "emind", OP_D_IDX_2 | OP_PAGE2, 5, 0x1b, 7, 7, CHG_NZVC, cpu6812 },
+
+ { "eminm", OP_IDX | OP_PAGE2, 3, 0x1f, 4, 4, CHG_NZVC, cpu6812 },
+ { "eminm", OP_IDX_1 | OP_PAGE2, 4, 0x1f, 5, 5, CHG_NZVC, cpu6812 },
+ { "eminm", OP_IDX_2 | OP_PAGE2, 5, 0x1f, 6, 6, CHG_NZVC, cpu6812 },
+ { "eminm", OP_D_IDX | OP_PAGE2, 3, 0x1f, 7, 7, CHG_NZVC, cpu6812 },
+ { "eminm", OP_D_IDX_2 | OP_PAGE2, 5, 0x1f, 7, 7, CHG_NZVC, cpu6812 },
+
+ { "emul", OP_NONE, 1, 0x13, 3, 3, CHG_NZC, cpu6812 },
+ { "emuls", OP_NONE | OP_PAGE2, 2, 0x13, 3, 3, CHG_NZC, cpu6812 },
+
+ { "eora", OP_IMM8, 2, 0x88, 1, 1, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "eora", OP_DIRECT, 2, 0x98, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "eora", OP_IND16, 3, 0xb8, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "eora", OP_IX, 2, 0xa8, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "eora", OP_IY | OP_PAGE2, 3, 0xa8, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "eora", OP_IDX, 2, 0xa8, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "eora", OP_IDX_1, 3, 0xa8, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "eora", OP_IDX_2, 4, 0xa8, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "eora", OP_D_IDX, 2, 0xa8, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "eora", OP_D_IDX_2, 4, 0xa8, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "eorb", OP_IMM8, 2, 0xc8, 1, 1, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "eorb", OP_DIRECT, 2, 0xd8, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "eorb", OP_IND16, 3, 0xf8, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "eorb", OP_IX, 2, 0xe8, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "eorb", OP_IY | OP_PAGE2, 3, 0xe8, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "eorb", OP_IDX, 2, 0xe8, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "eorb", OP_IDX_1, 3, 0xe8, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "eorb", OP_IDX_2, 4, 0xe8, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "eorb", OP_D_IDX, 2, 0xe8, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "eorb", OP_D_IDX_2, 4, 0xe8, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "etbl", OP_IDX | OP_PAGE2,3, 0x3f, 10, 10, CHG_NZC, cpu6812 },
+
+ { "exg", OP_EXG_MARKER
+ | OP_REG | OP_REG_2, 2, 0xb7, 1, 1, CHG_NONE, cpu6812 },
+
+ { "fdiv", OP_NONE, 1, 0x03, 3, 41, CHG_ZVC, cpu6811},
+ { "fdiv", OP_NONE | OP_PAGE2, 2, 0x11, 12, 12, CHG_ZVC, cpu6812 },
+
+ { "ibeq", OP_IBEQ_MARKER
+ | OP_REG | OP_JUMP_REL, 3, 0x04, 3, 3, CHG_NONE, cpu6812 },
+ { "ibne", OP_IBNE_MARKER
+ | OP_REG | OP_JUMP_REL, 3, 0x04, 3, 3, CHG_NONE, cpu6812 },
+
+ { "idiv", OP_NONE, 1, 0x02, 3, 41, CLR_V_CHG_ZC, cpu6811},
+ { "idiv", OP_NONE | OP_PAGE2, 2, 0x10, 12, 12, CLR_V_CHG_ZC, cpu6812 },
+ { "idivs", OP_NONE | OP_PAGE2, 2, 0x15, 12, 12, CHG_NZVC, cpu6812 },
+
+ { "inc", OP_IX, 2, 0x6c, 6, 6, CHG_NZV, cpu6811 },
+ { "inc", OP_IND16, 3, 0x7c, 6, 6, CHG_NZV, cpu6811 },
+ { "inc", OP_IY | OP_PAGE2, 3, 0x6c, 7, 7, CHG_NZV, cpu6811 },
+ { "inc", OP_IND16, 3, 0x72, 4, 4, CHG_NZV, cpu6812 },
+ { "inc", OP_IDX, 2, 0x62, 3, 3, CHG_NZV, cpu6812 },
+ { "inc", OP_IDX_1, 3, 0x62, 4, 4, CHG_NZV, cpu6812 },
+ { "inc", OP_IDX_2, 4, 0x62, 5, 5, CHG_NZV, cpu6812 },
+ { "inc", OP_D_IDX, 2, 0x62, 6, 6, CHG_NZV, cpu6812 },
+ { "inc", OP_D_IDX_2, 4, 0x62, 6, 6, CHG_NZV, cpu6812 },
+
+ { "inca", OP_NONE, 1, 0x4c, 2, 2, CHG_NZV, cpu6811 },
+ { "inca", OP_NONE, 1, 0x42, 1, 1, CHG_NZV, cpu6812 },
+ { "incb", OP_NONE, 1, 0x5c, 2, 2, CHG_NZV, cpu6811 },
+ { "incb", OP_NONE, 1, 0x52, 1, 1, CHG_NZV, cpu6812 },
+
+ { "ins", OP_NONE, 1, 0x31, 3, 3, CHG_NONE, cpu6811 },
+
+ { "inx", OP_NONE, 1, 0x08, 1, 1, CHG_Z, cpu6811|cpu6812 },
+ { "iny", OP_NONE |OP_PAGE2, 2, 0x08, 4, 4, CHG_Z, cpu6811 },
+ { "iny", OP_NONE, 1, 0x02, 1, 1, CHG_Z, cpu6812 },
+
+ { "jmp", OP_IND16, 3, 0x7e, 3, 3, CHG_NONE, cpu6811 },
+ { "jmp", OP_IX, 2, 0x6e, 3, 3, CHG_NONE, cpu6811 },
+ { "jmp", OP_IY | OP_PAGE2, 3, 0x6e, 4, 4, CHG_NONE, cpu6811 },
+ { "jmp", OP_IND16, 3, 0x06, 3, 3, CHG_NONE, cpu6812 },
+ { "jmp", OP_IDX, 2, 0x05, 3, 3, CHG_NONE, cpu6812 },
+ { "jmp", OP_IDX_1, 3, 0x05, 3, 3, CHG_NONE, cpu6812 },
+ { "jmp", OP_IDX_2, 4, 0x05, 4, 4, CHG_NONE, cpu6812 },
+ { "jmp", OP_D_IDX, 2, 0x05, 6, 6, CHG_NONE, cpu6812 },
+ { "jmp", OP_D_IDX_2, 4, 0x05, 6, 6, CHG_NONE, cpu6812 },
+
+ { "jsr", OP_DIRECT, 2, 0x9d, 5, 5, CHG_NONE, cpu6811 },
+ { "jsr", OP_IND16, 3, 0xbd, 6, 6, CHG_NONE, cpu6811 },
+ { "jsr", OP_IX, 2, 0xad, 6, 6, CHG_NONE, cpu6811 },
+ { "jsr", OP_IY | OP_PAGE2, 3, 0xad, 6, 6, CHG_NONE, cpu6811 },
+ { "jsr", OP_DIRECT, 2, 0x17, 4, 4, CHG_NONE, cpu6812 },
+ { "jsr", OP_IND16, 3, 0x16, 4, 3, CHG_NONE, cpu6812 },
+ { "jsr", OP_IDX, 2, 0x15, 4, 4, CHG_NONE, cpu6812 },
+ { "jsr", OP_IDX_1, 3, 0x15, 4, 4, CHG_NONE, cpu6812 },
+ { "jsr", OP_IDX_2, 4, 0x15, 5, 5, CHG_NONE, cpu6812 },
+ { "jsr", OP_D_IDX, 2, 0x15, 7, 7, CHG_NONE, cpu6812 },
+ { "jsr", OP_D_IDX_2, 4, 0x15, 7, 7, CHG_NONE, cpu6812 },
+
+ { "lbcc", OP_JUMP_REL16 | OP_PAGE2, 4, 0x24, 3, 4, CHG_NONE, cpu6812 },
+ { "lbcs", OP_JUMP_REL16 | OP_PAGE2, 4, 0x25, 3, 4, CHG_NONE, cpu6812 },
+ { "lbeq", OP_JUMP_REL16 | OP_PAGE2, 4, 0x27, 3, 4, CHG_NONE, cpu6812 },
+ { "lbge", OP_JUMP_REL16 | OP_PAGE2, 4, 0x2c, 3, 4, CHG_NONE, cpu6812 },
+ { "lbgt", OP_JUMP_REL16 | OP_PAGE2, 4, 0x2e, 3, 4, CHG_NONE, cpu6812 },
+ { "lbhi", OP_JUMP_REL16 | OP_PAGE2, 4, 0x22, 3, 4, CHG_NONE, cpu6812 },
+ { "lbhs", OP_JUMP_REL16 | OP_PAGE2, 4, 0x24, 3, 4, CHG_NONE, cpu6812 },
+ { "lble", OP_JUMP_REL16 | OP_PAGE2, 4, 0x2f, 3, 4, CHG_NONE, cpu6812 },
+ { "lblo", OP_JUMP_REL16 | OP_PAGE2, 4, 0x25, 3, 4, CHG_NONE, cpu6812 },
+ { "lbls", OP_JUMP_REL16 | OP_PAGE2, 4, 0x23, 3, 4, CHG_NONE, cpu6812 },
+ { "lblt", OP_JUMP_REL16 | OP_PAGE2, 4, 0x2d, 3, 4, CHG_NONE, cpu6812 },
+ { "lbmi", OP_JUMP_REL16 | OP_PAGE2, 4, 0x2b, 3, 4, CHG_NONE, cpu6812 },
+ { "lbne", OP_JUMP_REL16 | OP_PAGE2, 4, 0x26, 3, 4, CHG_NONE, cpu6812 },
+ { "lbpl", OP_JUMP_REL16 | OP_PAGE2, 4, 0x2a, 3, 4, CHG_NONE, cpu6812 },
+ { "lbra", OP_JUMP_REL16 | OP_PAGE2, 4, 0x20, 4, 4, CHG_NONE, cpu6812 },
+ { "lbrn", OP_JUMP_REL16 | OP_PAGE2, 4, 0x21, 3, 3, CHG_NONE, cpu6812 },
+ { "lbvc", OP_JUMP_REL16 | OP_PAGE2, 4, 0x28, 3, 4, CHG_NONE, cpu6812 },
+ { "lbvs", OP_JUMP_REL16 | OP_PAGE2, 4, 0x29, 3, 4, CHG_NONE, cpu6812 },
+
+ { "ldaa", OP_IMM8, 2, 0x86, 1, 1, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldaa", OP_DIRECT, 2, 0x96, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldaa", OP_IND16, 3, 0xb6, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldaa", OP_IX, 2, 0xa6, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "ldaa", OP_IY | OP_PAGE2, 3, 0xa6, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "ldaa", OP_IDX, 2, 0xa6, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldaa", OP_IDX_1, 3, 0xa6, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldaa", OP_IDX_2, 4, 0xa6, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "ldaa", OP_D_IDX, 2, 0xa6, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "ldaa", OP_D_IDX_2, 4, 0xa6, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "ldab", OP_IMM8, 2, 0xc6, 1, 1, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldab", OP_DIRECT, 2, 0xd6, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldab", OP_IND16, 3, 0xf6, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldab", OP_IX, 2, 0xe6, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "ldab", OP_IY | OP_PAGE2, 3, 0xe6, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "ldab", OP_IDX, 2, 0xe6, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldab", OP_IDX_1, 3, 0xe6, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldab", OP_IDX_2, 4, 0xe6, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "ldab", OP_D_IDX, 2, 0xe6, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "ldab", OP_D_IDX_2, 4, 0xe6, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "ldd", OP_IMM16, 3, 0xcc, 2, 2, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldd", OP_DIRECT, 2, 0xdc, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldd", OP_IND16, 3, 0xfc, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldd", OP_IX, 2, 0xec, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "ldd", OP_IY | OP_PAGE2, 3, 0xec, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "ldd", OP_IDX, 2, 0xec, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldd", OP_IDX_1, 3, 0xec, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldd", OP_IDX_2, 4, 0xec, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "ldd", OP_D_IDX, 2, 0xec, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "ldd", OP_D_IDX_2, 4, 0xec, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "lds", OP_IMM16, 3, 0x8e, 3, 3, CLR_V_CHG_NZ, cpu6811 },
+ { "lds", OP_DIRECT, 2, 0x9e, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "lds", OP_IND16, 3, 0xbe, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "lds", OP_IX, 2, 0xae, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "lds", OP_IY | OP_PAGE2, 3, 0xae, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "lds", OP_IMM16, 3, 0xcf, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "lds", OP_DIRECT, 2, 0xdf, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "lds", OP_IND16, 3, 0xff, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "lds", OP_IDX, 2, 0xef, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "lds", OP_IDX_1, 3, 0xef, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "lds", OP_IDX_2, 4, 0xef, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "lds", OP_D_IDX, 2, 0xef, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "lds", OP_D_IDX_2, 4, 0xef, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "ldx", OP_IMM16, 3, 0xce, 2, 2, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldx", OP_DIRECT, 2, 0xde, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldx", OP_IND16, 3, 0xfe, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "ldx", OP_IX, 2, 0xee, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "ldx", OP_IY | OP_PAGE4, 3, 0xee, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "ldx", OP_IDX, 2, 0xee, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldx", OP_IDX_1, 3, 0xee, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldx", OP_IDX_2, 4, 0xee, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "ldx", OP_D_IDX, 2, 0xee, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "ldx", OP_D_IDX_2, 4, 0xee, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "ldy", OP_IMM16 | OP_PAGE2, 4, 0xce, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "ldy", OP_DIRECT | OP_PAGE2, 3, 0xde, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "ldy", OP_IND16 | OP_PAGE2, 4, 0xfe, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "ldy", OP_IX | OP_PAGE3, 3, 0xee, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "ldy", OP_IY | OP_PAGE2, 3, 0xee, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "ldy", OP_IMM16, 3, 0xcd, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "ldy", OP_DIRECT, 2, 0xdd, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldy", OP_IND16, 3, 0xfd, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldy", OP_IDX, 2, 0xed, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldy", OP_IDX_1, 3, 0xed, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "ldy", OP_IDX_2, 4, 0xed, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "ldy", OP_D_IDX, 2, 0xed, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "ldy", OP_D_IDX_2, 4, 0xed, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "leas", OP_IDX, 2, 0x1b, 2, 2, CHG_NONE, cpu6812 },
+ { "leas", OP_IDX_1, 3, 0x1b, 2, 2, CHG_NONE, cpu6812 },
+ { "leas", OP_IDX_2, 4, 0x1b, 2, 2, CHG_NONE, cpu6812 },
+
+ { "leax", OP_IDX, 2, 0x1a, 2, 2, CHG_NONE, cpu6812 },
+ { "leax", OP_IDX_1, 3, 0x1a, 2, 2, CHG_NONE, cpu6812 },
+ { "leax", OP_IDX_2, 4, 0x1a, 2, 2, CHG_NONE, cpu6812 },
+
+ { "leay", OP_IDX, 2, 0x19, 2, 2, CHG_NONE, cpu6812 },
+ { "leay", OP_IDX_1, 3, 0x19, 2, 2, CHG_NONE, cpu6812 },
+ { "leay", OP_IDX_2, 4, 0x19, 2, 2, CHG_NONE, cpu6812 },
+
+ { "lsl", OP_IND16, 3, 0x78, 4, 4, CHG_NZVC, cpu6811|cpu6812 },
+ { "lsl", OP_IX, 2, 0x68, 6, 6, CHG_NZVC, cpu6811 },
+ { "lsl", OP_IY | OP_PAGE2, 3, 0x68, 7, 7, CHG_NZVC, cpu6811 },
+ { "lsl", OP_IDX, 2, 0x68, 3, 3, CHG_NZVC, cpu6812 },
+ { "lsl", OP_IDX_1, 3, 0x68, 4, 4, CHG_NZVC, cpu6812 },
+ { "lsl", OP_IDX_2, 4, 0x68, 5, 5, CHG_NZVC, cpu6812 },
+ { "lsl", OP_D_IDX, 2, 0x68, 6, 6, CHG_NZVC, cpu6812 },
+ { "lsl", OP_D_IDX_2, 4, 0x68, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "lsla", OP_NONE, 1, 0x48, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "lslb", OP_NONE, 1, 0x58, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "lsld", OP_NONE, 1, 0x05, 3, 3, CHG_NZVC, cpu6811 },
+ { "lsld", OP_NONE, 1, 0x59, 1, 1, CHG_NZVC, cpu6812 },
+
+ { "lsr", OP_IND16, 3, 0x74, 4, 4, CLR_N_CHG_ZVC, cpu6811|cpu6812},
+ { "lsr", OP_IX, 2, 0x64, 6, 6, CLR_N_CHG_ZVC, cpu6811 },
+ { "lsr", OP_IY | OP_PAGE2, 3, 0x64, 7, 7, CLR_V_CHG_ZVC, cpu6811 },
+ { "lsr", OP_IDX, 2, 0x64, 3, 3, CLR_N_CHG_ZVC, cpu6812 },
+ { "lsr", OP_IDX_1, 3, 0x64, 4, 4, CLR_N_CHG_ZVC, cpu6812 },
+ { "lsr", OP_IDX_2, 4, 0x64, 5, 5, CLR_N_CHG_ZVC, cpu6812 },
+ { "lsr", OP_D_IDX, 2, 0x64, 6, 6, CLR_N_CHG_ZVC, cpu6812 },
+ { "lsr", OP_D_IDX_2, 4, 0x64, 6, 6, CLR_N_CHG_ZVC, cpu6812 },
+
+ { "lsra", OP_NONE, 1, 0x44, 1, 1, CLR_N_CHG_ZVC, cpu6811|cpu6812},
+ { "lsrb", OP_NONE, 1, 0x54, 1, 1, CLR_N_CHG_ZVC, cpu6811|cpu6812},
+ { "lsrd", OP_NONE, 1, 0x04, 3, 3, CLR_N_CHG_ZVC, cpu6811 },
+ { "lsrd", OP_NONE, 1, 0x49, 1, 1, CLR_N_CHG_ZVC, cpu6812 },
+
+ { "maxa", OP_IDX | OP_PAGE2, 3, 0x18, 4, 4, CHG_NZVC, cpu6812 },
+ { "maxa", OP_IDX_1 | OP_PAGE2, 4, 0x18, 4, 4, CHG_NZVC, cpu6812 },
+ { "maxa", OP_IDX_2 | OP_PAGE2, 5, 0x18, 5, 5, CHG_NZVC, cpu6812 },
+ { "maxa", OP_D_IDX | OP_PAGE2, 3, 0x18, 7, 7, CHG_NZVC, cpu6812 },
+ { "maxa", OP_D_IDX_2 | OP_PAGE2, 5, 0x18, 7, 7, CHG_NZVC, cpu6812 },
+
+ { "maxm", OP_IDX | OP_PAGE2, 3, 0x1c, 4, 4, CHG_NZVC, cpu6812 },
+ { "maxm", OP_IDX_1 | OP_PAGE2, 4, 0x1c, 5, 5, CHG_NZVC, cpu6812 },
+ { "maxm", OP_IDX_2 | OP_PAGE2, 5, 0x1c, 6, 6, CHG_NZVC, cpu6812 },
+ { "maxm", OP_D_IDX | OP_PAGE2, 3, 0x1c, 7, 7, CHG_NZVC, cpu6812 },
+ { "maxm", OP_D_IDX_2 | OP_PAGE2, 5, 0x1c, 7, 7, CHG_NZVC, cpu6812 },
+
+ { "mem", OP_NONE, 1, 0x01, 5, 5, CHG_HNZVC, cpu6812 },
+
+ { "mina", OP_IDX | OP_PAGE2, 3, 0x19, 4, 4, CHG_NZVC, cpu6812 },
+ { "mina", OP_IDX_1 | OP_PAGE2, 4, 0x19, 4, 4, CHG_NZVC, cpu6812 },
+ { "mina", OP_IDX_2 | OP_PAGE2, 5, 0x19, 5, 5, CHG_NZVC, cpu6812 },
+ { "mina", OP_D_IDX | OP_PAGE2, 3, 0x19, 7, 7, CHG_NZVC, cpu6812 },
+ { "mina", OP_D_IDX_2 | OP_PAGE2, 5, 0x19, 7, 7, CHG_NZVC, cpu6812 },
+
+ { "minm", OP_IDX | OP_PAGE2, 3, 0x1d, 4, 4, CHG_NZVC, cpu6812 },
+ { "minm", OP_IDX_1 | OP_PAGE2, 4, 0x1d, 5, 5, CHG_NZVC, cpu6812 },
+ { "minm", OP_IDX_2 | OP_PAGE2, 5, 0x1d, 6, 6, CHG_NZVC, cpu6812 },
+ { "minm", OP_D_IDX | OP_PAGE2, 3, 0x1d, 7, 7, CHG_NZVC, cpu6812 },
+ { "minm", OP_D_IDX_2 | OP_PAGE2, 5, 0x1d, 7, 7, CHG_NZVC, cpu6812 },
+
+ { "movb", OP_IMM8|OP_IND16_p2|OP_PAGE2, 5, 0x0b, 4, 4, CHG_NONE, cpu6812 },
+ { "movb", OP_IMM8|OP_IDX_p2|OP_PAGE2, 4, 0x08, 4, 4, CHG_NONE, cpu6812 },
+ { "movb", OP_IND16|OP_IND16_p2|OP_PAGE2, 6, 0x0c, 6, 6, CHG_NONE, cpu6812 },
+ { "movb", OP_IND16 | OP_IDX_p2 | OP_PAGE2, 5, 0x09, 5, 5, CHG_NONE, cpu6812 },
+ { "movb", OP_IDX | OP_IND16_p2 | OP_PAGE2, 5, 0x0d, 5, 5, CHG_NONE, cpu6812 },
+ { "movb", OP_IDX | OP_IDX_p2 | OP_PAGE2, 4, 0x0a, 5, 5, CHG_NONE, cpu6812 },
+
+ { "movw", OP_IMM16 | OP_IND16_p2 | OP_PAGE2, 6, 0x03, 5, 5, CHG_NONE, cpu6812 },
+ { "movw", OP_IMM16 | OP_IDX_p2 | OP_PAGE2, 5, 0x00, 4, 4, CHG_NONE, cpu6812 },
+ { "movw", OP_IND16 | OP_IND16_p2 | OP_PAGE2, 6, 0x04, 6, 6, CHG_NONE, cpu6812 },
+ { "movw", OP_IND16 | OP_IDX_p2 | OP_PAGE2, 5, 0x01, 5, 5, CHG_NONE, cpu6812 },
+ { "movw", OP_IDX | OP_IND16_p2 | OP_PAGE2, 5, 0x05, 5, 5, CHG_NONE, cpu6812 },
+ { "movw", OP_IDX | OP_IDX_p2 | OP_PAGE2, 4, 0x02, 5, 5, CHG_NONE, cpu6812 },
+
+ { "mul", OP_NONE, 1, 0x3d, 3, 10, CHG_C, cpu6811 },
+ { "mul", OP_NONE, 1, 0x12, 3, 3, CHG_C, cpu6812 },
+
+ { "neg", OP_IND16, 3, 0x70, 4, 4, CHG_NZVC, cpu6811|cpu6812 },
+ { "neg", OP_IX, 2, 0x60, 6, 6, CHG_NZVC, cpu6811 },
+ { "neg", OP_IY | OP_PAGE2, 3, 0x60, 7, 7, CHG_NZVC, cpu6811 },
+ { "neg", OP_IDX, 2, 0x60, 3, 3, CHG_NZVC, cpu6812 },
+ { "neg", OP_IDX_1, 3, 0x60, 4, 4, CHG_NZVC, cpu6812 },
+ { "neg", OP_IDX_2, 4, 0x60, 5, 5, CHG_NZVC, cpu6812 },
+ { "neg", OP_D_IDX, 2, 0x60, 6, 6, CHG_NZVC, cpu6812 },
+ { "neg", OP_D_IDX_2, 4, 0x60, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "nega", OP_NONE, 1, 0x40, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "negb", OP_NONE, 1, 0x50, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "nop", OP_NONE, 1, 0x01, 2, 2, CHG_NONE, cpu6811 },
+ { "nop", OP_NONE, 1, 0xa7, 1, 1, CHG_NONE, cpu6812 },
+
+ { "oraa", OP_IMM8, 2, 0x8a, 1, 1, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "oraa", OP_DIRECT, 2, 0x9a, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "oraa", OP_IND16, 3, 0xba, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "oraa", OP_IX, 2, 0xaa, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "oraa", OP_IY | OP_PAGE2, 3, 0xaa, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "oraa", OP_IDX, 2, 0xaa, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "oraa", OP_IDX_1, 3, 0xaa, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "oraa", OP_IDX_2, 4, 0xaa, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "oraa", OP_D_IDX, 2, 0xaa, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "oraa", OP_D_IDX_2, 4, 0xaa, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "orab", OP_IMM8, 2, 0xca, 1, 1, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "orab", OP_DIRECT, 2, 0xda, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "orab", OP_IND16, 3, 0xfa, 3, 3, CLR_V_CHG_NZ, cpu6811|cpu6812 },
+ { "orab", OP_IX, 2, 0xea, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "orab", OP_IY | OP_PAGE2, 3, 0xea, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "orab", OP_IDX, 2, 0xea, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "orab", OP_IDX_1, 3, 0xea, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "orab", OP_IDX_2, 4, 0xea, 4, 4, CLR_V_CHG_NZ, cpu6812 },
+ { "orab", OP_D_IDX, 2, 0xea, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+ { "orab", OP_D_IDX_2, 4, 0xea, 6, 6, CLR_V_CHG_NZ, cpu6812 },
+
+ { "orcc", OP_IMM8, 2, 0x14, 1, 1, CHG_ALL, cpu6812 },
+
+ { "psha", OP_NONE, 1, 0x36, 2, 2, CHG_NONE, cpu6811|cpu6812 },
+ { "pshb", OP_NONE, 1, 0x37, 2, 2, CHG_NONE, cpu6811|cpu6812 },
+ { "pshc", OP_NONE, 1, 0x39, 2, 2, CHG_NONE, cpu6812 },
+ { "pshd", OP_NONE, 1, 0x3b, 2, 2, CHG_NONE, cpu6812 },
+ { "pshx", OP_NONE, 1, 0x3c, 4, 4, CHG_NONE, cpu6811 },
+ { "pshx", OP_NONE, 1, 0x34, 2, 2, CHG_NONE, cpu6812 },
+ { "pshy", OP_NONE | OP_PAGE2,2, 0x3c, 5, 5, CHG_NONE, cpu6811 },
+ { "pshy", OP_NONE, 1, 0x35, 2, 2, CHG_NONE, cpu6812 },
+
+ { "pula", OP_NONE, 1, 0x32, 3, 3, CHG_NONE, cpu6811|cpu6812 },
+ { "pulb", OP_NONE, 1, 0x33, 3, 3, CHG_NONE, cpu6811|cpu6812 },
+ { "pulc", OP_NONE, 1, 0x38, 3, 3, CHG_NONE, cpu6812 },
+ { "puld", OP_NONE, 1, 0x3a, 3, 3, CHG_NONE, cpu6812 },
+ { "pulx", OP_NONE, 1, 0x38, 5, 5, CHG_NONE, cpu6811 },
+ { "pulx", OP_NONE, 1, 0x30, 3, 3, CHG_NONE, cpu6812 },
+ { "puly", OP_NONE | OP_PAGE2,2, 0x38, 6, 6, CHG_NONE, cpu6811 },
+ { "puly", OP_NONE, 1, 0x31, 3, 3, CHG_NONE, cpu6812 },
+
+ { "rev", OP_NONE | OP_PAGE2, 2, 0x3a, _M, _M, CHG_HNZVC, cpu6812 },
+ { "revw", OP_NONE | OP_PAGE2, 2, 0x3b, _M, _M, CHG_HNZVC, cpu6812 },
+
+ { "rol", OP_IND16, 3, 0x79, 6, 6, CHG_NZVC, cpu6811 },
+ { "rol", OP_IX, 2, 0x69, 6, 6, CHG_NZVC, cpu6811 },
+ { "rol", OP_IY | OP_PAGE2, 3, 0x69, 7, 7, CHG_NZVC, cpu6811 },
+ { "rol", OP_IND16, 3, 0x75, 4, 4, CHG_NZVC, cpu6812 },
+ { "rol", OP_IDX, 2, 0x65, 3, 3, CHG_NZVC, cpu6812 },
+ { "rol", OP_IDX_1, 3, 0x65, 4, 4, CHG_NZVC, cpu6812 },
+ { "rol", OP_IDX_2, 4, 0x65, 5, 5, CHG_NZVC, cpu6812 },
+ { "rol", OP_D_IDX, 2, 0x65, 6, 6, CHG_NZVC, cpu6812 },
+ { "rol", OP_D_IDX_2, 4, 0x65, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "rola", OP_NONE, 1, 0x49, 2, 2, CHG_NZVC, cpu6811 },
+ { "rola", OP_NONE, 1, 0x45, 1, 1, CHG_NZVC, cpu6812 },
+ { "rolb", OP_NONE, 1, 0x59, 2, 2, CHG_NZVC, cpu6811 },
+ { "rolb", OP_NONE, 1, 0x55, 1, 1, CHG_NZVC, cpu6812 },
+
+ { "ror", OP_IND16, 3, 0x76, 4, 4, CHG_NZVC, cpu6811|cpu6812 },
+ { "ror", OP_IX, 2, 0x66, 6, 6, CHG_NZVC, cpu6811 },
+ { "ror", OP_IY | OP_PAGE2, 3, 0x66, 7, 7, CHG_NZVC, cpu6811 },
+ { "ror", OP_IDX, 2, 0x66, 3, 3, CHG_NZVC, cpu6812 },
+ { "ror", OP_IDX_1, 3, 0x66, 4, 4, CHG_NZVC, cpu6812 },
+ { "ror", OP_IDX_2, 4, 0x66, 5, 5, CHG_NZVC, cpu6812 },
+ { "ror", OP_D_IDX, 2, 0x66, 6, 6, CHG_NZVC, cpu6812 },
+ { "ror", OP_D_IDX_2, 4, 0x66, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "rora", OP_NONE, 1, 0x46, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "rorb", OP_NONE, 1, 0x56, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+
+ { "rtc", OP_NONE, 1, 0x0a, 6, 6, CHG_NONE, cpu6812 },
+ { "rti", OP_NONE, 1, 0x3b, 12, 12, CHG_ALL, cpu6811},
+ { "rti", OP_NONE, 1, 0x0b, 8, 10, CHG_ALL, cpu6812},
+ { "rts", OP_NONE, 1, 0x39, 5, 5, CHG_NONE, cpu6811 },
+ { "rts", OP_NONE, 1, 0x3d, 5, 5, CHG_NONE, cpu6812 },
+
+ { "sba", OP_NONE, 1, 0x10, 2, 2, CHG_NZVC, cpu6811 },
+ { "sba", OP_NONE | OP_PAGE2, 2, 0x16, 2, 2, CHG_NZVC, cpu6812 },
+
+ { "sbca", OP_IMM8, 2, 0x82, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "sbca", OP_DIRECT, 2, 0x92, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "sbca", OP_IND16, 3, 0xb2, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "sbca", OP_IX, 2, 0xa2, 4, 4, CHG_NZVC, cpu6811 },
+ { "sbca", OP_IY | OP_PAGE2, 3, 0xa2, 5, 5, CHG_NZVC, cpu6811 },
+ { "sbca", OP_IDX, 2, 0xa2, 3, 3, CHG_NZVC, cpu6812 },
+ { "sbca", OP_IDX_1, 3, 0xa2, 3, 3, CHG_NZVC, cpu6812 },
+ { "sbca", OP_IDX_2, 4, 0xa2, 4, 4, CHG_NZVC, cpu6812 },
+ { "sbca", OP_D_IDX, 2, 0xa2, 6, 6, CHG_NZVC, cpu6812 },
+ { "sbca", OP_D_IDX_2, 4, 0xa2, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "sbcb", OP_IMM8, 2, 0xc2, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "sbcb", OP_DIRECT, 2, 0xd2, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "sbcb", OP_IND16, 3, 0xf2, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "sbcb", OP_IX, 2, 0xe2, 4, 4, CHG_NZVC, cpu6811 },
+ { "sbcb", OP_IY | OP_PAGE2, 3, 0xe2, 5, 5, CHG_NZVC, cpu6811 },
+ { "sbcb", OP_IDX, 2, 0xe2, 3, 3, CHG_NZVC, cpu6812 },
+ { "sbcb", OP_IDX_1, 3, 0xe2, 3, 3, CHG_NZVC, cpu6812 },
+ { "sbcb", OP_IDX_2, 4, 0xe2, 4, 4, CHG_NZVC, cpu6812 },
+ { "sbcb", OP_D_IDX, 2, 0xe2, 6, 6, CHG_NZVC, cpu6812 },
+ { "sbcb", OP_D_IDX_2, 4, 0xe2, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "sec", OP_NONE, 1, 0x0d, 2, 2, SET_C, cpu6811 },
+ { "sei", OP_NONE, 1, 0x0f, 2, 2, SET_I, cpu6811 },
+ { "sev", OP_NONE, 1, 0x0b, 2, 2, SET_V, cpu6811 },
+
+ { "sex", M6812_OP_SEX_MARKER
+ | OP_REG | OP_REG_2, 2, 0xb7, 1, 1, CHG_NONE, cpu6812 },
+
+ { "staa", OP_IND16, 3, 0xb7, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "staa", OP_DIRECT, 2, 0x97, 3, 3, CLR_V_CHG_NZ, cpu6811 },
+ { "staa", OP_IX, 2, 0xa7, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "staa", OP_IY | OP_PAGE2, 3, 0xa7, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "staa", OP_DIRECT, 2, 0x5a, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "staa", OP_IND16, 3, 0x7a, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "staa", OP_IDX, 2, 0x6a, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "staa", OP_IDX_1, 3, 0x6a, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "staa", OP_IDX_2, 4, 0x6a, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "staa", OP_D_IDX, 2, 0x6a, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+ { "staa", OP_D_IDX_2, 4, 0x6a, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+
+ { "stab", OP_IND16, 3, 0xf7, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "stab", OP_DIRECT, 2, 0xd7, 3, 3, CLR_V_CHG_NZ, cpu6811 },
+ { "stab", OP_IX, 2, 0xe7, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "stab", OP_IY | OP_PAGE2, 3, 0xe7, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "stab", OP_DIRECT, 2, 0x5b, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "stab", OP_IND16, 3, 0x7b, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "stab", OP_IDX, 2, 0x6b, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "stab", OP_IDX_1, 3, 0x6b, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "stab", OP_IDX_2, 4, 0x6b, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "stab", OP_D_IDX, 2, 0x6b, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+ { "stab", OP_D_IDX_2, 4, 0x6b, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+
+ { "std", OP_IND16, 3, 0xfd, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "std", OP_DIRECT, 2, 0xdd, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "std", OP_IX, 2, 0xed, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "std", OP_IY | OP_PAGE2, 3, 0xed, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "std", OP_DIRECT, 2, 0x5c, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "std", OP_IND16, 3, 0x7c, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "std", OP_IDX, 2, 0x6c, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "std", OP_IDX_1, 3, 0x6c, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "std", OP_IDX_2, 4, 0x6c, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "std", OP_D_IDX, 2, 0x6c, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+ { "std", OP_D_IDX_2, 4, 0x6c, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+
+ { "stop", OP_NONE, 1, 0xcf, 2, 2, CHG_NONE, cpu6811 },
+ { "stop", OP_NONE | OP_PAGE2,2, 0x3e, 2, 9, CHG_NONE, cpu6812 },
+
+ { "sts", OP_IND16, 3, 0xbf, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "sts", OP_DIRECT, 2, 0x9f, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "sts", OP_IX, 2, 0xaf, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "sts", OP_IY | OP_PAGE2, 3, 0xaf, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "sts", OP_DIRECT, 2, 0x5f, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "sts", OP_IND16, 3, 0x7f, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "sts", OP_IDX, 2, 0x6f, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "sts", OP_IDX_1, 3, 0x6f, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "sts", OP_IDX_2, 4, 0x6f, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "sts", OP_D_IDX, 2, 0x6f, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+ { "sts", OP_D_IDX_2, 4, 0x6f, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+
+ { "stx", OP_IND16, 3, 0xff, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "stx", OP_DIRECT, 2, 0xdf, 4, 4, CLR_V_CHG_NZ, cpu6811 },
+ { "stx", OP_IX, 2, 0xef, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "stx", OP_IY | OP_PAGE4, 3, 0xef, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "stx", OP_DIRECT, 2, 0x5e, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "stx", OP_IND16, 3, 0x7e, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "stx", OP_IDX, 2, 0x6e, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "stx", OP_IDX_1, 3, 0x6e, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "stx", OP_IDX_2, 4, 0x6e, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "stx", OP_D_IDX, 2, 0x6e, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+ { "stx", OP_D_IDX_2, 4, 0x6e, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+
+ { "sty", OP_IND16 | OP_PAGE2, 4, 0xff, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "sty", OP_DIRECT | OP_PAGE2, 3, 0xdf, 5, 5, CLR_V_CHG_NZ, cpu6811 },
+ { "sty", OP_IY | OP_PAGE2, 3, 0xef, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "sty", OP_IX | OP_PAGE3, 3, 0xef, 6, 6, CLR_V_CHG_NZ, cpu6811 },
+ { "sty", OP_DIRECT, 2, 0x5d, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "sty", OP_IND16, 3, 0x7d, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "sty", OP_IDX, 2, 0x6d, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+ { "sty", OP_IDX_1, 3, 0x6d, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "sty", OP_IDX_2, 4, 0x6d, 3, 3, CLR_V_CHG_NZ, cpu6812 },
+ { "sty", OP_D_IDX, 2, 0x6d, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+ { "sty", OP_D_IDX_2, 4, 0x6d, 5, 5, CLR_V_CHG_NZ, cpu6812 },
+
+ { "suba", OP_IMM8, 2, 0x80, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "suba", OP_DIRECT, 2, 0x90, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "suba", OP_IND16, 3, 0xb0, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "suba", OP_IX, 2, 0xa0, 4, 4, CHG_NZVC, cpu6811 },
+ { "suba", OP_IY | OP_PAGE2, 3, 0xa0, 5, 5, CHG_NZVC, cpu6811 },
+ { "suba", OP_IDX, 2, 0xa0, 3, 3, CHG_NZVC, cpu6812 },
+ { "suba", OP_IDX_1, 3, 0xa0, 3, 3, CHG_NZVC, cpu6812 },
+ { "suba", OP_IDX_2, 4, 0xa0, 4, 4, CHG_NZVC, cpu6812 },
+ { "suba", OP_D_IDX, 2, 0xa0, 6, 6, CHG_NZVC, cpu6812 },
+ { "suba", OP_D_IDX_2, 4, 0xa0, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "subb", OP_IMM8, 2, 0xc0, 1, 1, CHG_NZVC, cpu6811|cpu6812 },
+ { "subb", OP_DIRECT, 2, 0xd0, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "subb", OP_IND16, 3, 0xf0, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "subb", OP_IX, 2, 0xe0, 4, 4, CHG_NZVC, cpu6811 },
+ { "subb", OP_IY | OP_PAGE2, 3, 0xe0, 5, 5, CHG_NZVC, cpu6811 },
+ { "subb", OP_IDX, 2, 0xe0, 3, 3, CHG_NZVC, cpu6812 },
+ { "subb", OP_IDX_1, 3, 0xe0, 3, 3, CHG_NZVC, cpu6812 },
+ { "subb", OP_IDX_2, 4, 0xe0, 4, 4, CHG_NZVC, cpu6812 },
+ { "subb", OP_D_IDX, 2, 0xe0, 6, 6, CHG_NZVC, cpu6812 },
+ { "subb", OP_D_IDX_2, 4, 0xe0, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "subd", OP_IMM16, 3, 0x83, 2, 2, CHG_NZVC, cpu6811|cpu6812 },
+ { "subd", OP_DIRECT, 2, 0x93, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "subd", OP_IND16, 3, 0xb3, 3, 3, CHG_NZVC, cpu6811|cpu6812 },
+ { "subd", OP_IX, 2, 0xa3, 6, 6, CHG_NZVC, cpu6811 },
+ { "subd", OP_IY | OP_PAGE2, 3, 0xa3, 7, 7, CHG_NZVC, cpu6811 },
+ { "subd", OP_IDX, 2, 0xa3, 3, 3, CHG_NZVC, cpu6812 },
+ { "subd", OP_IDX_1, 3, 0xa3, 3, 3, CHG_NZVC, cpu6812 },
+ { "subd", OP_IDX_2, 4, 0xa3, 4, 4, CHG_NZVC, cpu6812 },
+ { "subd", OP_D_IDX, 2, 0xa3, 6, 6, CHG_NZVC, cpu6812 },
+ { "subd", OP_D_IDX_2, 4, 0xa3, 6, 6, CHG_NZVC, cpu6812 },
+
+ { "swi", OP_NONE, 1, 0x3f, 9, 9, CHG_NONE, cpu6811|cpu6812 },
+
+ { "tab", OP_NONE, 1, 0x16, 2, 2, CLR_V_CHG_NZ, cpu6811 },
+ { "tab", OP_NONE | OP_PAGE2,2, 0x0e, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+
+ { "tap", OP_NONE, 1, 0x06, 2, 2, CHG_ALL, cpu6811 },
+
+ { "tba", OP_NONE, 1, 0x17, 2, 2, CLR_V_CHG_NZ, cpu6811 },
+ { "tba", OP_NONE | OP_PAGE2,2, 0x0f, 2, 2, CLR_V_CHG_NZ, cpu6812 },
+
+ { "test", OP_NONE, 1, 0x00, 5, _M, CHG_NONE, cpu6811 },
+
+ { "tpa", OP_NONE, 1, 0x07, 2, 2, CHG_NONE, cpu6811 },
+
+ { "tbeq", OP_TBEQ_MARKER
+ | OP_REG | OP_JUMP_REL, 3, 0x04, 3, 3, CHG_NONE, cpu6812 },
+
+ { "tbl", OP_IDX | OP_PAGE2, 3, 0x3d, 8, 8, CHG_NZC, cpu6812 },
+
+ { "tbne", OP_TBNE_MARKER
+ | OP_REG | OP_JUMP_REL, 3, 0x04, 3, 3, CHG_NONE, cpu6812 },
+
+ { "tfr", OP_TFR_MARKER
+ | OP_REG_1 | OP_REG_2, 2, 0xb7, 1, 1, CHG_NONE, cpu6812 },
+
+ { "trap", OP_IMM8 | OP_TRAP_ID, 2, 0x18, 11, 11, SET_I, cpu6812 },
+
+ { "tst", OP_IND16, 3, 0x7d, 6, 6, CLR_VC_CHG_NZ, cpu6811 },
+ { "tst", OP_IX, 2, 0x6d, 6, 6, CLR_VC_CHG_NZ, cpu6811 },
+ { "tst", OP_IY | OP_PAGE2, 3, 0x6d, 7, 7, CLR_VC_CHG_NZ, cpu6811 },
+ { "tst", OP_IND16, 3, 0xf7, 3, 3, CLR_VC_CHG_NZ, cpu6812 },
+ { "tst", OP_IDX, 2, 0xe7, 3, 3, CLR_VC_CHG_NZ, cpu6812 },
+ { "tst", OP_IDX_1, 3, 0xe7, 3, 3, CLR_VC_CHG_NZ, cpu6812 },
+ { "tst", OP_IDX_2, 4, 0xe7, 4, 4, CLR_VC_CHG_NZ, cpu6812 },
+ { "tst", OP_D_IDX, 2, 0xe7, 6, 6, CLR_VC_CHG_NZ, cpu6812 },
+ { "tst", OP_D_IDX_2, 4, 0xe7, 6, 6, CLR_VC_CHG_NZ, cpu6812 },
+
+ { "tsta", OP_NONE, 1, 0x4d, 2, 2, CLR_VC_CHG_NZ, cpu6811 },
+ { "tsta", OP_NONE, 1, 0x97, 1, 1, CLR_VC_CHG_NZ, cpu6812 },
+ { "tstb", OP_NONE, 1, 0x5d, 2, 2, CLR_VC_CHG_NZ, cpu6811 },
+ { "tstb", OP_NONE, 1, 0xd7, 1, 1, CLR_VC_CHG_NZ, cpu6812 },
+
+ { "tsx", OP_NONE, 1, 0x30, 3, 3, CHG_NONE, cpu6811 },
+ { "tsy", OP_NONE | OP_PAGE2,2, 0x30, 4, 4, CHG_NONE, cpu6811 },
+ { "txs", OP_NONE, 1, 0x35, 3, 3, CHG_NONE, cpu6811 },
+ { "tys", OP_NONE | OP_PAGE2,2, 0x35, 4, 4, CHG_NONE, cpu6811 },
+
+ { "wai", OP_NONE, 1, 0x3e, 5, _M, CHG_NONE, cpu6811|cpu6812 },
+
+ { "wav", OP_NONE | OP_PAGE2, 2, 0x3c, 8, _M, SET_Z_CHG_HNVC, cpu6812 },
+
+ { "xgdx", OP_NONE, 1, 0x8f, 3, 3, CHG_NONE, cpu6811 },
+ { "xgdy", OP_NONE | OP_PAGE2,2, 0x8f, 4, 4, CHG_NONE, cpu6811 }
+};
+
+const int m68hc11_num_opcodes = TABLE_SIZE (m68hc11_opcodes);
+
+/* The following alias table provides source compatibility to
+ move from 68HC11 assembly to 68HC12. */
+const struct m68hc12_opcode_alias m68hc12_alias[] = {
+ { "abx", "leax b,x", 2, 0x1a, 0xe5 },
+ { "aby", "leay b,y", 2, 0x19, 0xed },
+ { "clc", "andcc #$fe", 2, 0x10, 0xfe },
+ { "cli", "andcc #$ef", 2, 0x10, 0xef },
+ { "clv", "andcc #$fd", 2, 0x10, 0xfd },
+ { "des", "leas -1,sp", 2, 0x1b, 0x9f },
+ { "ins", "leas 1,sp", 2, 0x1b, 0x81 },
+ { "sec", "orcc #$01", 2, 0x14, 0x01 },
+ { "sei", "orcc #$10", 2, 0x14, 0x10 },
+ { "sev", "orcc #$02", 2, 0x14, 0x02 },
+ { "tap", "tfr a,ccr", 2, 0xb7, 0x02 },
+ { "tpa", "tfr ccr,a", 2, 0xb7, 0x20 },
+ { "tsx", "tfr sp,x", 2, 0xb7, 0x75 },
+ { "tsy", "tfr sp,y", 2, 0xb7, 0x76 },
+ { "txs", "tfr x,sp", 2, 0xb7, 0x57 },
+ { "tys", "tfr y,sp", 2, 0xb7, 0x67 },
+ { "xgdx","exg d,x", 2, 0xb7, 0xc5 },
+ { "xgdy","exg d,y", 2, 0xb7, 0xc6 }
+};
+const int m68hc12_num_alias = TABLE_SIZE (m68hc12_alias);
diff --git a/opcodes/po/POTFILES.in b/opcodes/po/POTFILES.in
index 361d98b..d384c75 100644
--- a/opcodes/po/POTFILES.in
+++ b/opcodes/po/POTFILES.in
@@ -54,6 +54,8 @@ m32r-ibld.c
m32r-opc.c
m32r-opc.h
m32r-opinst.c
+m68hc11-dis.c
+m68hc11-opc.c
m68k-dis.c
m68k-opc.c
m88k-dis.c
diff --git a/opcodes/po/opcodes.pot b/opcodes/po/opcodes.pot
index 8bc5cee..a65c70a 100644
--- a/opcodes/po/opcodes.pot
+++ b/opcodes/po/opcodes.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-05-30 11:33-0700\n"
+"POT-Creation-Date: 2000-06-18 17:38-0700\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"
@@ -69,6 +69,19 @@ msgid ""
"the -M switch:\n"
msgstr ""
+#: avr-dis.c:106
+msgid " unknown register "
+msgstr ""
+
+#: avr-dis.c:168
+msgid "Internal disassembler error"
+msgstr ""
+
+#: avr-dis.c:208
+#, c-format
+msgid "unknown constraint `%c'"
+msgstr ""
+
#: cgen-asm.c:224
msgid "unrecognized keyword/register name"
msgstr ""
@@ -171,12 +184,12 @@ msgstr ""
msgid "Unrecognized field %d while setting vma operand.\n"
msgstr ""
-#: h8300-dis.c:405
+#: h8300-dis.c:382
#, c-format
msgid "Hmmmm %x"
msgstr ""
-#: h8300-dis.c:417
+#: h8300-dis.c:393
#, c-format
msgid "Don't understand %x \n"
msgstr ""