aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>1999-08-09 19:04:27 +0000
committerJoern Rennecke <joern.rennecke@embecosm.com>1999-08-09 19:04:27 +0000
commit0825afba5d859a8a0fb23a1e0949a7abc4095222 (patch)
tree0733b2a53b2692043878259e1267ab2b4093408e
parenta3f779dbea39eb8d831ba6402b840793cfb79c87 (diff)
downloadgdb-0825afba5d859a8a0fb23a1e0949a7abc4095222.zip
gdb-0825afba5d859a8a0fb23a1e0949a7abc4095222.tar.gz
gdb-0825afba5d859a8a0fb23a1e0949a7abc4095222.tar.bz2
* config/tc-d30v.c (write_2_short): Don't group repeat instructions
with the following instruction unless this was specified.
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/tc-d30v.c10
2 files changed, 12 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 43ee309..1eee5ce 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+Mon Aug 9 20:02:22 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * config/tc-d30v.c (write_2_short): Don't group repeat instructions
+ with the following instruction unless this was specified.
+
1999-08-09 Ian Lance Taylor <ian@zembu.com>
* config/tc-i386.h (SUB_SEGMENT_ALIGN): If TE_GO32, return 4 for
diff --git a/gas/config/tc-d30v.c b/gas/config/tc-d30v.c
index 0682a57..04ceebe 100644
--- a/gas/config/tc-d30v.c
+++ b/gas/config/tc-d30v.c
@@ -799,12 +799,16 @@ write_2_short (opcode1, insn1, opcode2, insn2, exec_type, fx)
fx = fx->next;
}
}
- else if (opcode1->op->flags_used & (FLAG_JMP | FLAG_JSR)
- && ((opcode1->op->flags_used & FLAG_DELAY) == 0)
- && ((opcode1->ecc == ECC_AL) || ! Optimizing))
+ else if ((opcode1->op->flags_used & (FLAG_JMP | FLAG_JSR)
+ && ((opcode1->op->flags_used & FLAG_DELAY) == 0)
+ && ((opcode1->ecc == ECC_AL) || ! Optimizing))
+ || opcode1->op->flags_used & FLAG_RP)
{
/* We must emit (non-delayed) branch type instructions
on their own with nothing in the right container. */
+ /* We must treat repeat instructions likewise, since the
+ following instruction has to be separate from the repeat
+ in order to be repeated. */
write_1_short (opcode1, insn1, fx->next, false);
return 1;
}