Add MIPS V and MIPS 64 machine numbers
authorNick Clifton <nickc@redhat.com>
Sat, 2 Dec 2000 00:55:22 +0000 (00:55 +0000)
committerNick Clifton <nickc@redhat.com>
Sat, 2 Dec 2000 00:55:22 +0000 (00:55 +0000)
21 files changed:
bfd/ChangeLog
bfd/aoutx.h
bfd/archures.c
bfd/bfd-in2.h
bfd/cpu-mips.c
bfd/elf32-mips.c
bfd/po/bfd.pot
binutils/ChangeLog
binutils/readelf.c
gas/ChangeLog
gas/config/tc-mips.c
gas/doc/as.texinfo
gas/doc/c-mips.texi
include/elf/ChangeLog
include/elf/mips.h
include/opcode/ChangeLog
include/opcode/mips.h
opcodes/ChangeLog
opcodes/mips-dis.c
opcodes/mips-opc.c
opcodes/po/opcodes.pot

index 4c5b4cf191ceba7136acb629a5e4b88d7db81557..f14ff61eb6d3e51118c8d5224950afeeee2d1b69 100644 (file)
         (_bfd_mips_elf_print_private_bfd_data): Print ISA name for
         MIPS32.
 
+        * aoutx.h (NAME(aout,machine_type)): Add cases for
+        bfd_mach_mips5 and bfd_mach_mips64.
+        * archures.c (bfd_mach_mips5, bfd_mach_mips64): New constants.
+        * bfd-in2.h (bfd_mach_mips5, bfd_mach_mips64): Likewise.
+        * cpu_mips.c (I_mips5, I_mips64): New definitions.
+        (arch_info_struct): Add entries for bfd_mach_mips5 and
+        bfd_mach_mips64.
+        * elf32-mips.c (elf_mips_isa, elf_mips_mach,
+        _bfd_mips_elf_print_private_bfd_data): Add cases for
+        E_MIPS_ARCH_5 and E_MIPS_ARCH_64.
+        (_bfd_mips_elf_final_write_processing): Add cases for
+        bfd_mach_mips5 and bfd_mach_mips64.
+
 2000-12-01      Joel Sherrill <joel@OARcorp.com>
 
        * config.bfd (arm-*-rtems*, a29k-*rtems*): New targets.
index 388e8d7256672437bd61b8254f4cea5bdc4b4d1d..246742f8a3f11e24bb4b669c44ee3b20b3cbf295 100644 (file)
@@ -778,6 +778,8 @@ NAME(aout,machine_type) (arch, machine, unknown)
     case bfd_mach_mips16:
     case bfd_mach_mips32:
     case bfd_mach_mips32_4k:
+    case bfd_mach_mips5:
+    case bfd_mach_mips64:
       /* FIXME: These should be MIPS3, MIPS4, MIPS16, MIPS32, etc.  */
       arch_flags = M_MIPS2;
       break;
index 5bb4ff7b1db57df84b4dfed84d3845516956bed9..1361be95509b7923c6aeb573c97a606233813603 100644 (file)
@@ -133,6 +133,8 @@ DESCRIPTION
 .#define bfd_mach_mips16               16
 .#define bfd_mach_mips32                32
 .#define bfd_mach_mips32_4k             3204113 {* 32, 04, octal 'K' *}
+.#define bfd_mach_mips5                 5
+.#define bfd_mach_mips64                64
 .  bfd_arch_i386,      {* Intel 386 *}
 .#define bfd_mach_i386_i386 0
 .#define bfd_mach_i386_i8086 1
index 0280f12a9048da2a5bc2270281b9c57727800426..021e7629cfe78eaed885102ef9c8c3d5a5364969 100644 (file)
@@ -1401,6 +1401,8 @@ enum bfd_architecture
 #define bfd_mach_mips16                16
 #define bfd_mach_mips32                32
 #define bfd_mach_mips32_4k             3204113 /* 32, 04, octal 'K' */
+#define bfd_mach_mips5                 5
+#define bfd_mach_mips64                64
   bfd_arch_i386,      /* Intel 386 */
 #define bfd_mach_i386_i386 0
 #define bfd_mach_i386_i8086 1
index 0ac23cb644fd2d27207b4ca5b63d1ac3e38df822..e2417a13f8d7afc00e735d3c6ecce08a57c1734a 100644 (file)
@@ -57,29 +57,33 @@ enum
   I_mips16,
   I_mips32,
   I_mips32_4k,
+  I_mips5,
+  I_mips64,
 };
 
 #define NN(index) (&arch_info_struct[(index) + 1])
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (32, 32, bfd_mach_mips3000, "mips:3000", false, NN(I_mips3000)),
-  N (32, 32, bfd_mach_mips3900, "mips:3900", false, NN(I_mips3900)),
-  N (64, 64, bfd_mach_mips4000, "mips:4000", false, NN(I_mips4000)),
-  N (64, 64, bfd_mach_mips4010, "mips:4010", false, NN(I_mips4010)),
-  N (64, 64, bfd_mach_mips4100, "mips:4100", false, NN(I_mips4100)),
-  N (64, 64, bfd_mach_mips4111, "mips:4111", false, NN(I_mips4111)),
-  N (64, 64, bfd_mach_mips4300, "mips:4300", false, NN(I_mips4300)),
-  N (64, 64, bfd_mach_mips4400, "mips:4400", false, NN(I_mips4400)),
-  N (64, 64, bfd_mach_mips4600, "mips:4600", false, NN(I_mips4600)),
-  N (64, 64, bfd_mach_mips4650, "mips:4650", false, NN(I_mips4650)),
-  N (64, 64, bfd_mach_mips5000, "mips:5000", false, NN(I_mips5000)),
-  N (32, 32, bfd_mach_mips6000, "mips:6000", false, NN(I_mips6000)),
-  N (64, 64, bfd_mach_mips8000, "mips:8000", false, NN(I_mips8000)),
-  N (64, 64, bfd_mach_mips10000,"mips:10000",false, NN(I_mips10000)),
-  N (64, 64, bfd_mach_mips16,   "mips:16",   false, NN(I_mips16)),
-  N (32, 32, bfd_mach_mips32,   "mips:mips32", false, NN(I_mips32)),
-  N (32, 32, bfd_mach_mips32_4k,"mips:mips32-4k", false, 0),
+  N (32, 32, bfd_mach_mips3000, "mips:3000",      false, NN(I_mips3000)),
+  N (32, 32, bfd_mach_mips3900, "mips:3900",      false, NN(I_mips3900)),
+  N (64, 64, bfd_mach_mips4000, "mips:4000",      false, NN(I_mips4000)),
+  N (64, 64, bfd_mach_mips4010, "mips:4010",      false, NN(I_mips4010)),
+  N (64, 64, bfd_mach_mips4100, "mips:4100",      false, NN(I_mips4100)),
+  N (64, 64, bfd_mach_mips4111, "mips:4111",      false, NN(I_mips4111)),
+  N (64, 64, bfd_mach_mips4300, "mips:4300",      false, NN(I_mips4300)),
+  N (64, 64, bfd_mach_mips4400, "mips:4400",      false, NN(I_mips4400)),
+  N (64, 64, bfd_mach_mips4600, "mips:4600",      false, NN(I_mips4600)),
+  N (64, 64, bfd_mach_mips4650, "mips:4650",      false, NN(I_mips4650)),
+  N (64, 64, bfd_mach_mips5000, "mips:5000",      false, NN(I_mips5000)),
+  N (32, 32, bfd_mach_mips6000, "mips:6000",      false, NN(I_mips6000)),
+  N (64, 64, bfd_mach_mips8000, "mips:8000",      false, NN(I_mips8000)),
+  N (64, 64, bfd_mach_mips10000,"mips:10000",     false, NN(I_mips10000)),
+  N (64, 64, bfd_mach_mips16,   "mips:16",        false, NN(I_mips16)),
+  N (32, 32, bfd_mach_mips32,   "mips:mips32",    false, NN(I_mips32)),
+  N (32, 32, bfd_mach_mips32_4k,"mips:mips32-4k", false, NN(I_mips32_4k)),
+  N (64, 64, bfd_mach_mips5,    "mips:mips5",     false, NN(I_mips5)),
+  N (64, 64, bfd_mach_mips64,   "mips:mips64",    false, 0),
 };
 
 /* The default architecture is mips:3000, but with a machine number of
index b58eddf5c9c86260024ab6bc93fe46ebbf93bc6f..4b0b641de31e6abafe05e38f298cf2e4df9e7e3f 100644 (file)
@@ -1810,8 +1810,12 @@ elf_mips_isa (flags)
       return 3;
     case E_MIPS_ARCH_4:
       return 4;
+    case E_MIPS_ARCH_5:
+      return 5;
     case E_MIPS_ARCH_32:
       return 32;
+    case E_MIPS_ARCH_64:
+      return 64;
     }
   return 4;
 }
@@ -1862,9 +1866,17 @@ elf_mips_mach (flags)
          return bfd_mach_mips8000;
          break;
 
+       case E_MIPS_ARCH_5:
+         return bfd_mach_mips5;
+         break;
+
        case E_MIPS_ARCH_32:
          return bfd_mach_mips32;
          break;
+
+       case E_MIPS_ARCH_64:
+         return bfd_mach_mips64;
+         break;
        }
     }
 
@@ -2349,6 +2361,14 @@ _bfd_mips_elf_final_write_processing (abfd, linker)
     case bfd_mach_mips32_4k:
       val = E_MIPS_ARCH_32 | E_MIPS_MACH_MIPS32_4K;
       break;
+
+    case bfd_mach_mips5:
+      val = E_MIPS_ARCH_5;
+      break;
+
+    case bfd_mach_mips64:
+      val = E_MIPS_ARCH_64;
+      break;
     }
 
   elf_elfheader (abfd)->e_flags &= ~(EF_MIPS_ARCH | EF_MIPS_MACH);
@@ -2656,8 +2676,12 @@ _bfd_mips_elf_print_private_bfd_data (abfd, ptr)
     fprintf (file, _(" [mips3]"));
   else if ((elf_elfheader (abfd)->e_flags & EF_MIPS_ARCH) == E_MIPS_ARCH_4)
     fprintf (file, _(" [mips4]"));
+  else if ((elf_elfheader (abfd)->e_flags & EF_MIPS_ARCH) == E_MIPS_ARCH_5)
+    fprintf (file, _ (" [mips5]"));
   else if ((elf_elfheader (abfd)->e_flags & EF_MIPS_ARCH) == E_MIPS_ARCH_32)
     fprintf (file, _ (" [mips32]"));
+  else if ((elf_elfheader (abfd)->e_flags & EF_MIPS_ARCH) == E_MIPS_ARCH_64)
+    fprintf (file, _ (" [mips64]"));
   else
     fprintf (file, _(" [unknown ISA]"));
 
index 2534d9719f95ea4ceefb8c556ffdc2e22a384ff7..0ea2b88365d0a3757b764840c5e1aa516af7fa67 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-12-01 13:12-0800\n"
+"POT-Creation-Date: 2000-12-01 16:44-0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -34,22 +34,22 @@ msgstr ""
 msgid "%s: Bad relocation record imported: %d"
 msgstr ""
 
-#: aoutx.h:1256 aoutx.h:1670
+#: aoutx.h:1258 aoutx.h:1672
 #, c-format
 msgid "%s: can not represent section `%s' in a.out object file format"
 msgstr ""
 
-#: aoutx.h:1640
+#: aoutx.h:1642
 #, c-format
 msgid ""
 "%s: can not represent section for symbol `%s' in a.out object file format"
 msgstr ""
 
-#: aoutx.h:1642
+#: aoutx.h:1644
 msgid "*unknown*"
 msgstr ""
 
-#: aoutx.h:3681
+#: aoutx.h:3683
 #, c-format
 msgid "%s: relocateable link from %s to %s not supported"
 msgstr ""
@@ -660,7 +660,7 @@ msgstr ""
 
 #. Ignore init flag - it may not be set, despite the flags field
 #. containing valid data.
-#: elf32-arm.h:2195 elf32-cris.c:615 elf32-m68k.c:430 elf32-mips.c:2632
+#: elf32-arm.h:2195 elf32-cris.c:615 elf32-m68k.c:430 elf32-mips.c:2652
 #, c-format
 msgid "private flags = %lx:"
 msgstr ""
@@ -854,124 +854,132 @@ msgstr ""
 msgid "Linking mips16 objects into %s format is not supported"
 msgstr ""
 
-#: elf32-mips.c:2519
+#: elf32-mips.c:2539
 #, c-format
 msgid "%s: linking PIC files with non-PIC files"
 msgstr ""
 
-#: elf32-mips.c:2529
+#: elf32-mips.c:2549
 #, c-format
 msgid "%s: linking abicalls files with non-abicalls files"
 msgstr ""
 
-#: elf32-mips.c:2558
+#: elf32-mips.c:2578
 #, c-format
 msgid "%s: ISA mismatch (-mips%d) with previous modules (-mips%d)"
 msgstr ""
 
-#: elf32-mips.c:2567
+#: elf32-mips.c:2587
 #, c-format
 msgid "%s: ISA mismatch (%d) with previous modules (%d)"
 msgstr ""
 
-#: elf32-mips.c:2590
+#: elf32-mips.c:2610
 #, c-format
 msgid "%s: ABI mismatch: linking %s module with previous %s modules"
 msgstr ""
 
-#: elf32-mips.c:2604 elf32-ppc.c:1481 elf64-sparc.c:2974
+#: elf32-mips.c:2624 elf32-ppc.c:1481 elf64-sparc.c:2974
 #, c-format
 msgid "%s: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
 msgstr ""
 
-#: elf32-mips.c:2635
+#: elf32-mips.c:2655
 msgid " [abi=O32]"
 msgstr ""
 
-#: elf32-mips.c:2637
+#: elf32-mips.c:2657
 msgid " [abi=O64]"
 msgstr ""
 
-#: elf32-mips.c:2639
+#: elf32-mips.c:2659
 msgid " [abi=EABI32]"
 msgstr ""
 
-#: elf32-mips.c:2641
+#: elf32-mips.c:2661
 msgid " [abi=EABI64]"
 msgstr ""
 
-#: elf32-mips.c:2643
+#: elf32-mips.c:2663
 msgid " [abi unknown]"
 msgstr ""
 
-#: elf32-mips.c:2645
+#: elf32-mips.c:2665
 msgid " [abi=N32]"
 msgstr ""
 
-#: elf32-mips.c:2647
+#: elf32-mips.c:2667
 msgid " [abi=64]"
 msgstr ""
 
-#: elf32-mips.c:2649
+#: elf32-mips.c:2669
 msgid " [no abi set]"
 msgstr ""
 
-#: elf32-mips.c:2652
+#: elf32-mips.c:2672
 msgid " [mips1]"
 msgstr ""
 
-#: elf32-mips.c:2654
+#: elf32-mips.c:2674
 msgid " [mips2]"
 msgstr ""
 
-#: elf32-mips.c:2656
+#: elf32-mips.c:2676
 msgid " [mips3]"
 msgstr ""
 
-#: elf32-mips.c:2658
+#: elf32-mips.c:2678
 msgid " [mips4]"
 msgstr ""
 
-#: elf32-mips.c:2660
+#: elf32-mips.c:2680
+msgid " [mips5]"
+msgstr ""
+
+#: elf32-mips.c:2682
 msgid " [mips32]"
 msgstr ""
 
-#: elf32-mips.c:2662
+#: elf32-mips.c:2684
+msgid " [mips64]"
+msgstr ""
+
+#: elf32-mips.c:2686
 msgid " [unknown ISA]"
 msgstr ""
 
-#: elf32-mips.c:2665
+#: elf32-mips.c:2689
 msgid " [32bitmode]"
 msgstr ""
 
-#: elf32-mips.c:2667
+#: elf32-mips.c:2691
 msgid " [not 32bitmode]"
 msgstr ""
 
-#: elf32-mips.c:4316
+#: elf32-mips.c:4340
 msgid "static procedure (no name)"
 msgstr ""
 
-#: elf32-mips.c:4931 elf64-alpha.c:4378
+#: elf32-mips.c:4955 elf64-alpha.c:4378
 #, c-format
 msgid "%s: illegal section name `%s'"
 msgstr ""
 
-#: elf32-mips.c:5495
+#: elf32-mips.c:5519
 msgid "not enough GOT space for local GOT entries"
 msgstr ""
 
-#: elf32-mips.c:6612
+#: elf32-mips.c:6636
 #, c-format
 msgid "%s: %s+0x%lx: jump to stub routine which is not jal"
 msgstr ""
 
-#: elf32-mips.c:7599
+#: elf32-mips.c:7623
 #, c-format
 msgid "Malformed reloc detected for section %s"
 msgstr ""
 
-#: elf32-mips.c:7676
+#: elf32-mips.c:7700
 #, c-format
 msgid "%s: CALL16 reloc at 0x%lx not against global symbol"
 msgstr ""
index c12ee4c9b42d7f5f8fdc495c7251933b74a51b3b..d104f4f17b1f9cc0f4fd16a477eaf36f34910ea0 100644 (file)
@@ -4,6 +4,9 @@
         EF_MIPS_ARCH.  Replace use of E_MIPS_MACH_MIPS32 with
         E_MIPS_MACH_MIPS32_4K and adjust printed CPU name similarly.
 
+        * readelf.c (get_machine_flags): Add cases for E_MIPS_ARCH_5,
+        and E_MIPS_ARCH_64.
+
 2000-11-30  Richard Earnshaw  <rearnsha@arm.com>
 
        * readelf.c (frame_display_row): Output 's' for DW_CFA_same_value.
index a9c5cbf8a253c525f711f9de3e806112e3c0e03b..03dce77f983691dad0ba39f86cc7204b34e8f919 100644 (file)
@@ -1471,9 +1471,15 @@ get_machine_flags (e_flags, e_machine)
          if ((e_flags & EF_MIPS_ARCH) == E_MIPS_ARCH_4)
            strcat (buf, ", mips4");
 
+         if ((e_flags & EF_MIPS_ARCH) == E_MIPS_ARCH_5)
+           strcat (buf, ", mips5");
+
          if ((e_flags & EF_MIPS_ARCH) == E_MIPS_ARCH_32)
            strcat (buf, ", mips32");
 
+         if ((e_flags & EF_MIPS_ARCH) == E_MIPS_ARCH_64)
+           strcat (buf, ", mips64");
+
          switch ((e_flags & EF_MIPS_MACH))
            {
            case E_MIPS_MACH_3900: strcat (buf, ", 3900"); break;
index 8de2b356325bf91bc70843f48f1eea4c50919c82..bd23387b3323a767b0d29187a717b98c8c42d861 100644 (file)
         4Kp entries with a single mips32-4k entry.  Note that you can
         use ".set mips32".
 
+        * tc-mips.c (ISA_HAS_64BIT_REGS): Add checks for ISA_MIPS5 and
+        ISA_MIPS64.
+        (md_longopts, OPTION_MIPS5, OPTION_MIPS64): Add options for
+        -mips5 and -mips64.
+        (md_parse_option): Add cases for OPTION_MIPS5 and
+        OPTION_MIPS64.
+        (md_show_usage): Mention -mips5 and -mips64 arguments.
+        (s_mipsset): Add cases for MIPS5 and MIPS64.
+        (mips_cpu_info_table): Add entries for MIPS5 and MIPS64 ISAs
+        and pseudo-CPUs.
+        * doc/as.texinfo: Mention -mips5 and -mips64 options
+        and their meanings.
+        * doc/c-mips.texi: Likewise.  Also update introduction
+        and ".set" usage information.
+
 2000-12-01      Joel Sherrill <joel@OARcorp.com>
 
        * configure.in (arm-*-rtems*, a29k-*rtems*, h8300-*-rtems*):
index fb8c5e6ede386dd6ed76387c02a06ed10748fa7f..f4f11305b94a1b71817cf9945cc1c6bb35c4a115 100644 (file)
@@ -238,6 +238,8 @@ static int mips_gp32 = 0;
 #define ISA_HAS_64BIT_REGS(ISA) (    \
    (ISA) == ISA_MIPS3                \
    || (ISA) == ISA_MIPS4             \
+   || (ISA) == ISA_MIPS5             \
+   || (ISA) == ISA_MIPS32            \
    )
 
 /* Whether the processor uses hardware interlocks to protect
@@ -8884,6 +8886,10 @@ struct option md_longopts[] =
   {"no-construct-floats", no_argument, NULL, OPTION_NO_CONSTRUCT_FLOATS},
 #define OPTION_MIPS32 (OPTION_MD_BASE + 28)
   {"mips32", no_argument, NULL, OPTION_MIPS32},
+#define OPTION_MIPS5 (OPTION_MD_BASE + 29)
+  {"mips5", no_argument, NULL, OPTION_MIPS5},
+#define OPTION_MIPS64 (OPTION_MD_BASE + 30)
+  {"mips64", no_argument, NULL, OPTION_MIPS64},
 #ifdef OBJ_ELF
 #define OPTION_ELF_BASE    (OPTION_MD_BASE + 35)
 #define OPTION_CALL_SHARED (OPTION_ELF_BASE + 0)
@@ -8969,10 +8975,18 @@ md_parse_option (c, arg)
       mips_opts.isa = ISA_MIPS4;
       break;
 
+    case OPTION_MIPS5:
+      mips_opts.isa = ISA_MIPS5;
+      break;
+
     case OPTION_MIPS32:
       mips_opts.isa = ISA_MIPS32;
       break;
 
+    case OPTION_MIPS64:
+      mips_opts.isa = ISA_MIPS64;
+      break;
+
     case OPTION_MCPU:
       {
        /* Identify the processor type.  */
