diff options
Diffstat (limited to 'gcc/gensupport.c')
-rw-r--r-- | gcc/gensupport.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/gensupport.c b/gcc/gensupport.c index f0b5613e050..74b1d256ba2 100644 --- a/gcc/gensupport.c +++ b/gcc/gensupport.c @@ -1,6 +1,6 @@ /* Support routines for the various generation passes. - Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, + 2010, Free Software Foundation, Inc. This file is part of GCC. @@ -780,6 +780,7 @@ process_one_cond_exec (struct queue_elem *ce_elem) { int alternatives, max_operand; rtx pred, insn, pattern, split; + char *new_name; int i; if (! is_predicable (insn_elem)) @@ -806,7 +807,9 @@ process_one_cond_exec (struct queue_elem *ce_elem) /* Construct a new pattern for the new insn. */ insn = copy_rtx (insn_elem->data); - XSTR (insn, 0) = ""; + new_name = XNEWVAR (char, strlen XSTR (insn_elem->data, 0) + 4); + sprintf (new_name, "*p %s", XSTR (insn_elem->data, 0)); + XSTR (insn, 0) = new_name; pattern = rtx_alloc (COND_EXEC); XEXP (pattern, 0) = pred; if (XVECLEN (insn, 1) == 1) |