diff options
author | Joern Rennecke <joern.rennecke@embecosm.com> | 1997-10-09 18:37:16 +0000 |
---|---|---|
committer | Joern Rennecke <joern.rennecke@embecosm.com> | 1997-10-09 18:37:16 +0000 |
commit | c7b2ac2856cd36fbe61a05a4c43f3135a1825cb0 (patch) | |
tree | d7fe41fa942206691bede3879a58bc08474e6eb7 /gas | |
parent | d78d3671075baa060da8df4a04c24e699c364ab4 (diff) | |
download | gdb-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')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-d10v.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index fd001c6..f795608 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -3,6 +3,11 @@ Thu Oct 9 01:44:36 1997 J"orn Rennecke <amylaar@cygnus.co.uk> * tc-d10v.h (TC_START_LABEL): Don't define. (tc_frob_label): Define. +Thu Oct 9 00:07:23 1997 J"orn Rennecke <amylaar@cygnus.co.uk> + + * 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. + Wed Oct 8 16:28:53 1997 Richard Henderson <rth@cygnus.com> * config/tc-alpha.c (load_expression): Disable the sym+const .got 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); } |