@@ -9206,7 +9220,9 @@ MIPS options:\n\
 -mips2                 generate MIPS ISA II instructions\n\
 -mips3                 generate MIPS ISA III instructions\n\
 -mips4                 generate MIPS ISA IV instructions\n\
+-mips5                  generate MIPS ISA V instructions\n\
 -mips32                 generate MIPS32 ISA instructions\n\
+-mips64                 generate MIPS64 ISA instructions\n\
 -mcpu=CPU              generate code for CPU, where CPU is one of:\n"));
 
   first = 1;
@@ -10234,15 +10250,15 @@ s_mipsset (x)
       isa = atoi (name + 4);
       switch (isa)
       {
-      case  0: mips_opts.isa = file_mips_isa; break;
-      case  1: mips_opts.isa = ISA_MIPS1;     break;
-      case  2: mips_opts.isa = ISA_MIPS2;     break;
-      case  3: mips_opts.isa = ISA_MIPS3;     break;
-      case  4: mips_opts.isa = ISA_MIPS4;     break;
-      case 32: mips_opts.isa = ISA_MIPS32;    break;
-      default:
-        as_bad (_("unknown ISA level"));
-        break;
+      case  0: mips_opts.isa = file_mips_isa;   break;
+      case  1: mips_opts.isa = ISA_MIPS1;       break;
+      case  2: mips_opts.isa = ISA_MIPS2;       break;
+      case  3: mips_opts.isa = ISA_MIPS3;       break;
+      case  5: mips_opts.isa = ISA_MIPS5;       break;
+      case  4: mips_opts.isa = ISA_MIPS4;       break;
+      case 32: mips_opts.isa = ISA_MIPS32;      break;
+      case 64: mips_opts.isa = ISA_MIPS64;      break;
+      default: as_bad (_("unknown ISA level")); break;
       }
     }
   else if (strcmp (name, "autoextend") == 0)
@@ -11914,12 +11930,23 @@ static const struct mips_cpu_info mips_cpu_info_table[] =
   /* MIPS4 ISA */
   { "MIPS4",          1,      ISA_MIPS4,      CPU_R8000, },
 
+  /* MIPS5 ISA */
+  { "MIPS5",          1,      ISA_MIPS5,      CPU_MIPS5, },
+  { "Generic-MIPS5",  0,      ISA_MIPS5,      CPU_MIPS5, },
+
   /* MIPS32 ISA */
   { "MIPS32",         1,      ISA_MIPS32,     CPU_MIPS32, },
   { "Generic-MIPS32", 0,      ISA_MIPS32,     CPU_MIPS32, },
 
+#if 1
   /* XXX for now, MIPS64 -> MIPS3 because of history */
   { "MIPS64",         1,      ISA_MIPS3,      CPU_R4000 }, /* XXX! */
+#else
+  /* MIPS64 ISA */
+  { "MIPS64",         1,      ISA_MIPS64,     CPU_MIPS64 },
+#endif
+  { "mips64isa",      1,      ISA_MIPS64,     CPU_MIPS64 },
+  { "Generic-MIPS64", 0,      ISA_MIPS64,     CPU_MIPS64, },
 
   /* R2000 CPU */
   { "R2000",          0,      ISA_MIPS1,      CPU_R2000, },
