From c6ce096931bca8b33812e9eb5f25d36990585f7b Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 23 Jun 1992 16:35:44 -0700 Subject: [PATCH] (print_operand): For '*', only annul branch if optimizing, to avoid dbx bug. Add '(' to handle unoptimized case. From-SVN: r1247 --- gcc/config/sparc/sparc.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index cb7d52bdc70..3d453ca61a7 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -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. */ -- 2.30.2