From: Richard Sandiford Date: Mon, 20 Sep 2004 06:54:52 +0000 (+0000) Subject: re PR target/17565 ([3.3 only] asms in delay slots) X-Git-Tag: releases/gcc-4.0.0~4801 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=073cbad3bb0ebe7a29e11acc51d08543f5b1dbd7;p=thirdparty%2Fgcc.git re PR target/17565 ([3.3 only] asms in delay slots) PR target/17565 * config/mips/mips.md (define_asm_attributes): Set can_delay to no. From-SVN: r87744 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6f6582d3f1c9..45f7fe7a9ed7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-09-20 Richard Sandiford + + PR target/17565 + * config/mips/mips.md (define_asm_attributes): Set can_delay to no. + 2004-09-20 Jan Hubicka * predict.c (estimate_probability): Remove unnecesary code. diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index fb50b3bdab27..b8239edf7b23 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -310,7 +310,8 @@ ;; Describe a user's asm statement. (define_asm_attributes - [(set_attr "type" "multi")]) + [(set_attr "type" "multi") + (set_attr "can_delay" "no")]) ;; This mode macro allows 32-bit and 64-bit GPR patterns to be generated ;; from the same template. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 199ae8e18e79..8548b4733e9d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2004-09-20 Richard Sandiford + + * gcc.target/mips/asm-1.c: New test. + 2004-09-19 Ira Rosen * gcc.dg/vect/vect-13.c: Now vectorized on ppc*. diff --git a/gcc/testsuite/gcc.target/mips/asm-1.c b/gcc/testsuite/gcc.target/mips/asm-1.c new file mode 100644 index 000000000000..1a64e8754fd1 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/asm-1.c @@ -0,0 +1,14 @@ +/* PR target/17565. GCC used to put the asm into the delay slot + of the call. */ +/* { dg-do assemble } */ +/* { dg-options "-O" } */ +int foo (int n) +{ + register int k asm ("$16") = n; + if (k > 0) + { + bar (); + asm ("li %0,0x12345678" : "=r" (k)); + } + return k; +}