index a59ae1dc0f53e997d64a5bdea0e3467fdc8dfdf6..3988d00944cd8a4e9ecb7d2ba95e8f87ff25cf3d 100644 (file)
@@ -276,7 +276,8 @@ Here is a brief summary of how to invoke @code{@value{AS}}.  For details,
 @end ifset
 @ifset MIPS
  [ -nocpp ] [ -EL ] [ -EB ] [ -G @var{num} ] [ -mcpu=@var{CPU} ]
- [ -mips1 ] [ -mips2 ] [ -mips3 ] [ -mips4 ] [ -mips32 ]
+ [ -mips1 ] [ -mips2 ] [ -mips3 ] [ -mips4 ] [ -mips5 ]
+ [ -mips32 ] [ -mips64 ]
  [ -m4650 ] [ -no-m4650 ]
  [ --trap ] [ --break ]
  [ --emulation=@var{name} ]
@@ -674,8 +675,11 @@ Generate ``little endian'' format output.
 @itemx -mips32
 Generate code for a particular MIPS Instruction Set Architecture level.
 @samp{-mips1} corresponds to the @sc{r2000} and @sc{r3000} processors,
-@samp{-mips2} to the @sc{r6000} processor, @samp{-mips3} to the @sc{r4000}
-processor, @samp{-mips32} to a generic @sc{MIPS32} processor.
+@samp{-mips2} to the @sc{r6000} processor, and @samp{-mips3} to the @sc{r4000}
+processor.
+@samp{-mips5}, @samp{-mips32}, and @samp{-mips64} correspond
+to generic @sc{MIPS V}, @sc{MIPS32}, and @sc{MIPS64} ISA
+processors, respectively.
 
 @item -m4650
 @itemx -no-m4650
