[include/elf]
authorDJ Delorie <dj@redhat.com>
Wed, 8 Apr 2009 02:24:23 +0000 (02:24 +0000)
committerDJ Delorie <dj@redhat.com>
Wed, 8 Apr 2009 02:24:23 +0000 (02:24 +0000)
* mep.h (EF_MEP_CPU_C5): New.
[bfd]
* archures.c: Add bfd_mach_mep_c5.
* bfd-in2.h: Likewise.
* cpu-mep.c: Add bfd_c5_arch.
* elf32-mep.c: Support it.
[gas]
* config/tc-mep.c: Add UCI/DSP instruction support.  Add C5 support.
(md_show_usage): Change default endian to little.
* config/tc-mep.h (TARGET_BYTES_BIG_ENDIAN): Change default to little.
[ld]
* emulparams/elf32mep.sh: Change default endian to little.

12 files changed:
bfd/ChangeLog
bfd/archures.c
bfd/bfd-in2.h
bfd/cpu-mep.c
bfd/elf32-mep.c
gas/ChangeLog
gas/config/tc-mep.c
gas/config/tc-mep.h
include/elf/ChangeLog
include/elf/mep.h
ld/ChangeLog
ld/emulparams/elf32mep.sh

index ec60410..b0a62b4 100644 (file)
@@ -1,3 +1,10 @@
+2009-04-07  DJ Delorie  <dj@redhat.com>
+
+       * archures.c: Add bfd_mach_mep_c5.
+       * bfd-in2.h: Likewise.
+       * cpu-mep.c: Add bfd_c5_arch.
+       * elf32-mep.c: Support it.
+
 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elflink.c (_bfd_elf_section_already_linked): Add `\n' for
index fa03d81..b0bf140 100644 (file)
@@ -335,6 +335,7 @@ DESCRIPTION
 .  bfd_arch_mep,
 .#define bfd_mach_mep          1
 .#define bfd_mach_mep_h1       0x6831
+.#define bfd_mach_mep_c5       0x6335
 .  bfd_arch_ia64,      {* HP/Intel ia64 *}
 .#define bfd_mach_ia64_elf64   64
 .#define bfd_mach_ia64_elf32   32
index 646be2c..6629ed7 100644 (file)
@@ -1972,6 +1972,7 @@ enum bfd_architecture
   bfd_arch_mep,
 #define bfd_mach_mep           1
 #define bfd_mach_mep_h1        0x6831
+#define bfd_mach_mep_c5        0x6335
   bfd_arch_ia64,      /* HP/Intel ia64 */
 #define bfd_mach_ia64_elf64    64
 #define bfd_mach_ia64_elf32    32
index a161764..dfe251d 100644 (file)
@@ -24,5 +24,6 @@
 #define MA(x, n, def, y) { 32, 32, 8, bfd_arch_mep, x, "mep", n, \
        2, def, bfd_default_compatible, bfd_default_scan, y }
 
-static const bfd_arch_info_type bfd_h1_arch = MA (bfd_mach_mep_h1, "h1", FALSE, NULL);
+static const bfd_arch_info_type bfd_c5_arch = MA (bfd_mach_mep_c5, "c5", FALSE, NULL);
+static const bfd_arch_info_type bfd_h1_arch = MA (bfd_mach_mep_h1, "h1", FALSE, & bfd_c5_arch);
 const bfd_arch_info_type bfd_mep_arch = MA (bfd_mach_mep, "mep", TRUE, & bfd_h1_arch);
index 4e96a78..b1e4a12 100644 (file)
@@ -731,6 +731,7 @@ elf32_mep_machine (bfd * abfd)
     case EF_MEP_CPU_C2: return bfd_mach_mep;
     case EF_MEP_CPU_C3: return bfd_mach_mep;
     case EF_MEP_CPU_C4: return bfd_mach_mep;
+    case EF_MEP_CPU_C5: return bfd_mach_mep_c5;
     case EF_MEP_CPU_H1: return bfd_mach_mep_h1;
     }
 
index b809890..e42f0a2 100644 (file)
@@ -1,3 +1,9 @@
+2009-04-07  DJ Delorie  <dj@redhat.com>
+
+       * config/tc-mep.c: Add UCI/DSP instruction support.  Add C5 support.
+       (md_show_usage): Change default endian to little.
+       * config/tc-mep.h (TARGET_BYTES_BIG_ENDIAN): Change default to little.
+
 2009-04-06  DJ Delorie  <dj@redhat.com>
 
        * tc-h8300.c (do_a_fix_imm): Pass the insn, force relocs for MOVA
index 5646b3f..eb43492 100644 (file)
@@ -136,7 +136,11 @@ static struct mep_hi_fixup * mep_hi_fixup_list;
 #define OPTION_NOREPEAT                (OPTION_MD_BASE + 26)
 #define OPTION_DEBUG           (OPTION_MD_BASE + 27)
 #define OPTION_NODEBUG         (OPTION_MD_BASE + 28)
-#define OPTION_LIBRARY         (OPTION_MD_BASE + 29)
+#define OPTION_UCI             (OPTION_MD_BASE + 29)
+#define OPTION_NOUCI           (OPTION_MD_BASE + 30)
+#define OPTION_DSP             (OPTION_MD_BASE + 31)
+#define OPTION_NODSP           (OPTION_MD_BASE + 32)
+#define OPTION_LIBRARY         (OPTION_MD_BASE + 33)
 
 struct option md_longopts[] = {
   { "EB",          no_argument, NULL, OPTION_EB},
@@ -163,6 +167,10 @@ struct option md_longopts[] = {
   { "mcop32",     no_argument, NULL, OPTION_COP32},
   { "mdebug",      no_argument, NULL, OPTION_DEBUG},
   { "mno-debug",   no_argument, NULL, OPTION_NODEBUG},
+  { "muci",        no_argument, NULL, OPTION_UCI},
+  { "mno-uci",     no_argument, NULL, OPTION_NOUCI},
+  { "mdsp",        no_argument, NULL, OPTION_DSP},
+  { "mno-dsp",     no_argument, NULL, OPTION_NODSP},
   { "mlibrary",    no_argument, NULL, OPTION_LIBRARY},
   { NULL, 0, NULL, 0 } };
 size_t md_longopts_size = sizeof (md_longopts);
@@ -283,6 +291,22 @@ md_parse_option (int c, char *arg ATTRIBUTE_UNUSED)
       optbits &= ~(1 << CGEN_INSN_OPTIONAL_DEBUG_INSN);
       optbitset |= 1 << CGEN_INSN_OPTIONAL_DEBUG_INSN;
       break;
+    case OPTION_UCI:
+      optbits |= 1 << CGEN_INSN_OPTIONAL_UCI_INSN;
+      optbitset |= 1 << CGEN_INSN_OPTIONAL_UCI_INSN;
+      break;
+    case OPTION_NOUCI:
+      optbits &= ~(1 << CGEN_INSN_OPTIONAL_UCI_INSN);
+      optbitset |= 1 << CGEN_INSN_OPTIONAL_UCI_INSN;
+      break;
+    case OPTION_DSP:
+      optbits |= 1 << CGEN_INSN_OPTIONAL_DSP_INSN;
+      optbitset |= 1 << CGEN_INSN_OPTIONAL_DSP_INSN;
+      break;
+    case OPTION_NODSP:
+      optbits &= ~(1 << CGEN_INSN_OPTIONAL_DSP_INSN);
+      optbitset |= 1 << CGEN_INSN_OPTIONAL_DSP_INSN;
+      break;
     case OPTION_LIBRARY:
       library_flag = EF_MEP_LIBRARY;
       break;
@@ -299,8 +323,8 @@ void
 md_show_usage (FILE *stream)
 {
   fprintf (stream, _("MeP specific command line options:\n\
-  -EB                     assemble for a big endian system (default)\n\
-  -EL                     assemble for a little endian system\n\
+  -EB                     assemble for a big endian system\n\
+  -EL                     assemble for a little endian system (default)\n\
   -mconfig=<name>         specify a chip configuration to use\n\
   -maverage -mno-average -mmult -mno-mult -mdiv -mno-div\n\
   -mbitops -mno-bitops -mleadz -mno-leadz -mabsdiff -mno-absdiff\n\
@@ -394,6 +418,7 @@ mep_machine (void)
     case EF_MEP_CPU_C2: return bfd_mach_mep;
     case EF_MEP_CPU_C3: return bfd_mach_mep;
     case EF_MEP_CPU_C4: return bfd_mach_mep;
+    case EF_MEP_CPU_C5: return bfd_mach_mep_c5;
     case EF_MEP_CPU_H1: return bfd_mach_mep_h1;
     }
 
index 505f53a..0861909 100644 (file)
@@ -34,7 +34,7 @@
 #define TARGET_FORMAT (target_big_endian ? "elf32-mep" : "elf32-mep-little")
 
 /* This is the default.  */
-#define TARGET_BYTES_BIG_ENDIAN 1
+#define TARGET_BYTES_BIG_ENDIAN 0
 
 /* Permit temporary numeric labels. */
 #define LOCAL_LABELS_FB 1
index beb40b6..f6e73fd 100644 (file)
@@ -1,3 +1,7 @@
+2009-04-07  DJ Delorie  <dj@redhat.com>
+
+       * mep.h (EF_MEP_CPU_C5): New.
+
 2009-04-01  H.J. Lu  <hongjiu.lu@intel.com>
 
        * common.h (EM_INTEL178): Removed.
index 51eb8d0..4565516 100644 (file)
@@ -73,6 +73,8 @@ END_RELOC_NUMBERS(R_MEP_max)
 #define EF_MEP_CPU_C2          0x01000000      /* MEP c2 */
 #define EF_MEP_CPU_C3          0x02000000      /* MEP c3 */
 #define EF_MEP_CPU_C4          0x04000000      /* MEP c4 */
+/* 5..7 are reseved */
+#define EF_MEP_CPU_C5          0x08000000      /* MEP c5 */
 #define EF_MEP_CPU_H1          0x10000000      /* MEP h1 */
 
 #define EF_MEP_LIBRARY         0x00000100      /* Built as a library */
index c0f3b61..3161307 100644 (file)
@@ -1,3 +1,7 @@
+2009-04-07  DJ Delorie  <dj@redhat.com>
+
+       * emulparams/elf32mep.sh: Change default endian to little.
+
 2009-04-07  Nick Clifton  <nickc@redhat.com>
 
        * ld.texinfo (Output Section Address): Note that specifying an
index 886ca47..f72fe2a 100755 (executable)
@@ -1,6 +1,6 @@
 MACHINE=
 SCRIPT_NAME=mep
-OUTPUT_FORMAT="elf32-mep"
+OUTPUT_FORMAT="elf32-mep-little"
 TEXT_START_ADDR=0x1000
 ARCH=mep
 MAXPAGESIZE=256