diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-d30v.c | 10 |
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; } |