aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2012-08-06 20:33:00 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2012-08-06 20:33:00 +0000
commit464ab0e55ade01d2bb0b4fa45c429af7a2f85a26 (patch)
treeefdfb6373618ee76ba6266857db483ede5cb3666 /gas/config
parent7bb15c6f21865baeedeb6e3765af8643c082cf47 (diff)
downloadgdb-464ab0e55ade01d2bb0b4fa45c429af7a2f85a26.zip
gdb-464ab0e55ade01d2bb0b4fa45c429af7a2f85a26.tar.gz
gdb-464ab0e55ade01d2bb0b4fa45c429af7a2f85a26.tar.bz2
gas/
* config/tc-mips.c (append_insn): Also handle moving delay-slot instruction across frags for fixed branches. gas/testsuite/ * gas/mips/branch-swap-2.l: New list test. * gas/mips/branch-swap-2.s: New test source. * gas/mips/mips.exp: Run the new test.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-mips.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index a9bd0d8..fa78840 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -4488,7 +4488,7 @@ append_insn (struct mips_cl_insn *ip, expressionS *address_expr,
move_insn (ip, delay.frag, delay.where);
move_insn (&delay, ip->frag, ip->where + insn_length (ip));
}
- else if (relaxed_branch)
+ else if (relaxed_branch || delay.frag != ip->frag)
{
/* Add the delay slot instruction to the end of the
current frag and shrink the fixed part of the