aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-mips.c1
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/mips/branch-swap.d20
-rw-r--r--gas/testsuite/gas/mips/branch-swap.s9
-rw-r--r--gas/testsuite/gas/mips/mips.exp1
6 files changed, 40 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index ddf8fa7..b0dcda7 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@
+2004-08-18 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+ * config/tc-mips.c (append_insn): Handle delay slots in branch likely
+ correctly.
+
2004-08-18 Jakub Jelinek <jakub@redhat.com>
* config/tc-ia64.c (start_unwind_section): Add linkonce_empty
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 108b912..fd76eab 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -2711,6 +2711,7 @@ append_insn (struct mips_cl_insn *ip, expressionS *address_expr,
prev_insn_reloc_type[1] = BFD_RELOC_UNUSED;
prev_insn_reloc_type[2] = BFD_RELOC_UNUSED;
prev_insn_extended = 0;
+ prev_insn_is_delay_slot = 1;
}
else
{
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 39e89c3..4f3e5a1 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-18 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+ * gas/mips/branch-swap.s: New testcase.
+ * gas/mips/branch-swap.d: New testcase.
+ * gas/mips/mips.exp: Run the testcase.
+
2004-08-18 Nick Clifton <nickc@redhat.com>
* gas/macros/strings.s: Remove #NO_APP, accidentally committed as
diff --git a/gas/testsuite/gas/mips/branch-swap.d b/gas/testsuite/gas/mips/branch-swap.d
new file mode 100644
index 0000000..74c149d
--- /dev/null
+++ b/gas/testsuite/gas/mips/branch-swap.d
@@ -0,0 +1,20 @@
+#as: -march=mips2
+#objdump: -dr
+#name: MIPS branch-swap
+
+.*: file format .*mips.*
+
+Disassembly of section \.text:
+
+00000000 <foo-0x10>:
+ 0: 5040ffff beqzl v0,0 <foo-0x10>
+ 4: 00000000 nop
+ 8: 1000fffd b 0 <foo-0x10>
+ c: 00000000 nop
+
+00000010 <foo>:
+ 10: 5040ffff beqzl v0,10 <foo>
+ 14: 00000000 nop
+ 18: 1000fffd b 10 <foo>
+ 1c: 00000000 nop
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/branch-swap.s b/gas/testsuite/gas/mips/branch-swap.s
new file mode 100644
index 0000000..cd888ad
--- /dev/null
+++ b/gas/testsuite/gas/mips/branch-swap.s
@@ -0,0 +1,9 @@
+ .set push
+ .set mips2
+1: beqzl $2, 1b
+ b 1b
+foo: beqzl $2, foo
+ b foo
+
+ .set pop
+ .space 8
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index 311f152..bd36ec2 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -429,6 +429,7 @@ if { [istarget mips*-*-*] } then {
run_dump_test_arches "branch-misc-1" [mips_arch_list_matching mips1]
run_list_test_arches "branch-misc-2" "-32 -non_shared" [mips_arch_list_matching mips1]
run_list_test_arches "branch-misc-2pic" "-32 -call_shared" [mips_arch_list_matching mips1]
+ run_dump_test "branch-swap"
if $ilocks {
run_dump_test "div-ilocks"