Grrr. The mn10200 and mn10300 are _not_ similar enough to easily support
authorJeff Law <law@redhat.com>
Thu, 3 Oct 1996 16:42:22 +0000 (16:42 +0000)
committerJeff Law <law@redhat.com>
Thu, 3 Oct 1996 16:42:22 +0000 (16:42 +0000)
with a single generic configuration.  So break them up into two different
configurations.  See the individual ChangeLogs for additional detail.

34 files changed:
ChangeLog
bfd/.Sanitize
bfd/ChangeLog
bfd/Makefile.in
bfd/bfd-in2.h
bfd/config.bfd
bfd/configure
bfd/configure.in
bfd/cpu-mn10200.c [moved from bfd/cpu-mn10x00.c with 77% similarity, mode: 0644]
bfd/cpu-mn10300.c [new file with mode: 0644]
bfd/elf32-mn10200.c [moved from bfd/elf32-mn10x00.c with 65% similarity]
bfd/elf32-mn10300.c [new file with mode: 0644]
bfd/targets.c
config.sub
configure.in
gas/config/.Sanitize
gas/config/tc-mn10300.c [moved from gas/config/tc-mn10x00.c with 92% similarity]
gas/config/tc-mn10x00.h [deleted file]
gas/configure
gas/configure.in
gas/testsuite/ChangeLog
gas/testsuite/gas/.Sanitize
include/ChangeLog
include/dis-asm.h
include/elf/ChangeLog
include/opcode/.Sanitize
include/opcode/ChangeLog
include/opcode/mn10300.h [moved from include/opcode/mn10x00.h with 80% similarity]
opcodes/.Sanitize
opcodes/ChangeLog
opcodes/mn10200-dis.c [moved from opcodes/mn10x00-dis.c with 90% similarity, mode: 0644]
opcodes/mn10200-opc.c [moved from opcodes/mn10x00-opc.c with 84% similarity]
opcodes/mn10300-dis.c [new file with mode: 0644]
opcodes/mn10300-opc.c [new file with mode: 0644]

index fdda615..c8eb6a9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+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
index 4186890..14662f1 100644 (file)
@@ -137,7 +137,8 @@ cpu-i960.c
 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
@@ -163,7 +164,8 @@ elf32-i860.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
index ce0335c..6b76ef4 100644 (file)
@@ -1,3 +1,13 @@
+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.
index 4d4b96d..5cbc436 100644 (file)
@@ -131,7 +131,8 @@ ALL_MACHINES = \
        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 \
@@ -219,7 +220,8 @@ BFD32_BACKENDS = \
        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 \
@@ -827,7 +829,11 @@ elf32-m32r.o: elf32-m32r.c elf-bfd.h $(INCDIR)/elf/common.h \
   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
 
index 67dbcb9..252931d 100644 (file)
@@ -1229,7 +1229,8 @@ enum bfd_architecture
   /* 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
   };
 
index a780aca..7c9b4ee 100755 (executable)
@@ -393,8 +393,12 @@ case "${targ}" in
     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*)
index 51a0fc8..d655f1a 100755 (executable)
@@ -1928,7 +1928,8 @@ do
 # 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" ;;
index 8b88d41..467db82 100644 (file)
@@ -456,7 +456,8 @@ do
 # 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" ;;
old mode 100755 (executable)
new mode 100644 (file)
similarity index 77%
rename from bfd/cpu-mn10x00.c
rename to bfd/cpu-mn10200.c
index b8f1c56..2a0a988
@@ -1,4 +1,4 @@
-/* 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.
@@ -26,9 +26,9 @@ const bfd_arch_info_type bfd_mn10200_arch =
     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 */
@@ -36,19 +36,3 @@ const bfd_arch_info_type bfd_mn10200_arch =
     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
-  };
diff --git a/bfd/cpu-mn10300.c b/bfd/cpu-mn10300.c
new file mode 100644 (file)
index 0000000..fc6108d
--- /dev/null
@@ -0,0 +1,38 @@
+/* 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,
+  };
similarity index 65%
rename from bfd/elf32-mn10x00.c
rename to bfd/elf32-mn10200.c
index 15fab94..88c3cbe 100644 (file)
@@ -1,5 +1,5 @@
-/* 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.
 
@@ -24,7 +24,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 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
@@ -33,14 +33,14 @@ static void mn10x00_info_to_howto_rel
 
 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,
@@ -48,22 +48,22 @@ static reloc_howto_type elf_mn10x00_howto_table[] =
         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 *
@@ -74,11 +74,11 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, code)
   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;
@@ -87,7 +87,7 @@ bfd_elf32_bfd_reloc_type_lookup (abfd, code)
 /* 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;
@@ -95,17 +95,17 @@ mn10x00_info_to_howto_rel (abfd, cache_ptr, 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"
diff --git a/bfd/elf32-mn10300.c b/bfd/elf32-mn10300.c
new file mode 100644 (file)
index 0000000..309fa40
--- /dev/null
@@ -0,0 +1,111 @@
+/* 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"
index 5e7a470..964e656 100644 (file)
@@ -503,7 +503,8 @@ extern const bfd_target bfd_elf32_m32r_vec;
 /* 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;
@@ -664,7 +665,8 @@ const bfd_target * const bfd_target_vector[] = {
 /* 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,
index 242215a..2762ff2 100755 (executable)
@@ -186,7 +186,10 @@ case $basic_machine in
                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.
index 9c0a47f..fc53180 100644 (file)
@@ -490,7 +490,10 @@ case "${target}" in
     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*)
index da1092a..97641cb 100644 (file)
@@ -120,8 +120,10 @@ tc-m88k.c
 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
similarity index 92%
rename from gas/config/tc-mn10x00.c
rename to gas/config/tc-mn10300.c
index db3a386..c928a86 100644 (file)
@@ -1,4 +1,4 @@
-/* tc-mn10x00.c -- Assembler code for the Matsushita 10x00
+/* tc-mn10300.c -- Assembler code for the Matsushita 10300
 
    Copyright (C) 1996 Free Software Foundation.
 
@@ -23,7 +23,7 @@
 #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
@@ -54,25 +54,25 @@ const char FLT_CHARS[] = "dD";
 \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 = "";
@@ -88,7 +88,7 @@ const pseudo_typeS md_pseudo_table[] =
 };
 
 /* 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[] =
@@ -345,7 +345,7 @@ void
 md_show_usage (stream)
   FILE *stream;
 {
-  fprintf(stream, "MN10x00 options:\n\
+  fprintf(stream, "MN10300 options:\n\
 none yet\n");
 } 
 
@@ -429,29 +429,29 @@ void
 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)
     {
@@ -479,8 +479,8 @@ md_assemble (str)
      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;
@@ -496,7 +496,7 @@ md_assemble (str)
     *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);
@@ -519,17 +519,17 @@ md_assemble (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;
            }
 
@@ -544,7 +544,7 @@ md_assemble (str)
 
 
          /* lo(), hi(), hi0(), etc... */
