* 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.
This commit is contained in:
Maciej W. Rozycki 2011-02-28 16:26:46 +00:00
parent 12c5a436a8
commit d455268f73
6 changed files with 32 additions and 0 deletions

View File

@ -1,3 +1,8 @@
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.

View File

@ -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;

View File

@ -1,3 +1,9 @@
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

View File

@ -707,6 +707,8 @@ if { [istarget mips*-*-vxworks*] } {
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"

View File

@ -0,0 +1,5 @@
.*: 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

View File

@ -0,0 +1,12 @@
# 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: