]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
(print_operand): For '*', only annul branch if optimizing, to avoid dbx bug.
authorJim Wilson <wilson@gcc.gnu.org>
Tue, 23 Jun 1992 23:35:44 +0000 (16:35 -0700)
committerJim Wilson <wilson@gcc.gnu.org>
Tue, 23 Jun 1992 23:35:44 +0000 (16:35 -0700)
Add '(' to handle unoptimized case.

From-SVN: r1247

gcc/config/sparc/sparc.c

index cb7d52bdc70a8994a74f0f894c7c4d86b72d74a1..3d453ca61a77dbf15c2e7872cd9ce2cbc530e620 100644 (file)
@@ -2708,9 +2708,18 @@ print_operand (file, x, code)
        fputs ("\n\tnop", file);
       return;
     case '*':
-      /* Output an annul flag if there's nothing for the delay slot.  */
-      if (dbr_sequence_length () == 0)
-        fputs (",a", file);
+      /* Output an annul flag if there's nothing for the delay slot and we
+        are optimizing.  This is always used with '(' below.  */
+      /* Sun OS 4.1.1 dbx can't handle an annulled unconditional branch;
+        this is a dbx bug.  So, we only do this when optimizing.  */
+      if (dbr_sequence_length () == 0 && optimize)
+       fputs (",a", file);
+      return;
+    case '(':
+      /* Output a 'nop' if there's nothing for the delay slot and we are
+        not optimizing.  This is always used with '*' above.  */
+      if (dbr_sequence_length () == 0 && ! optimize)
+       fputs ("\n\tnop", file);
       return;
     case 'Y':
       /* Adjust the operand to take into account a RESTORE operation.  */