diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6f6582d3f1c..45f7fe7a9ed 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 fb50b3bdab2..b8239edf7b2 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 199ae8e18e7..8548b4733e9 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 00000000000..1a64e8754fd --- /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; +}