diff options
author | DJ Delorie <dj@redhat.com> | 2009-07-07 21:12:52 +0000 |
---|---|---|
committer | DJ Delorie <dj@redhat.com> | 2009-07-07 21:12:52 +0000 |
commit | 7ec721f405a1b9bb6598e80f5919ba7a27e997f6 (patch) | |
tree | 35c769677709942cb3d66a31134e1b7f6f0db6d4 /gas | |
parent | 06878dd230569add279019d670f7fb14d1cc368b (diff) | |
download | gdb-7ec721f405a1b9bb6598e80f5919ba7a27e997f6.zip gdb-7ec721f405a1b9bb6598e80f5919ba7a27e997f6.tar.gz gdb-7ec721f405a1b9bb6598e80f5919ba7a27e997f6.tar.bz2 |
* config/tc-mep.c (md_begin): Don't reset the coprocessor options
when enabling other options without a specific configuration.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-mep.c | 22 |
2 files changed, 26 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index c73686f..b0f2834 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2009-07-07 DJ Delorie <dj@redhat.com> + + * 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 <cltang@pllab.cs.nthu.edu.tw> * config/tc-arm.c (insns): Fix encoding for torvsc. diff --git a/gas/config/tc-mep.c b/gas/config/tc-mep.c index 6b4b540..23392d2 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; |