index e56156e439014ade8b99b154bc795e3818fbfdb2..b9902ffd3c47df5ad8cdc426f331f5232c3ac17a 100644 (file)
@@ -13,7 +13,8 @@
 
 @cindex MIPS processor
 @sc{gnu} @code{@value{AS}} for @sc{mips} architectures supports several
-different @sc{mips} processors, and MIPS ISA levels I through IV.  For
+different @sc{mips} processors, and MIPS ISA levels I through V, MIPS32,
+and MIPS64.  For
 information about the @sc{mips} instruction set, see @cite{MIPS RISC
 Architecture}, by Kane and Heindrich (Prentice-Hall).  For an overview
 of @sc{mips} assembly conventions, see ``Appendix D: Assembly Language
@@ -60,13 +61,18 @@ to select big-endian output, and @samp{-EL} for little-endian.
 @itemx -mips2
 @itemx -mips3
 @itemx -mips4
+@itemx -mips5
 @itemx -mips32
+@itemx -mips64
 Generate code for a particular MIPS Instruction Set Architecture level.
 @samp{-mips1} corresponds to the @sc{r2000} and @sc{r3000} processors,
 @samp{-mips2} to the @sc{r6000} processor, @samp{-mips3} to the
-@sc{r4000} processor, @samp{-mips4} to the @sc{r8000} and
-@sc{r10000} processors, and @samp{-mips32} to a generic @sc(MIPS32)
-processor.  You can also switch instruction sets during the
+@sc{r4000} processor, and @samp{-mips4} to the @sc{r8000} and
+@sc{r10000} processors.
+@samp{-mips5}, @samp{-mips32}, and @samp{-mips64} correspond
+to generic @sc{MIPS V}, @sc{MIPS32}, and @sc{MIPS64} ISA
+processors, respectively.
+You can also switch instruction sets during the
 assembly; see @ref{MIPS ISA, Directives to override the ISA level}.
 
 @item -mgp32
