From 4d28413b409102b3fc5e7ed828e4014895143d4e Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Wed, 8 Apr 2009 02:24:23 +0000 Subject: [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. --- gas/ChangeLog | 6 ++++++ gas/config/tc-mep.c | 31 ++++++++++++++++++++++++++++--- gas/config/tc-mep.h | 2 +- 3 files changed, 35 insertions(+), 4 deletions(-) (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index b809890..e42f0a2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2009-04-07 DJ Delorie + + * 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 * tc-h8300.c (do_a_fix_imm): Pass the insn, force relocs for MOVA 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= 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; } diff --git a/gas/config/tc-mep.h b/gas/config/tc-mep.h index 505f53a..0861909 100644 --- a/gas/config/tc-mep.h +++ b/gas/config/tc-mep.h @@ -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 -- cgit v1.1