diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 4 |
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) |