OSDN Git Service

* gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Feb 2010 15:05:40 +0000 (15:05 +0000)
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 17 Feb 2010 15:05:40 +0000 (15:05 +0000)
patterns from predicated pattern.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@156831 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/gensupport.c

index a8f3b4e..b105dc6 100644 (file)
@@ -1,3 +1,8 @@
+2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
+       patterns from predicated pattern.
+
 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/43103
 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
 
        PR target/43103
index f0b5613..3a96af8 100644 (file)
@@ -780,6 +780,7 @@ process_one_cond_exec (struct queue_elem *ce_elem)
     {
       int alternatives, max_operand;
       rtx pred, insn, pattern, split;
     {
       int alternatives, max_operand;
       rtx pred, insn, pattern, split;
+      char *new_name;
       int i;
 
       if (! is_predicable (insn_elem))
       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);
 
       /* 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)
       pattern = rtx_alloc (COND_EXEC);
       XEXP (pattern, 0) = pred;
       if (XVECLEN (insn, 1) == 1)