+Thu Oct 3 09:28:25 1996 Jeffrey A Law (law@cygnus.com)
+
+ * configure.in: Break mn10x00 support into separate
+ mn10200 and mn10300 configurations.
+ * config.sub: Likewise.
+
Wed Oct 2 22:27:52 1996 Jeffrey A Law (law@cygnus.com)
* configure.in: Add lots of stuff to noconfigdirs for
cpu-m68k.c
cpu-m88k.c
cpu-mips.c
-cpu-mn10x00.c
+cpu-mn10200.c
+cpu-mn10300.c
cpu-ns32k.c
cpu-powerpc.c
cpu-rs6000.c
elf32-m68k.c
elf32-m88k.c
elf32-mips.c
-elf32-mn10x00.c
+elf32-mn10200.c
+elf32-mn10300.c
elf32-ppc.c
elf32-sh.c
elf32-sparc.c
+Thu Oct 3 09:29:09 1996 Jeffrey A Law (law@cygnus.com)
+
+ * cpu-mn10x00.c, elf32-mn10x00: Removed.
+ * cpu-mn10200.c, cpu-mn10300.c: New files.
+ * elf32-mn10200.c, elf32-mn10300.c: New files.
+ * Makefile.in: Break mn10x00 support into two separate
+ configurations, mn10200 and mn10300.
+ * archures.c, config.bfd, configure.in, elf.c, targets.c: Likewise.
+ * bfd-in2.h, configure: Rebuilt.
+
Thu Oct 3 15:38:19 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
* Makefile.in (do_clean): Move config.log to do_distclean.
cpu-m68k.o \
cpu-m88k.o \
cpu-mips.o \
- cpu-mn10x00.o \
+ cpu-mn10200.o \
+ cpu-mn10300.o \
cpu-ns32k.o \
cpu-powerpc.o \
cpu-rs6000.o \
elf32-m68k.o \
elf32-m88k.o \
elf32-mips.o \
- elf32-mn10x00.o \
+ elf32-mn10200.o \
+ elf32-mn10300.o \
elf32-ppc.o \
elf32-sh.o \
elf32-sparc.o \
elf32-target.h
end-sanitize-m32r:
-elf32-mn10x00.o: elf32-mn10x00.c elf-bfd.h $(INCDIR)/elf/common.h \
+elf32-mn10200.o: elf32-mn10200.c elf-bfd.h $(INCDIR)/elf/common.h \
+ $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
+ elf32-target.h
+
+elf32-mn10300.o: elf32-mn10300.c elf-bfd.h $(INCDIR)/elf/common.h \
$(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
elf32-target.h
/* start-sanitize-m32r */
bfd_arch_m32r, /* Mitsubishi M32R */
/* end-sanitize-m32r */
- bfd_arch_mn10x00, /* Matsushita MN10x00 */
+ bfd_arch_mn10200, /* Matsushita MN10200 */
+ bfd_arch_mn10300, /* Matsushita MN10300 */
bfd_arch_last
};
targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
;;
- mn10x00-*-*)
- targ_defvec=bfd_elf32_mn10x00_vec
+ mn10200-*-*)
+ targ_defvec=bfd_elf32_mn10200_vec
+ ;;
+
+ mn10300-*-*)
+ targ_defvec=bfd_elf32_mn10300_vec
;;
ns32k-pc532-mach* | ns32k-pc532-ux*)
# end-sanitize-m32r
bfd_elf32_m68k_vec) tb="$tb elf32-m68k.o elf32.o $elf" ;;
bfd_elf32_m88k_vec) tb="$tb elf32-m88k.o elf32.o $elf" ;;
- bfd_elf32_mn10x00_vec) tb="$tb elf32-mn10x00.o elf32.o $elf" ;;
+ bfd_elf32_mn10200_vec) tb="$tb elf32-mn10200.o elf32.o $elf" ;;
+ bfd_elf32_mn10300_vec) tb="$tb elf32-mn10300.o elf32.o $elf" ;;
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.o elf32.o $elf" ;;
bfd_elf32_powerpcle_vec) tb="$tb elf32-ppc.o elf32.o $elf" ;;
bfd_elf32_sh_vec) tb="$tb elf32-sh.o elf32.o $elf coff-sh.o" ;;
# end-sanitize-m32r
bfd_elf32_m68k_vec) tb="$tb elf32-m68k.o elf32.o $elf" ;;
bfd_elf32_m88k_vec) tb="$tb elf32-m88k.o elf32.o $elf" ;;
- bfd_elf32_mn10x00_vec) tb="$tb elf32-mn10x00.o elf32.o $elf" ;;
+ bfd_elf32_mn10200_vec) tb="$tb elf32-mn10200.o elf32.o $elf" ;;
+ bfd_elf32_mn10300_vec) tb="$tb elf32-mn10300.o elf32.o $elf" ;;
bfd_elf32_powerpc_vec) tb="$tb elf32-ppc.o elf32.o $elf" ;;
bfd_elf32_powerpcle_vec) tb="$tb elf32-ppc.o elf32.o $elf" ;;
bfd_elf32_sh_vec) tb="$tb elf32-sh.o elf32.o $elf coff-sh.o" ;;
-/* BFD support for the Matsushita 10200 and 10300 processors
+/* BFD support for the Matsushita 10200 processor
Copyright 1996 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
16, /* 16 bits in a word */
24, /* 16 bits in an address */
8, /* 8 bits in a byte */
- bfd_arch_mn10x00,
+ bfd_arch_mn10200,
200,
- "mn10x00",
+ "mn10200",
"mn10200",
2,
true, /* the one and only */
bfd_default_scan ,
0,
};
-
-const bfd_arch_info_type bfd_mn10x00_arch =
- {
- 16,
- 24,
- 8,
- bfd_arch_mn10x00,
- 300,
- "mn10x00",
- "mn10300",
- 2,
- false,
- bfd_default_compatible,
- bfd_default_scan,
- &bfd_mn10200_arch
- };
--- /dev/null
+/* BFD support for the Matsushita 10300 processor
+ Copyright 1996 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_mn10300_arch =
+ {
+ 32, /* 16 bits in a word */
+ 32, /* 16 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_mn10300,
+ 300,
+ "mn10300",
+ "mn10300",
+ 2,
+ true, /* the one and only */
+ bfd_default_compatible,
+ bfd_default_scan ,
+ 0,
+ };
-/* Matsushita 10200 and 10300 specific support for 32-bit ELF
- Copyright (C) 1994, 1995 Free Software Foundation, Inc.
+/* Matsushita 10200 specific support for 32-bit ELF
+ Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
-static void mn10x00_info_to_howto_rel
+static void mn10200_info_to_howto_rel
PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
/* Try to minimize the amount of space occupied by relocation tables
enum reloc_type
{
- R_MN10x00_NONE = 0,
- R_MN10x00_MAX
+ R_MN10200_NONE = 0,
+ R_MN10200_MAX
};
-static reloc_howto_type elf_mn10x00_howto_table[] =
+static reloc_howto_type elf_mn10200_howto_table[] =
{
/* */
- HOWTO (R_MN10x00_NONE,
+ HOWTO (R_MN10200_NONE,
0,
2,
16,
0,
complain_overflow_bitfield,
bfd_elf_generic_reloc,
- "R_MN10x00_NONE",
+ "R_MN10200_NONE",
false,
0,
0,
false),
};
-struct mn10x00_reloc_map
+struct mn10200_reloc_map
{
unsigned char bfd_reloc_val;
unsigned char elf_reloc_val;
};
-static const struct mn10x00_reloc_map mn10x00_reloc_map[] =
+static const struct mn10200_reloc_map mn10200_reloc_map[] =
{
- { BFD_RELOC_NONE, R_MN10x00_NONE, },
+ { BFD_RELOC_NONE, R_MN10200_NONE, },
};
static reloc_howto_type *
unsigned int i;
for (i = 0;
- i < sizeof (mn10x00_reloc_map) / sizeof (struct mn10x00_reloc_map);
+ i < sizeof (mn10200_reloc_map) / sizeof (struct mn10200_reloc_map);
i++)
{
- if (mn10x00_reloc_map[i].bfd_reloc_val == code)
- return &elf_mn10x00_howto_table[mn10x00_reloc_map[i].elf_reloc_val];
+ if (mn10200_reloc_map[i].bfd_reloc_val == code)
+ return &elf_mn10200_howto_table[mn10200_reloc_map[i].elf_reloc_val];
}
return NULL;
/* Set the howto pointer for an V850 ELF reloc. */
static void
-mn10x00_info_to_howto_rel (abfd, cache_ptr, dst)
+mn10200_info_to_howto_rel (abfd, cache_ptr, dst)
bfd *abfd;
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_MN10x00_MAX);
- cache_ptr->howto = &elf_mn10x00_howto_table[r_type];
+ BFD_ASSERT (r_type < (unsigned int) R_MN10200_MAX);
+ cache_ptr->howto = &elf_mn10200_howto_table[r_type];
}
-#define TARGET_LITTLE_SYM bfd_elf32_mn10x00_vec
-#define TARGET_LITTLE_NAME "elf32-mn10x00"
-#define ELF_ARCH bfd_arch_mn10x00
-#define ELF_MACHINE_CODE EM_CYGNUS_MN10x00
+#define TARGET_LITTLE_SYM bfd_elf32_mn10200_vec
+#define TARGET_LITTLE_NAME "elf32-mn10200"
+#define ELF_ARCH bfd_arch_mn10200
+#define ELF_MACHINE_CODE EM_CYGNUS_MN10200
#define ELF_MAXPAGESIZE 0x1000
#define elf_info_to_howto 0
-#define elf_info_to_howto_rel mn10x00_info_to_howto_rel
+#define elf_info_to_howto_rel mn10200_info_to_howto_rel
#include "elf32-target.h"
--- /dev/null
+/* Matsushita 10300 specific support for 32-bit ELF
+ Copyright (C) 1996 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"
+#include "elf-bfd.h"
+
+static reloc_howto_type *bfd_elf32_bfd_reloc_type_lookup
+ PARAMS ((bfd *abfd, bfd_reloc_code_real_type code));
+static void mn10300_info_to_howto_rel
+ PARAMS ((bfd *, arelent *, Elf32_Internal_Rel *));
+
+/* Try to minimize the amount of space occupied by relocation tables
+ on the ROM (not that the ROM won't be swamped by other ELF overhead). */
+#define USE_REL
+
+enum reloc_type
+{
+ R_MN10300_NONE = 0,
+ R_MN10300_MAX
+};
+
+static reloc_howto_type elf_mn10300_howto_table[] =
+{
+ /* */
+ HOWTO (R_MN10300_NONE,
+ 0,
+ 2,
+ 16,
+ false,
+ 0,
+ complain_overflow_bitfield,
+ bfd_elf_generic_reloc,
+ "R_MN10300_NONE",
+ false,
+ 0,
+ 0,
+ false),
+};
+
+struct mn10300_reloc_map
+{
+ unsigned char bfd_reloc_val;
+ unsigned char elf_reloc_val;
+};
+
+static const struct mn10300_reloc_map mn10300_reloc_map[] =
+{
+ { BFD_RELOC_NONE, R_MN10300_NONE, },
+};
+
+static reloc_howto_type *
+bfd_elf32_bfd_reloc_type_lookup (abfd, code)
+ bfd *abfd;
+ bfd_reloc_code_real_type code;
+{
+ unsigned int i;
+
+ for (i = 0;
+ i < sizeof (mn10300_reloc_map) / sizeof (struct mn10300_reloc_map);
+ i++)
+ {
+ if (mn10300_reloc_map[i].bfd_reloc_val == code)
+ return &elf_mn10300_howto_table[mn10300_reloc_map[i].elf_reloc_val];
+ }
+
+ return NULL;
+}
+
+/* Set the howto pointer for an V850 ELF reloc. */
+
+static void
+mn10300_info_to_howto_rel (abfd, cache_ptr, dst)
+ bfd *abfd;
+ 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_MN10300_MAX);
+ cache_ptr->howto = &elf_mn10300_howto_table[r_type];
+}
+
+#define TARGET_LITTLE_SYM bfd_elf32_mn10300_vec
+#define TARGET_LITTLE_NAME "elf32-mn10300"
+#define ELF_ARCH bfd_arch_mn10300
+#define ELF_MACHINE_CODE EM_CYGNUS_MN10300
+#define ELF_MAXPAGESIZE 0x1000
+
+#define elf_info_to_howto 0
+#define elf_info_to_howto_rel mn10300_info_to_howto_rel
+
+#include "elf32-target.h"
/* end-sanitize-m32r */
extern const bfd_target bfd_elf32_m68k_vec;
extern const bfd_target bfd_elf32_m88k_vec;
-extern const bfd_target bfd_elf32_mn10x00_vec;
+extern const bfd_target bfd_elf32_mn10200_vec;
+extern const bfd_target bfd_elf32_mn10300_vec;
extern const bfd_target bfd_elf32_powerpc_vec;
extern const bfd_target bfd_elf32_powerpcle_vec;
extern const bfd_target bfd_elf32_sh_vec;
/* start-sanitize-m32r */
&bfd_elf32_m32r_vec,
/* end-sanitize-m32r */
- &bfd_elf32_mn10x00_vec,
+ &bfd_elf32_mn10200_vec,
+ &bfd_elf32_mn10300_vec,
&bfd_elf32_m68k_vec,
&bfd_elf32_m88k_vec,
&bfd_elf32_sparc_vec,
basic_machine=$basic_machine-unknown
;;
# end-sanitize-m32r
- mn10x00)
+ mn10200)
+ basic_machine=$basic_machine-unknown
+ ;;
+ mn10300)
basic_machine=$basic_machine-unknown
;;
# Object if more than one company name word.
noconfigdirs="$noconfigdirs target-libgloss libio libstdc++ libg++ gdb"
;;
# end-sanitize-m32r
- mn10x00-*-*)
+ mn10200-*-*)
+ noconfigdirs="$noconfigdirs ld gcc gdb target-libiberty target-libgloss target-newlib target-libio target-librx target-libstdc++ target-libg++"
+ ;;
+ mn10300-*-*)
noconfigdirs="$noconfigdirs ld gcc gdb target-libiberty target-libgloss target-newlib target-libio target-librx target-libstdc++ target-libg++"
;;
powerpc-*-aix*)
tc-m88k.h
tc-mips.c
tc-mips.h
-tc-mn10x00.c
-tc-mn10x00.h
+tc-mn10200.c
+tc-mn10200.h
+tc-mn10300.c
+tc-mn10300.h
tc-ns32k.c
tc-ns32k.h
tc-ppc.c
-/* tc-mn10x00.c -- Assembler code for the Matsushita 10x00
+/* tc-mn10300.c -- Assembler code for the Matsushita 10300
Copyright (C) 1996 Free Software Foundation.
#include <ctype.h>
#include "as.h"
#include "subsegs.h"
-#include "opcode/mn10x00.h"
+#include "opcode/mn10300.h"
\f
/* Structure to hold information about predefined registers. */
struct reg_name
\f
/* local functions */
-static unsigned long mn10x00
- PARAMS ((unsigned long insn, const struct mn10x00_operand *operand,
+static unsigned long mn10300
+ PARAMS ((unsigned long insn, const struct mn10300_operand *operand,
offsetT val, char *file, unsigned int line));
static int reg_name_search PARAMS ((const struct reg_name *, int, const char *));
static boolean register_name PARAMS ((expressionS *expressionP));
static boolean system_register_name PARAMS ((expressionS *expressionP));
static boolean cc_name PARAMS ((expressionS *expressionP));
-static bfd_reloc_code_real_type mn10x00_reloc_prefix PARAMS ((void));
+static bfd_reloc_code_real_type mn10300_reloc_prefix PARAMS ((void));
/* fixups */
#define MAX_INSN_FIXUPS (5)
-struct mn10x00_fixup
+struct mn10300_fixup
{
expressionS exp;
int opindex;
bfd_reloc_code_real_type reloc;
};
-struct mn10x00_fixup fixups[MAX_INSN_FIXUPS];
+struct mn10300_fixup fixups[MAX_INSN_FIXUPS];
static int fc;
\f
const char *md_shortopts = "";
};
/* Opcode hash table. */
-static struct hash_control *mn10x00_hash;
+static struct hash_control *mn10300_hash;
/* This table is sorted. Suitable for searching by a binary search. */
static const struct reg_name pre_defined_registers[] =
md_show_usage (stream)
FILE *stream;
{
- fprintf(stream, "MN10x00 options:\n\
+ fprintf(stream, "MN10300 options:\n\
none yet\n");
}
md_begin ()
{
char *prev_name = "";
- register const struct mn10x00_opcode *op;
+ register const struct mn10300_opcode *op;
- mn10x00_hash = hash_new();
+ mn10300_hash = hash_new();
- /* Insert unique names into hash table. The MN10x00 instruction set
+ /* Insert unique names into hash table. The MN10300 instruction set
has many 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. */
- op = mn10x00_opcodes;
+ op = mn10300_opcodes;
while (op->name)
{
if (strcmp (prev_name, op->name))
{
prev_name = (char *) op->name;
- hash_insert (mn10x00_hash, op->name, (char *) op);
+ hash_insert (mn10300_hash, op->name, (char *) op);
}
op++;
}
}
static bfd_reloc_code_real_type
-mn10x00_reloc_prefix()
+mn10300_reloc_prefix()
{
if (strncmp(input_line_pointer, "hi0(", 4) == 0)
{
char *str;
{
char *s;
- struct mn10x00_opcode *opcode;
- struct mn10x00_opcode *next_opcode;
+ struct mn10300_opcode *opcode;
+ struct mn10300_opcode *next_opcode;
const unsigned char *opindex_ptr;
int next_opindex;
unsigned long insn, size;
*s++ = '\0';
/* find the first opcode with the proper name */
- opcode = (struct mn10x00_opcode *)hash_find (mn10x00_hash, str);
+ opcode = (struct mn10300_opcode *)hash_find (mn10300_hash, str);
if (opcode == NULL)
{
as_bad ("Unrecognized opcode: `%s'", str);
insn = opcode->opcode;
for (opindex_ptr = opcode->operands; *opindex_ptr != 0; opindex_ptr++)
{
- const struct mn10x00_operand *operand;
+ const struct mn10300_operand *operand;
char *hold;
expressionS ex;
if (next_opindex == 0)
{
- operand = &mn10x00_operands[*opindex_ptr];
+ operand = &mn10300_operands[*opindex_ptr];
}
else
{
- operand = &mn10x00_operands[next_opindex];
+ operand = &mn10300_operands[next_opindex];
next_opindex = 0;
}
/* lo(), hi(), hi0(), etc... */
- if ((reloc = mn10x00_reloc_prefix()) != BFD_RELOC_UNUSED)
+ if ((reloc = mn10300_reloc_prefix()) != BFD_RELOC_UNUSED)
{
expression(&ex);
break;
}
- insn = mn10x00_insert_operand (insn, operand, ex.X_add_number,
+ insn = mn10300_insert_operand (insn, operand, ex.X_add_number,
(char *) NULL, 0);
}
else
goto error;
case O_register:
- insn = mn10x00_insert_operand (insn, operand, ex.X_add_number,
+ insn = mn10300_insert_operand (insn, operand, ex.X_add_number,
(char *) NULL, 0);
break;
case O_constant:
- insn = mn10x00_insert_operand (insn, operand, ex.X_add_number,
+ insn = mn10300_insert_operand (insn, operand, ex.X_add_number,
(char *) NULL, 0);
break;
md_apply_fix. */
for (i = 0; i < fc; i++)
{
- const struct mn10x00_operand *operand;
+ const struct mn10300_operand *operand;
- operand = &mn10x00_operands[fixups[i].opindex];
+ operand = &mn10300_operands[fixups[i].opindex];
if (fixups[i].reloc != BFD_RELOC_UNUSED)
{
reloc_howto_type *reloc_howto = bfd_reloc_type_lookup (stdoutput, fixups[i].reloc);
{
fix_new_exp (frag_now, f - frag_now->fr_literal, 4,
&fixups[i].exp,
- 1 /* FIXME: MN10x00_OPERAND_RELATIVE ??? */,
+ 1 /* FIXME: MN10300_OPERAND_RELATIVE ??? */,
((bfd_reloc_code_real_type)
(fixups[i].opindex + (int) BFD_RELOC_UNUSED)));
}
if ((int) fixp->fx_r_type >= (int) BFD_RELOC_UNUSED)
{
int opindex;
- const struct mn10x00_operand *operand;
+ const struct mn10300_operand *operand;
char *where;
unsigned long insn;
opindex = (int) fixp->fx_r_type - (int) BFD_RELOC_UNUSED;
- operand = &mn10x00_operands[opindex];
+ operand = &mn10300_operands[opindex];
/* Fetch the instruction, insert the fully resolved operand
value, and stuff the instruction back again.
where = fixp->fx_frag->fr_literal + fixp->fx_where;
insn = bfd_getl32((unsigned char *) where);
- insn = mn10x00_insert_operand (insn, operand, (offsetT) value,
+ insn = mn10300_insert_operand (insn, operand, (offsetT) value,
fixp->fx_file, fixp->fx_line);
bfd_putl32((bfd_vma) insn, (unsigned char *) where);
/* Insert an operand value into an instruction. */
static unsigned long
-mn10x00_insert_operand (insn, operand, val, file, line)
+mn10300_insert_operand (insn, operand, val, file, line)
unsigned long insn;
- const struct mn10x00_operand *operand;
+ const struct mn10300_operand *operand;
offsetT val;
char *file;
unsigned int line;
+++ /dev/null
-/* tc-mn10x00.h -- Header file for tc-mn10x00.c.
- Copyright (C) 1996 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_MN10x00
-
-#ifndef BFD_ASSEMBLER
- #error MN10x00 support requires BFD_ASSEMBLER
-#endif
-
-/* The target BFD architecture. */
-#define TARGET_ARCH bfd_arch_mn10x00
-
-#define TARGET_FORMAT "elf32-mn10x00"
-
-#define MD_APPLY_FIX3
-#define md_operand(x)
-
-/* Permit temporary numeric labels. */
-#define LOCAL_LABELS_FB 1
-
-#define LOCAL_LABEL(name) ((name[0] == '.' \
- && (name[1] == 'L' || name[1] == '.')) \
- || (name[0] == '_' && name[1] == '.' && name[2] == 'L' \
- && name[3] == '_'))
-
-#define FAKE_LABEL_NAME ".L0\001"
-#define DIFF_EXPR_OK /* .-foo gets turned into PC relative relocs */
-
-/* We don't need to handle .word strangely. */
-#define WORKING_DOT_WORD
-
-#define md_number_to_chars number_to_chars_littleendian
*) targ=mips-lit ;;
esac
;;
- mn10x00-*-*) fmt=elf bfd_gas=yes ;;
+ mn10200-*-*) fmt=elf bfd_gas=yes ;;
+ mn10300-*-*) fmt=elf bfd_gas=yes ;;
ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
fmt=coff em=pe
case "$endian" in
*) targ=mips-lit ;;
esac
;;
- mn10x00-*-*) fmt=elf bfd_gas=yes ;;
+ mn10200-*-*) fmt=elf bfd_gas=yes ;;
+ mn10300-*-*) fmt=elf bfd_gas=yes ;;
ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
fmt=coff em=pe
case "$endian" in
-Thu Oct 3 00:14:04 1996 Jeffrey A Law (law@cygnus.com)
+Thu Oct 3 09:57:03 1996 Jeffrey A Law (law@cygnus.com)
- * gas/mn10x00: New directory for Matsushita 10x00 tests.
+ * gas/mn10200, gas/mn10300: New directorys for Matsushita
+ mn10200 and mn10300 tests.
Tue Oct 1 15:38:28 1996 Ian Lance Taylor <ian@cygnus.com>
m68k-coff
macros
mips
-mn10x00
+mn10200
+mn10300
mri
sh
sparc
+Thu Oct 3 10:33:14 1996 Jeffrey A Law (law@cygnus.com)
+
+ * dis-asm.h (print_insn_mn10x00): Delete declaration.
+ (print_insn_mn10200, print_insn_mn10300): Declare.
+
Wed Oct 2 21:24:43 1996 Jeffrey A Law (law@cygnus.com)
* dis-asm.h (print_insn_mn10x00): Declare.
extern int print_insn_shl PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_hppa PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_m88k PARAMS ((bfd_vma, disassemble_info*));
-extern int print_insn_mn10x00 PARAMS ((bfd_vma, disassemble_info*));
+extern int print_insn_mn10200 PARAMS ((bfd_vma, disassemble_info*));
+extern int print_insn_mn10300 PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_ns32k PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_big_powerpc PARAMS ((bfd_vma, disassemble_info*));
extern int print_insn_little_powerpc PARAMS ((bfd_vma, disassemble_info*));
+Thu Oct 3 10:01:40 1996 Jeffrey A Law (law@cygnus.com)
+
+ * common.h: Break mn10x00 support into mn10200 and mn10300.
+
Wed Oct 2 21:26:43 1996 Jeffrey A Law (law@cygnus.com)
* common.h (EM_CYGNUS_MN10x00): Define.
m68k.h
m88k.h
mips.h
-mn10x00.h
+mn10200.h
+mn10300.h
np1.h
ns32k.h
pn.h
+Thu Oct 3 10:33:46 1996 Jeffrey A Law (law@cygnus.com)
+
+ * mn10x00.h: Delete.
+ * mn10200.h, mn10300.h: New files.
+
Wed Oct 2 21:31:26 1996 Jeffrey A Law (law@cygnus.com)
* mn10x00.h: New file.
-/* mn10x00.h -- Header file for Matsushita 10200 and 10300 opcode table
+/* mn10300.h -- Header file for Matsushita 10300 opcode table
Copyright 1996 Free Software Foundation, Inc.
Written by Jeff Law, Cygnus Support
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 MN10x00_H
-#define MN10x00_H
+#ifndef MN10300_H
+#define MN10300_H
-/* The opcode table is an array of struct mn10x00_opcode. */
+/* The opcode table is an array of struct mn10300_opcode. */
-struct mn10x00_opcode
+struct mn10300_opcode
{
/* The opcode name. */
const char *name;
/* The table itself is sorted by major opcode number, and is otherwise
in the order in which the disassembler should consider
instructions. */
-extern const struct mn10x00_opcode mn10x00_opcodes[];
-extern const int mn10x00_num_opcodes;
+extern const struct mn10300_opcode mn10300_opcodes[];
+extern const int mn10300_num_opcodes;
\f
/* The operands table is an array of struct powerpc_operand. */
-struct mn10x00_operand
+struct mn10300_operand
{
/* The number of bits in the operand. */
int bits;
};
/* Elements in the table are retrieved by indexing with values from
- the operands field of the mn10x00_opcodes table. */
+ the operands field of the mn10300_opcodes table. */
-extern const struct mn10x00_operand mn10x00_operands[];
+extern const struct mn10300_operand mn10300_operands[];
-/* Values defined for the flags field of a struct mn10x00_operand. */
+/* Values defined for the flags field of a struct mn10300_operand. */
-#endif /* MN10x00_H */
+#endif /* MN10300_H */
makefile.vms
mips-dis.c
mips-opc.c
+mn10200-dis.c
+mn10200-opc.c
+mn10300-dis.c
+mn10300-opc.c
mpw-config.in
mpw-make.sed
ns32k-dis.c
+Thu Oct 3 10:06:07 1996 Jeffrey A Law (law@cygnus.com)
+
+ * mn10200-opc.c, mn10300-opc.c: New files.
+ * mn10200-dis.c, mn10300-dis.c: New files.
+ * mn10x00-opc.c, mn10x00-dis.c: Deleted.
+ * disassemble.c: Break mn10x00 support into 10200 and 10300
+ support.
+ * configure.in: Likewise.
+ * configure: Rebuilt.
+
Thu Oct 3 15:59:12 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
* Makefile.in (MOSTLYCLEAN): Move config.log to distclean.
-/* Disassemble MN10x00 instructions.
+/* Disassemble MN10200 instructions.
Copyright (C) 1996 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
#include <stdio.h>
#include "ansidecl.h"
-#include "opcode/mn10x00.h"
+#include "opcode/mn10200.h"
#include "dis-asm.h"
static void disassemble PARAMS ((bfd_vma memaddr,
unsigned long insn));
int
-print_insn_mn10x00 (memaddr, info)
+print_insn_mn10200 (memaddr, info)
bfd_vma memaddr;
struct disassemble_info *info;
{
-/* Assemble Matsushita MN10x00 instructions.
+/* Assemble Matsushita MN10200 instructions.
Copyright (C) 1996 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "ansidecl.h"
-#include "opcode/mn10x00.h"
+#include "opcode/mn10200.h"
\f
-const struct mn10x00_operand mn10x00_operands[] = {
+const struct mn10200_operand mn10200_operands[] = {
#define UNUSED 0
{ 0, 0, 0 },
} ;
specific instructions before more general instructions. It is also
sorted by major opcode. */
-const struct mn10x00_opcode mn10x00_opcodes[] = {
+const struct mn10200_opcode mn10200_opcodes[] = {
{ 0, 0, 0, {0}, } } ;
-const int mn10x00_num_opcodes =
- sizeof (mn10x00_opcodes) / sizeof (mn10x00_opcodes[0]);
+const int mn10200_num_opcodes =
+ sizeof (mn10200_opcodes) / sizeof (mn10200_opcodes[0]);
\f
--- /dev/null
+/* Disassemble MN10300 instructions.
+ Copyright (C) 1996 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 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/mn10300.h"
+#include "dis-asm.h"
+
+static void disassemble PARAMS ((bfd_vma memaddr,
+ struct disassemble_info *info,
+ unsigned long insn));
+
+int
+print_insn_mn10300 (memaddr, info)
+ bfd_vma memaddr;
+ struct disassemble_info *info;
+{
+}
--- /dev/null
+/* Assemble Matsushita MN10300 instructions.
+ Copyright (C) 1996 Free Software Foundation, Inc.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 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 "ansidecl.h"
+#include "opcode/mn10300.h"
+
+\f
+const struct mn10300_operand mn10300_operands[] = {
+#define UNUSED 0
+ { 0, 0, 0 },
+} ;
+
+\f
+/* The opcode table.
+
+ The format of the opcode table is:
+
+ NAME OPCODE MASK { OPERANDS }
+
+ NAME is the name of the instruction.
+ OPCODE is the instruction opcode.
+ MASK is the opcode mask; this is used to tell the disassembler
+ which bits in the actual opcode must match OPCODE.
+ OPERANDS is the list of operands.
+
+ The disassembler reads the table in order and prints the first
+ instruction which matches, so this table is sorted to put more
+ specific instructions before more general instructions. It is also
+ sorted by major opcode. */
+
+const struct mn10300_opcode mn10300_opcodes[] = {
+{ 0, 0, 0, {0}, } } ;
+
+const int mn10300_num_opcodes =
+ sizeof (mn10300_opcodes) / sizeof (mn10300_opcodes[0]);
+
+\f