aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2011-02-28 16:26:46 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2011-02-28 16:26:46 +0000
commitd455268f737c65cc7c12aadaf93001d6bcbb20ba (patch)
treeb9920dd2da059d070088ff513185c89ec054d0e1 /gas/config
parent12c5a436a828ea809e4af3946a47c0f59cc77e92 (diff)
downloadgdb-d455268f737c65cc7c12aadaf93001d6bcbb20ba.zip
gdb-d455268f737c65cc7c12aadaf93001d6bcbb20ba.tar.gz
gdb-d455268f737c65cc7c12aadaf93001d6bcbb20ba.tar.bz2
gas/
* config/tc-mips.c (append_insn): Disable branch relaxation for DSP instructions. gas/testsuite/ * gas/mips/relax-bposge.l: New test for DSP branch relaxation. * gas/mips/relax-bposge.s: Source for the new test. * gas/mips/mips.exp: Run the new test.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-mips.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 1c3010b..4374ed9 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -2933,6 +2933,8 @@ append_insn (struct mips_cl_insn *ip, expressionS *address_expr,
out that the branch was out-of-range, we'll get an error. */
&& !mips_opts.warn_about_macros
&& (mips_opts.at || mips_pic == NO_PIC)
+ /* Don't relax BPOSGE32/64 as they have no complementing branches. */
+ && !(ip->insn_mo->membership & (INSN_DSP64 | INSN_DSP))
&& !mips_opts.mips16)
{
relaxed_branch = TRUE;