aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-d10v.c
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>1997-10-09 18:37:16 +0000
committerJoern Rennecke <joern.rennecke@embecosm.com>1997-10-09 18:37:16 +0000
commitc7b2ac2856cd36fbe61a05a4c43f3135a1825cb0 (patch)
treed7fe41fa942206691bede3879a58bc08474e6eb7 /gas/config/tc-d10v.c
parentd78d3671075baa060da8df4a04c24e699c364ab4 (diff)
downloadgdb-c7b2ac2856cd36fbe61a05a4c43f3135a1825cb0.zip
gdb-c7b2ac2856cd36fbe61a05a4c43f3135a1825cb0.tar.gz
gdb-c7b2ac2856cd36fbe61a05a4c43f3135a1825cb0.tar.bz2
* config/tc-d10v.c (write_2_short): Fix bug that wouldn't allow
to pair a branch and link with anything but an exe instruction. Fix for gas/13494.
Diffstat (limited to 'gas/config/tc-d10v.c')
-rw-r--r--gas/config/tc-d10v.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c
index 28519c7..14ef397 100644
--- a/gas/config/tc-d10v.c
+++ b/gas/config/tc-d10v.c
@@ -673,10 +673,10 @@ write_2_short (opcode1, insn1, opcode2, insn2, exec_type, fx)
if ( (opcode1->format & LONG_OPCODE) || (opcode2->format & LONG_OPCODE))
as_fatal ("Long instructions may not be combined.");
- if(opcode1->exec_type & BRANCH_LINK && opcode2->exec_type != PARONLY)
+ if(opcode1->exec_type & BRANCH_LINK && exec_type == 0)
{
- /* subroutines must be called from 32-bit boundaries */
- /* so the return address will be correct */
+ /* Instructions paired with a subroutine call are executed before the
+ subroutine, so don't do these pairings unless explicitly requested. */
write_1_short (opcode1, insn1, fx->next);
return (1);
}