aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0a6110a..28ccdfa 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-05-28 Geoff Keating <geoffk@cygnus.com>
+
+ * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters
+ so output_operand doesn't see them.
+
Sun May 28 18:37:07 2000 Clinton Popetz <cpopetz@cygnus.com>
* lcm.c (make_preds_opaque): Fix comment.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 2ea0ae2..5a54253 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -4115,6 +4115,10 @@ output_cbranch (op, label, reversed, insn)
else
s += sprintf (s, "{b%s|b%s%s} ", ccode, ccode, pred);
+ /* We need to escape any '%' characters in the reg_names string.
+ Assume they'd only be the first character... */
+ if (reg_names[cc_regno + CR0_REGNO][0] == '%')
+ *s++ = '%';
s += sprintf (s, "%s", reg_names[cc_regno + CR0_REGNO]);
if (label != NULL)