builtins.c (expand_builtin_thread_pointer): Create a new target when the target is...
authorAndrew Pinski <apinski@cavium.com>
Wed, 26 Feb 2014 00:51:56 +0000 (00:51 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Wed, 26 Feb 2014 00:51:56 +0000 (16:51 -0800)
2014-02-25  Andrew Pinski  <apinski@cavium.com>

* builtins.c (expand_builtin_thread_pointer): Create a new target
when the target is NULL.

From-SVN: r208163

gcc/ChangeLog
gcc/builtins.c

index 616d8ec..713baf4 100644 (file)
@@ -1,3 +1,8 @@
+2014-02-25  Andrew Pinski  <apinski@cavium.com>
+
+       * builtins.c (expand_builtin_thread_pointer): Create a new target
+       when the target is NULL.
+
 2014-02-25  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR rtl-optimization/60317
index 35969ad..7c6318e 100644 (file)
@@ -5712,7 +5712,10 @@ expand_builtin_thread_pointer (tree exp, rtx target)
   if (icode != CODE_FOR_nothing)
     {
       struct expand_operand op;
-      if (!REG_P (target) || GET_MODE (target) != Pmode)
+      /* If the target is not sutitable then create a new target. */
+      if (target == NULL_RTX
+         || !REG_P (target)
+         || GET_MODE (target) != Pmode)
        target = gen_reg_rtx (Pmode);
       create_output_operand (&op, target, Pmode);
       expand_insn (icode, 1, &op);