-         if ((reloc = mn10x00_reloc_prefix()) != BFD_RELOC_UNUSED)
+         if ((reloc = mn10300_reloc_prefix()) != BFD_RELOC_UNUSED)
            {
              expression(&ex);
 
@@ -575,7 +575,7 @@ md_assemble (str)
                      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
@@ -601,12 +601,12 @@ md_assemble (str)
              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;
 
@@ -673,9 +673,9 @@ md_assemble (str)
      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);
@@ -701,7 +701,7 @@ md_assemble (str)
        {
          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)));
        }
@@ -790,12 +790,12 @@ md_apply_fix3 (fixp, valuep, seg)
   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.
@@ -805,7 +805,7 @@ md_apply_fix3 (fixp, valuep, seg)
       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);
 
@@ -845,9 +845,9 @@ md_apply_fix3 (fixp, valuep, seg)
 /* 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;
diff --git a/gas/config/tc-mn10x00.h b/gas/config/tc-mn10x00.h
deleted file mode 100644 (file)
index c5b2add..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* 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
index b53b1e2..6791818 100755 (executable)
@@ -876,7 +876,8 @@ for this_target in $target $canon_targets ; do
                            *)   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
index 3735f4b..8325e03 100644 (file)
@@ -230,7 +230,8 @@ changequote([,])dnl
                            *)   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
index 397cfd3..02d0a5c 100644 (file)
@@ -1,6 +1,7 @@
-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>
 
index 2dc9ec2..9be0821 100644 (file)
@@ -48,7 +48,8 @@ m68k
 m68k-coff
 macros
 mips
-mn10x00
+mn10200
+mn10300
 mri
 sh
 sparc
index 79b16d4..a63b82c 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 3a05927..e38331b 100644 (file)
@@ -131,7 +131,8 @@ extern int print_insn_sh            PARAMS ((bfd_vma, disassemble_info*));
 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*));
index dac3d6e..3c1c42b 100644 (file)
@@ -1,3 +1,7 @@
+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.
index 81362b3..e9cf078 100644 (file)
@@ -61,7 +61,8 @@ i960.h
 m68k.h
 m88k.h
 mips.h
-mn10x00.h
+mn10200.h
+mn10300.h
 np1.h
 ns32k.h
 pn.h
index 48dd515..56817b3 100644 (file)
@@ -1,3 +1,8 @@
+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.
similarity index 80%
rename from include/opcode/mn10x00.h
rename to include/opcode/mn10300.h
index b09387f..2d780b1 100644 (file)
@@ -1,4 +1,4 @@
-/* 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
 
@@ -18,12 +18,12 @@ 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 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;
@@ -47,13 +47,13 @@ struct mn10x00_opcode
 /* 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;
@@ -66,10 +66,10 @@ struct mn10x00_operand
 };
 
 /* 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 */
index 4c61e37..4aa3000 100644 (file)
@@ -74,6 +74,10 @@ m88k-dis.c
 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
index de99849..b9ee318 100644 (file)
@@ -1,3 +1,13 @@
+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.
old mode 100755 (executable)
new mode 100644 (file)
similarity index 90%
rename from opcodes/mn10x00-dis.c
rename to opcodes/mn10200-dis.c
index cd068e3..5aa0cb8
@@ -1,4 +1,4 @@
-/* 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
@@ -19,7 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 #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,
@@ -27,7 +27,7 @@ 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;
 {
similarity index 84%
rename from opcodes/mn10x00-opc.c
rename to opcodes/mn10200-opc.c
index 278756b..7b4abfa 100644 (file)
@@ -1,4 +1,4 @@
-/* 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
@@ -16,10 +16,10 @@ 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/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 }, 
 } ; 
@@ -42,10 +42,10 @@ const struct mn10x00_operand mn10x00_operands[] = {
    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
diff --git a/opcodes/mn10300-dis.c b/opcodes/mn10300-dis.c
new file mode 100644 (file)
index 0000000..b81d493
--- /dev/null
@@ -0,0 +1,34 @@
+/* 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;
+{
+}
diff --git a/opcodes/mn10300-opc.c b/opcodes/mn10300-opc.c
new file mode 100644 (file)
index 0000000..800a45b
--- /dev/null
@@ -0,0 +1,51 @@
+/* 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