diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1992-06-23 16:35:44 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1992-06-23 16:35:44 -0700 |
commit | c6ce096931bca8b33812e9eb5f25d36990585f7b (patch) | |
tree | f612742dd3e23e853e355a94f54c06a2c21c00a5 | |
parent | a4faa7cc6e80c1ab4744b841250259ac0338396d (diff) | |
download | gcc-c6ce096931bca8b33812e9eb5f25d36990585f7b.zip gcc-c6ce096931bca8b33812e9eb5f25d36990585f7b.tar.gz gcc-c6ce096931bca8b33812e9eb5f25d36990585f7b.tar.bz2 |
(print_operand): For '*', only annul branch if optimizing, to avoid dbx bug.
Add '(' to handle unoptimized case.
From-SVN: r1247
-rw-r--r-- | gcc/config/sparc/sparc.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index cb7d52b..3d453ca 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. */ |