+2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * config/tc-mips.c (append_insn): Disable branch relaxation for
+ DSP instructions.
+
2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
* config/tc-mips.c (macro): Handle M_PREF_AB.
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;
+2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * 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.
+
2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
* gas/mips/relax-at.d: New test for branch relaxation with .set
run_dump_test "relax-swap1-mips1"
run_dump_test "relax-swap1-mips2"
run_dump_test "relax-swap2"
+ run_list_test_arches "relax-bposge" "-mdsp -relax-branch" \
+ [mips_arch_list_matching mips64r2]
run_list_test "illegal" "-32"
run_list_test "baddata1" "-32"
--- /dev/null
+.*: Assembler messages:
+.*:6: Warning: Relaxed out-of-range branch into a jump
+.*:9: Warning: Relaxed out-of-range branch into a jump
+.*:7: Error: Branch out of range
+.*:8: Error: Branch out of range
--- /dev/null
+# Source file to test branch relaxation with the BPOSGE32 and BPOSGE64
+# instructions.
+
+ .text
+foo:
+ b bar
+ bposge32 bar
+ bposge64 bar
+ bal bar
+
+ .space 0x20000
+bar: