aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-mep.c
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2009-04-08 02:24:23 +0000
committerDJ Delorie <dj@redhat.com>2009-04-08 02:24:23 +0000
commit4d28413b409102b3fc5e7ed828e4014895143d4e (patch)
tree7a5eacf7d86bbb2bcb17943898110a1a563bc33a /gas/config/tc-mep.c
parente0edc2d941be04ac9e4000390cea2c68216e78da (diff)
downloadgdb-4d28413b409102b3fc5e7ed828e4014895143d4e.zip
gdb-4d28413b409102b3fc5e7ed828e4014895143d4e.tar.gz
gdb-4d28413b409102b3fc5e7ed828e4014895143d4e.tar.bz2
[include/elf]
* 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.
Diffstat (limited to 'gas/config/tc-mep.c')
-rw-r--r--gas/config/tc-mep.c31
1 files changed, 28 insertions, 3 deletions
diff --git a/gas/config/tc-mep.c b/gas/config/tc-mep.c
index 5646b3f..eb43492 100644
--- a/gas/config/tc-mep.c
+++ b/gas/config/tc-mep.c
@@ -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;
}