@@ -239,8 +245,9 @@ assembly language programmers!
 @kindex @code{.set mips@var{n}}
 @sc{gnu} @code{@value{AS}} supports an additional directive to change
 the @sc{mips} Instruction Set Architecture level on the fly: @code{.set
-mips@var{n}}.  @var{n} should be a number from 0 to 4, or 32.  The values 1
-to 4 and 32 make the assembler accept instructions for the corresponding
+mips@var{n}}.  @var{n} should be a number from 0 to 5, or 32 or 64.
+The values 1 to 5, 32, and 64 make the assembler accept instructions
+for the corresponding
 @sc{isa} level, from that point on in the assembly.  @code{.set
 mips@var{n}} affects not only which instructions are permitted, but also
 how certain macros are expanded.  @code{.set mips0} restores the
index a1ef8852a5431cedc9be0f19c66839d0b9239ed5..7c6b94e07847833a3388531c8fc1dd9efd24fed3 100644 (file)
@@ -4,6 +4,8 @@
         (E_MIPS_MACH_MIPS32, E_MIPS_MACH_MIPS32_4K): Replace the
         former with the latter. 
 
+        * mips.h (E_MIPS_ARCH_5, E_MIPS_ARCH_64): New definitions.
+
 2000-11-30  Jan Hubicka  <jh@suse.cz>
        
         * common.h (EM_X86_64): New macro.
index 41f52cd04ac17383a6c35050b9df442e87526c0d..ec333bfcbef4acc46cc864c1f448756eadf30744 100644 (file)
@@ -121,9 +121,15 @@ END_RELOC_NUMBERS (R_MIPS_maxext)
 /* -mips4 code.  */
 #define E_MIPS_ARCH_4          0x30000000
 
+/* -mips5 code.  */
+#define E_MIPS_ARCH_5         0x40000000
+
 /* -mips32 code.  */
 #define E_MIPS_ARCH_32                0x50000000
 
