* config/tc-d10v.c (write_2_short): Fix bug that wouldn't allow
authorJoern Rennecke <joern.rennecke@embecosm.com>
Thu, 9 Oct 1997 18:37:16 +0000 (18:37 +0000)
committerJoern Rennecke <joern.rennecke@embecosm.com>
Thu, 9 Oct 1997 18:37:16 +0000 (18:37 +0000)
        to pair a branch and link with anything but an exe instruction.
Fix for gas/13494.

gas/ChangeLog
gas/config/tc-d10v.c

index fd001c6..f795608 100644 (file)
@@ -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
index 28519c7..14ef397 100644 (file)
@@ -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);
     }