* config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
as a store into that register.
* gcc.target/ia64/pr43897.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167516
138bc75d-0d04-0410-961f-
82ee72b054a4
2010-12-06 Jakub Jelinek <jakub@redhat.com>
+ PR target/43897
+ * config/ia64/ia64.c (rtx_needs_barrier): Handle asm CLOBBER
+ as a store into that register.
+
PR tree-optimization/46528
PR debug/46338
* profile.c (branch_prob): Make sure last is never set to a debug
break;
case CLOBBER:
+ if (REG_P (XEXP (pat, 0))
+ && extract_asm_operands (x) != NULL_RTX
+ && REGNO (XEXP (pat, 0)) != AR_UNAT_REGNUM)
+ {
+ new_flags.is_write = 1;
+ need_barrier |= rtx_needs_barrier (XEXP (pat, 0),
+ new_flags, pred);
+ new_flags = flags;
+ }
+ break;
+
case RETURN:
break;
2010-12-06 Jakub Jelinek <jakub@redhat.com>
+ PR target/43897
+ * gcc.target/ia64/pr43897.c: New test.
+
PR debug/46771
* gcc.dg/pr46771.c: New test.
--- /dev/null
+/* PR target/43897 */
+/* { dg-do assemble } */
+/* { dg-options "-O2" } */
+
+int
+sub (int i)
+{
+ float tmp;
+ if (i)
+ __asm__ __volatile__ ("frcpa.s0 %0,p1=f0,f0":"=f" (tmp)::"p1");
+ return i + 10;
+}