+/* -mips64 code.  */
+#define E_MIPS_ARCH_64                0x60000000
+
 /* The ABI of the file.  Also see EF_MIPS_ABI2 above. */
 #define EF_MIPS_ABI            0x0000F000
 
index ceb0317c9d6ce5ff6aa6f6164dc1739ee5e33f8f..798d3039f49d5333a418ade1e46955c37c3977e8 100644 (file)
@@ -25,6 +25,9 @@
         (OPCODE_IS_MEMBER): Update for new ISA membership-related
         constant meanings.
 
+        * mips.h (INSN_ISA64, ISA_MIPS5, ISA_MIPS64): New
+        definitions. 
+
 2000-10-20  Jakub Jelinek  <jakub@redhat.com>
 
        * sparc.h (enum sparc_opcode_arch_val): Add SPARC_OPCODE_ARCH_V9B.
index 7eaba30087e934dadb9900e1e0d6b7f91bc68370..bd8f0234ce80f42bd750ab7b7af219f3c9f59cf7 100644 (file)
@@ -313,6 +313,7 @@ struct mips_opcode
 #define INSN_ISA4                 0x00000080
 #define INSN_ISA5                 0x00000100
 #define INSN_ISA32                0x00000200
+#define INSN_ISA64                0x00000400
 
 /* Chip specific instructions.  These are bitmasks.  */
 
@@ -334,7 +335,9 @@ struct mips_opcode
 #define       ISA_MIPS2       (ISA_MIPS1 | INSN_ISA2)
 #define       ISA_MIPS3       (ISA_MIPS2 | INSN_ISA3)
 #define       ISA_MIPS4       (ISA_MIPS3 | INSN_ISA4)
+#define       ISA_MIPS5       (ISA_MIPS4 | INSN_ISA5)
 #define       ISA_MIPS32      (ISA_MIPS2 | INSN_ISA32)
+#define       ISA_MIPS64      (ISA_MIPS5 | INSN_ISA32 | INSN_ISA64)
 
 /* CPU defines, use instead of hardcoding processor number. Keep this
    in sync with bfd/archures.c in order for machine selection to work.  */
@@ -357,6 +360,8 @@ struct mips_opcode
 #define CPU_MIPS16     16
 #define CPU_MIPS32     32
 #define CPU_MIPS32_4K  3204113         /* 32, 04, octal 'K' */
+#define CPU_MIPS5       5
+#define CPU_MIPS64      64
 
 /* Test for membership in an ISA including chip specific ISAs.
    INSN is pointer to an element of the opcode table; ISA is the
index a03baa3eca3860cbdea7fb04e6a669639f946a1d..5754a5affb84d6916722bf295f180085f4b201d7 100644 (file)
         (P4): Delete.
         (mips_builtin_opcodes) Replace all uses of P4 with I32.
 
+        * mips-dis.c (set_mips_isa_type): Add cases for
+        bfd_mach_mips5 and bfd_mach_mips64.
+        * mips-opc.c (I64): New definitions.
+
 2000-11-28  Hans-Peter Nilsson  <hp@bitrange.com>
 
        * sh-dis.c (print_insn_ddt): Make insn_x, insn_y unsigned.
index bb970ef5483b7c8c3ae103d58b42f9a72dd1be64..61f67880e1536a0b382d9efdf09dd7754b3f8b33 100644 (file)
@@ -363,6 +363,14 @@ set_mips_isa_type (mach, isa, cputype)
       target_processor = CPU_MIPS32_4K;
       mips_isa = ISA_MIPS32;
       break;
+    case bfd_mach_mips5:
+      target_processor = CPU_MIPS5;
+      mips_isa = ISA_MIPS5;
+      break;
+    case bfd_mach_mips64:
+      target_processor = CPU_MIPS64;
+      mips_isa = ISA_MIPS64;
+      break;
     default:
       target_processor = CPU_R3000;
       mips_isa = ISA_MIPS3;
index 622a2316b9e883027bcd7b9c190e674335296096..9d7c746ea0dd5db322093a2f46635df3085c87a9 100644 (file)
@@ -78,6 +78,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  *
 #define I4     INSN_ISA4
 #define I5     INSN_ISA5
 #define I32    INSN_ISA32
+#define I64     INSN_ISA64
 
 #define P3     INSN_4650
 #define L1     INSN_4010
index f65a42b3532aed32583bd0339d6555452d9bc3c7..9d0a2fe66f53c4643c32b064d26a207496ba5375 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-12-01 13:18-0800\n"
+"POT-Creation-Date: 2000-12-01 16:51-0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"