diff options
| author | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-05 12:02:24 +0000 |
|---|---|---|
| committer | rsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-05 12:02:24 +0000 |
| commit | bb83ee19b9faeafed429ee9975b2e2e687390e6b (patch) | |
| tree | f72967a278c68dae2a0f2ac8c84cfea66002f3c7 | |
| parent | 259f87017a8b8f937145d491ed7df37cf3be19b2 (diff) | |
| download | ppe42-gcc-bb83ee19b9faeafed429ee9975b2e2e687390e6b.tar.gz ppe42-gcc-bb83ee19b9faeafed429ee9975b2e2e687390e6b.zip | |
* config/mips/mips.md: Disable the movstrsi define_split.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60911 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/config/mips/mips.md | 8 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20030105-1.c | 20 |
4 files changed, 35 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9b984dba57a..cccad464fca 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-01-05 Richard Sandiford <rsandifo@redhat.com> + + * config/mips/mips.md: Disable the movstrsi define_split. + 2003-01-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * alloc-pool.c: Don't include "libiberty.h". diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md index 3d2d617f69d..3ec54837505 100644 --- a/gcc/config/mips/mips.md +++ b/gcc/config/mips/mips.md @@ -6550,6 +6550,12 @@ move\\t%0,%z4\\n\\ ;; fill a delay slot. This also prevents a bug in delayed branches ;; from showing up, which reuses one of the registers in our clobbers. +;; ??? Disabled because it doesn't preserve alias information for +;; operands 0 and 1. Also, the rtl for the second insn doesn't mention +;; that it uses the registers clobbered by the first. +;; +;; It would probably be better to split the block into individual +;; instructions instead. (define_split [(set (mem:BLK (match_operand:SI 0 "register_operand" "")) (mem:BLK (match_operand:SI 1 "register_operand" ""))) @@ -6561,7 +6567,7 @@ move\\t%0,%z4\\n\\ (use (match_operand:SI 3 "small_int" "")) (use (const_int 0))] - "reload_completed && !TARGET_DEBUG_D_MODE && INTVAL (operands[2]) > 0" + "reload_completed && 0 && INTVAL (operands[2]) > 0" ;; All but the last move [(parallel [(set (mem:BLK (match_dup 0)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ed46afcdc9b..57b4e7310ea 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2003-01-05 Richard Sandiford <rsandifo@redhat.com> + + * gcc.c-torture/execute/20030105-1.c: New test. + 2003-01-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> * g++.dg/parse/namespace3.C: Remove extra semicolons. diff --git a/gcc/testsuite/gcc.c-torture/execute/20030105-1.c b/gcc/testsuite/gcc.c-torture/execute/20030105-1.c new file mode 100644 index 00000000000..19f3b2ddb12 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20030105-1.c @@ -0,0 +1,20 @@ +int __attribute__ ((noinline)) +foo () +{ + const int a[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; + int i, sum; + + sum = 0; + for (i = 0; i < sizeof (a) / sizeof (*a); i++) + sum += a[i]; + + return sum; +} + +int +main () +{ + if (foo () != 28) + abort (); + exit (0); +} |

