From 7ec721f405a1b9bb6598e80f5919ba7a27e997f6 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Tue, 7 Jul 2009 21:12:52 +0000 Subject: [PATCH] * config/tc-mep.c (md_begin): Don't reset the coprocessor options when enabling other options without a specific configuration. --- gas/ChangeLog | 5 +++++ gas/config/tc-mep.c | 22 +++++++++++++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index c73686f36ee..b0f2834baf6 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2009-07-07 DJ Delorie + + * config/tc-mep.c (md_begin): Don't reset the coprocessor options + when enabling other options without a specific configuration. + 2009-07-07 Chung-Lin Tang * config/tc-arm.c (insns): Fix encoding for torvsc. diff --git a/gas/config/tc-mep.c b/gas/config/tc-mep.c index 6b4b540df01..23392d23394 100644 --- a/gas/config/tc-mep.c +++ b/gas/config/tc-mep.c @@ -176,6 +176,23 @@ struct option md_longopts[] = { { NULL, 0, NULL, 0 } }; size_t md_longopts_size = sizeof (md_longopts); +/* Options which default to on/off together. See the comment where + this is used for details. Note that CP and CP64 are not in this + list because disabling those overrides the -mivc2 option. */ +#define OPTION_MASK \ + ( (1 << CGEN_INSN_OPTIONAL_BIT_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_MUL_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_DIV_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_DEBUG_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_LDZ_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_ABS_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_AVE_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_MINMAX_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_CLIP_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_SAT_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_UCI_INSN) \ + | (1 << CGEN_INSN_OPTIONAL_DSP_INSN) ) + const char * md_shortopts = ""; static int optbits = 0; static int optbitset = 0; @@ -462,7 +479,10 @@ md_begin () specified. If the user specifies options and a config, the options modify the config. */ if (optbits && mep_config_index == 0) - MEP_OMASK = optbits; + { + MEP_OMASK &= ~OPTION_MASK; + MEP_OMASK |= optbits; + } else MEP_OMASK = (MEP_OMASK & ~optbitset) | optbits; -- 2.30.2